🥦Ndiro

Dzidza ("learn" in Shona) is a field guide to this site's own source code. It teaches web development — the whole stack, not just the browser half — using Ndiro itself as the textbook. Every example is real code from the public repository, and every chapter tells you which file to open next.

It is written for an engineer who already builds serious systems — distributed storage, query engines, RPC services — but has never had a reason to care what a <div> is or why cookies exist. You will find your own world referenced constantly: a web app is a client-server system with an unusually hostile client, and most of what looks foreign here is a renamed version of something you already know.

How to read it

Contents

  1. 1 One page load, end to end
  2. 2 HTTP: the protocol under everything
  3. 3 The backend: Flask on one worker
  4. 4 HTML: the document
  5. 5 CSS: style, layout, theming
  6. 6 Server-side rendering with Jinja
  7. 7 JavaScript and the DOM
  8. 8 The JSON API: both sides of fetch
  9. 9 Identity: OAuth, sessions, guards
  10. 10 Storage: DynamoDB, S3, and caches
  11. 11 Capstone: the auto-log pipeline
  12. 12 Security: thinking like an attacker
  13. 13 Changing the site: a working method
🐘 From your world

Boxes like this one appear throughout: they map a web concept to something from large-scale systems engineering — HDFS, Hive, RPC, caches, queues. Green boxes are hands-on exercises; red boxes are classic mistakes to watch for in review.

🏠