Learn web development with step-by-step guides
From beginner to advanced — Django, Python, REST APIs, JavaScript, Bootstrap, and more
Run several Django applications on a single machine without them taking each other down: label-driven routing, automatic certificates, network and resource isolation, independent deploys, per-app backups, and knowing when one server is no longer enough.
Where secrets leak in a Django deployment and what to do about it: file permissions, environment variables versus files, build arguments baked into image layers, git history you cannot really erase, encrypted-at-rest storage, and a rotation process.
Sending mail is easy; arriving is not. Authentication records explained properly, the alignment rule most guides omit, why fresh servers cannot send, asynchronous delivery, bounce handling, and the headers that keep you out of the spam folder.
DNS treated as the distributed system it is: which records matter, what TTL really controls, why propagation is the wrong word, negative caching, CAA to restrict certificate issuance, and how to move a domain without a gap in service.
Certificates from the inside out: what the chain actually proves, HTTP-01 versus DNS-01, renewals that stop silently, rate limits, HSTS as a one-way door, and how to read the error messages that send everyone in the wrong direction.
Everything a Django deployment needs to survive losing a server: consistent database dumps, media and secrets, encrypted offsite copies with restic, retention that survives ransomware, point-in-time recovery, and the restore drill nobody runs.
Lock down a Django server properly: default-deny firewall rules, key-only SSH without locking yourself out, fail2ban that actually bans, IPv6 rules people forget, and why Docker quietly publishes ports straight past your firewall.
A complete playbook for moving a running Django site to a new server: inventory, runtime parity, database and media transfer, certificates before DNS, the delta-sync window, the IPv6 trap that breaks TLS issuance, and how to keep a working fallback.
Find your breaking point before your users do: designing realistic load scenarios, driving them with Locust or k6, reading the latency percentiles that matter, locating the true bottleneck, and turning results into capacity plans and autoscaling signals.
Escape fat views and fat models with a pragmatic clean architecture for Django: a service layer for business operations, selectors for reads, clear domain/framework boundaries, transactions and validation in the right place, and business logic you can test without a request.
Go beyond CRUD with the Postgres features Django hides: table partitioning, materialized views, window functions, LISTEN/NOTIFY, recursive CTEs, advanced constraints, JSONB/arrays, and safe migrations — with guidance on when to push logic into the database.
Do multilingual Django properly: marking strings, the message-file workflow, pluralization, URL-based language selection, locale-aware formatting, time zones, translating database content (not just the UI), RTL, and running translations across a real team.
These tutorials are written from real production work, and the best ideas come from readers. Got a suggestion, a correction, or a subject you keep searching for and never find properly explained? Tell us — we read every message, and requested topics move to the front of the queue.
Check out our premium Django packages and SaaS templates to jumpstart your project.