A personal developer notebook built with VitePress for maintaining interview cheatsheets and framework tutorials, organized by language.
npm install
npm run dev # local dev server with hot reload → http://localhost:5173
npm run build # build static site to docs/.vitepress/dist
npm run preview # preview the built siteEach technology is a self-contained top-level section under docs/ with a uniform
layout. The nav groups them into Languages and Frameworks.
docs/
├── .vitepress/config.mjs # site config: nav + sidebar
├── index.md # home page
│
├── python/ # LANGUAGE
│ ├── index.md # overview
│ ├── cheatsheet.md # quick syntax reference
│ └── questions/ # interview questions, one .md per topic
│ ├── index.md # "all topics" landing
│ └── <topic>.md
├── java/ # LANGUAGE (same layout)
│
├── django/ # FRAMEWORK
│ ├── index.md # overview
│ ├── tutorial.md # tutorial notes
│ └── questions/ # interview questions (NN-<topic>.md, ordered)
│ ├── index.md
│ └── NN-<topic>.md
├── fastapi/ # FRAMEWORK (index + questions/)
├── flask/ # FRAMEWORK (index + tutorial)
└── spring-boot/ # FRAMEWORK (index + tutorial)
Convention per section: index.md (overview) + optional cheatsheet.md (languages)
or tutorial.md (frameworks) + a questions/ folder of topic pages. Each question is an
always-visible ## Question heading with the answer below.
- Create a
.mdin the relevant section'squestions/folder (or its root for a tutorial). - Register it under the matching
sidebarkey indocs/.vitepress/config.mjs. - Save — the dev server hot-reloads.
Copy an existing section folder (e.g. python/ for a language, django/ for a framework),
then add a nav entry (under Languages or Frameworks) and a new sidebar key
(e.g. '/go/') in config.mjs.
The Django/FastAPI question pages were generated from the bulk source markdown files in the project root (
django_300_*.md,fastapi_300_*.md) by parsing## section/### question/**Answer:**blocks into one page per section.