MZ

I build the internal tools companies run on

Next.js, NestJS, Go and PostgreSQL. Three of these systems are in daily use: a metal manufacturer, a real estate agency, an e-commerce operation.

Istanbul · UTC+3 · open to full-time roles and contract work

How I build

Three claims. You can check all three without leaving this page.

Keyboard first

Check it: press Tab, right now.

Put the mouse down and press Tab. Every focus ring is visible, the skip link works, and nothing traps you. Contrast holds in both themes.

  • Visible focus on every control
  • Skip link to main content
  • AA contrast, light and dark
  • WCAG 2.2 AA
  • Semantic HTML
  • Keyboard-first

Nothing loads that doesn't have to

Check it: open the Network tab and reload.

No animation library, no carousel, no hero video, no font CDN. One third-party script (Vercel Analytics) and nothing else. Fonts are self-hosted through next/font with a single file preloaded. Turn JavaScript off and the words on this page are still here; they are rendered on the server.

  • One third-party script: Vercel Analytics
  • Self-hosted fonts, one file preloaded
  • Text renders with JavaScript disabled
  • Next.js 16
  • RSC
  • next/font

Open where it can be

Check it: github.com/MuratZrl (opens in a new tab)

TypeScript strict in every TypeScript project, and no ts-ignore anywhere in the public repos. Three of the eight projects have public repos. Read the source instead of taking my word for it. The client work is private, and the project cards say exactly what is being held back and why.

  • strict: true in every tsconfig
  • Zero @ts-ignore in public repos
  • Private work labelled, not hidden
  • TypeScript
  • strict
  • Public source

Three built for paying clients, three built for me, plus two demo sites for small businesses. The client ones are in daily use.

All eight projects
SZMetal admin panel dashboard
Metal manufacturingClient work

SZMetal Admin Panel

Custom admin dashboard for a metal manufacturer: product catalog, client management, RLS roles, and live Realtime updates.

Withheld: this is SZMetal's operations data.

  • Next.js 16
  • React 19
  • TypeScript
  • Supabase
  • +2 more
Private repo
Yenigün Emlak property listings with map search
Real estateClient work

Yenigün Emlak

Next.js frontend for a real estate agency, built against another developer's REST API. Google Maps search, admin screens for listings and customers, and a cached Search Console route.

The public site is live. The admin panel behind it isn't.

  • Next.js 16
  • TypeScript
  • Tailwind CSS
  • Google Maps
  • +2 more
Ticimax sync dashboard
E-commerceClient work

Ticimax Dashboard

Sync engine and admin dashboard for a Ticimax store. Supplier stock comes in as an XML feed and goes back out over SOAP, with run progress streaming into the dashboard over Supabase Realtime.

Withheld: supplier data for an e-commerce client.

  • Next.js 16
  • TypeScript
  • Supabase
  • SOAP
  • +1 more
Private repo

Stack

What I reach for. The detail is on the project pages.

Languages and frameworks
TypeScriptGoNext.jsReactNestJSNode.js
Interface and state
Tailwind CSSMaterial UIZustandTanStack React Query
Data and infrastructure
PostgreSQLPrismaSupabaseRedisSocket.ioREST APIJWT / OAuthStripe
Build, deploy, test
DockerGitGitHub ActionsVercelRailwayJestPlaywright
Two ways to work together

Hiring, or have a system that needs building?

Full-time roles and contract work both. If you have a process running on a spreadsheet that four people are editing at once, that is the thing I build.

1

You describe the problem

The current process, not the feature list.

2

I scope it in writing

What gets built, what doesn't, how long.

3

Ship it

Deployed and documented.