Musa Yılmaz

Blog

Technical writing, experiences, and guides.

·10 min read

Stop Building on the Server: Docker Deploys from CI

Building images on the box costs you OOM-killed deploys, long downtime and no way back. Build in GitHub Actions, tag by commit SHA, let the server only pull.

dockergithub-actionsdevopsdeployment
·10 min read

Self-Hosting Next.js: What Changes When You Leave Vercel

Every Next.js feature works on your own server. What you take over: nginx buffering, the ISR cache, the rsc header your CDN strips, sharp, and graceful shutdown.

nextjsself-hostingdevopsdeployment
·8 min read

Vercel Free Tier Limits: What the Hobby Plan Really Allows

The real numbers behind Vercel's Hobby plan: 100 GB transfer, 200 projects, 100 deploys a day — plus custom domains, preview SEO and cron-free scheduling.

vercelnextjsdeploymentdevops
·5 min read

Core Web Vitals: Raising Lighthouse Scores on a Next.js Site

What LCP, CLS and INP actually measure, the font and image fixes that move them, and how to read the difference between lab scores and real-user field data.

performancenextjsseocore-web-vitals
·5 min read

Form Validation with Next.js Server Actions: Zod, Rate Limiting and Spam Protection

Handling forms without an API route — server-side validation with Zod, honeypot bot filtering, and the field-prefix gotcha that makes FormData reads return null.

nextjsreactzodforms
·5 min read

Filtering Thousands of Records: PostgreSQL and Django ORM Performance

Why multi-criteria listing pages slow down — N+1 queries, missing indexes, the wrong text search method and OFFSET pagination — and how to fix each one.

postgresqldjangoperformancesql
·6 min read

AWS Lightsail Django Deploy: From Nothing to Live

Step-by-step Django deployment on AWS Lightsail: Docker, nginx, Let's Encrypt HTTPS, SSH hardening, firewall rules and a backup routine that actually works.

awsdjangodevopsdeployment
·5 min read

A Production Docker Compose Setup for Next.js + Django

Packaging a Next.js frontend, Django backend, PostgreSQL and nginx into one Compose file — multi-stage builds, healthchecks, network isolation and the secrets you must not bake into images.

dockernextjsdjangodevops
·5 min read

Django, Celery and Redis: Background Tasks Done Right

Celery and Redis setup for Django: moving slow work out of the request cycle, retry strategy, idempotent tasks, and the mistakes that bite in production.

djangoceleryredispython
·6 min read

How Next.js ISR and On-Demand Revalidation Work

How Next.js ISR works, how to pick a revalidate window, and how on-demand revalidation updates content in seconds — with App Router code examples.

nextjsisrperformancecms
·5 min read

Turning Django Admin Into a CMS Your Client Can Actually Use

Making the built-in Django admin genuinely usable for non-technical editors with list_display, inlines, fieldsets and model-level validation — instead of building a custom panel.

djangopythonadmincms
·6 min read

Getting hreflang and Multilingual SEO Right in Next.js

Generating per-page canonical and hreflang tags in the App Router, building a sitemap with localized paths, and avoiding the mistakes that quietly break multilingual indexing.

nextjsseoi18nnext-intl
·2 min read

Building Admin-Managed SEO Landing Pages in 15 Languages

Using next-intl and the Django admin to make location-based SEO landing pages manageable without a developer, across 15 languages.

nextjsseodjangoi18n
·2 min read

Next.js + Django on a Single Origin, No CORS Headaches

How an nginx reverse proxy puts a Next.js frontend and Django backend on one origin, eliminating CORS config, cookie SameSite issues, and dual SSL certs.

nextjsdjangonginxdevops