Writing
Lessons from building things — not textbook definitions, but real problems I ran into and how I solved them.
- Posts
- 20
- Topics
- 21
- Latest
- September 22, 2026
- 11September 2, 2026 · 7 min read
Drizzle ORM schema and migration management in production
Generate, push, or migrate? Running migrations on container startup, fixing connection pool leaks in Next dev, and preventing next build from breaking due to database requests—from a real-world panel with 17 migrations.
- 12September 2, 2026 · 7 min read
Self-Hosting Next.js with Dokploy and Docker
When does it make sense to move off Vercel? Let's look at output standalone, multi-stage Dockerfiles, why database migrations belong in the entrypoint rather than the build step, and a single line of code that prevents SIGTERM from being swallowed.
- 13September 2, 2026 · 9 min read
Payment integration in Next.js: 3D Secure flow with iyzico and PayTR
Why is payment integration in Turkey harder than you think? How the 3D Secure flow actually works, handling callbacks correctly in Next.js App Router, never trusting the client with pricing, and wrapping four providers under a single interface.
- 14September 2, 2026 · 7 min read
SEO in Next.js: Metadata, Sitemap, Robots, and Structured Data
The mechanics of SEO in the App Router — generateMetadata, canonical tags, correctly setting lastModified in your sitemap, structuring JSON-LD with @graph, and which rich results are still actually alive.
- 15June 25, 2025 · 13 min read
Git Fundamentals: An Introduction to Version Control and Practical Usage
A beginner's guide to version control with Git: what it is, why we use it, core commands, real-world analogies, common mistakes, practical tips, and a quick reference for daily workflow.
- 16June 13, 2025 · 8 min read
Choosing a React UI Library: Which One to Use in 2026?
MUI, Ant Design, Mantine, Chakra, and shadcn/ui — up-to-date npm numbers, how Server Components impact your choice, and the real question: do you want a dependency or code ownership?
- 17June 12, 2025 · 9 min read
Monorepo with Turborepo: Managing Four Apps in One Repository
I explain setting up pnpm workspaces + Turborepo using a real-world repository — 4 apps, 4 packages, uncompiled packages, an outputs bug that silently breaks caching, and containerizing a single app with Docker.
- 18June 10, 2025 · 8 min read
Where Does TypeScript Type Safety End?
Just because the compiler passes doesn't mean your program is correct. Five places where you can lie to the type system without ever writing any, what strict mode misses, and how to plug the holes at the boundary.
- 19November 23, 2024 · 8 min read
Becoming a web developer: a realistic roadmap for beginners
What order to learn things in, how long each step takes, and where people get stuck. Why starting with a framework backfires, and why deployment is the most skipped step — along with frequently asked questions.
- 20June 27, 2024 · 13 min read
HTTP status codes: complete reference and most common confusion
A complete reference list of HTTP status codes — plus the actual hard choices: 301 vs 308, 401 vs 403, 422 vs 400, 502 vs 503, including how Next.js handles them under the hood.



