Skip to content

Latest commit

 

History

16 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DoUKnow

An open handbook of everything a software engineer needs to know.

📖 Read it →

576 topics across 26 categories — system design, software architecture, distributed systems, databases, messaging, APIs, networking, reliability, observability, security, testing, DevOps, performance, data engineering, ML systems, platform engineering, multi-tenancy, compliance, cost engineering, frontend, mobile and engineering practice.

Every written topic follows the same structure, so you always know where to look:

Section What it answers
What it is A plain-language definition, no jargon in the first sentence
Why it exists The problem it solves; what breaks without it
How it works The mechanism, the variants, the algorithms
Diagram A Mermaid diagram of the actual mechanism
Trade-offs A table: option, pros, cons, and when to pick it
In the real world A named system doing it, with numbers
Code Language-agnostic pseudocode, plus one real snippet
Pitfalls How people get it wrong in production
When not to use it The cases where this is the wrong tool

Features

  • ⌘K search over every topic, alias, heading and body — fully client-side, no backend.
  • 8 learning paths: Junior → Mid, Mid → Senior, System Design Interview, SRE, Backend, Security, Data & ML, Platform.
  • Theme-aware diagrams that re-render in light and dark.
  • Glossary of every topic and alias, A–Z.
  • Roadmap showing how the 26 categories relate.
  • Static site. No tracking, no accounts, no server.

Running locally

git clone https://github.com/itsmadson/DoUKnow.git
cd DoUKnow
npm install
npm run dev
Command What it does
npm run dev Build the content index, then start Vite
npm run build Content index → typecheck → production build into dist/
npm test Vitest: content lint, search, routing, palette
npm run lint ESLint
npm run content Regenerate content-index.json and search-corpus.json
npm run new:topic -- <slug> Scaffold a correctly-shaped MDX file for a taxonomy topic

How it is built

src/taxonomy/*.ts     Source of truth: 26 categories, 576 topics, 8 learning paths
src/content/**/*.mdx  The written topics
scripts/              Content index builder and topic scaffolder
src/components/       Shell, sidebar, ⌘K palette, TOC, Mermaid, MDX section components
src/pages/            Home, Category, Topic, Paths, Glossary, Roadmap, 404

The taxonomy declares which topics exist; scripts/build-content-index.mjs reads it plus every MDX file and emits content-index.json (metadata and navigation) and search-corpus.json (body text, loaded lazily). Topic bodies are code-split one chunk per topic, so the bundle stays flat as topics are added.

A topic with no MDX file yet renders as a stub: still listed, still searchable, with a link to write it. That is deliberate — the index of what you should know is useful even before every page is finished.

Stack: React 19 · TypeScript · Vite 6 · Tailwind v4 · MDX · MiniSearch · Mermaid · lucide-react · Vitest.

Contributing

Writing a topic is the most useful thing you can do here, and stubs are the best place to start. See CONTRIBUTING.md — it takes about five minutes to get set up.

Corrections are equally welcome. If something on this site is wrong, open an issue; being wrong in public is the one thing a reference cannot afford.

Deployment

Pushing to main runs lint, tests and a build, then deploys to GitHub Pages. To host it elsewhere, set BASE_PATH at build time:

BASE_PATH=/ npm run build

License

MIT — see LICENSE. Use it, fork it, teach from it.