Roadmap
This is a living document. It is updated whenever a feature ships or the priority list changes. Treat the "Status" column as authoritative; everything else is best-effort framing.
What's shipped
| Feature | Where it lives | Status |
|---|---|---|
| Scholarly-Minimalist theme | src/css/custom.css | ✅ Live |
| Lora + Inter + JetBrains Mono | Loaded via Google Fonts in custom.css | ✅ Live |
| Dark mode | Auto-detected, manual toggle in navbar | ✅ Live |
| KaTeX math rendering | remark-math + rehype-katex in docusaurus.config.js | ✅ Live |
| Mermaid diagrams | @docusaurus/theme-mermaid | ✅ Live |
| Full-text search (local) | @easyops-cn/docusaurus-search-local | ✅ Live |
| Algolia DocSearch (when keyed) | Activates when ALGOLIA_* env vars are present | ✅ Live |
| Progressive Web App (offline) | @docusaurus/plugin-pwa | ✅ Live |
<ResourceCard> | src/components/ResourceCard/ | ✅ Live |
<SidebarItem> / <SidebarItemList> | src/components/SidebarItem/ | ✅ Live |
<ProgressTracker> (LocalStorage) | src/components/ProgressTracker/ | ✅ Live |
| Focus Mode (Shift+F) | src/components/FocusMode/ | ✅ Live |
<RequestPortal> (Tally embed) | src/components/RequestPortal/ | ✅ Live |
| Edit-on-GitHub on every page | editUrl in docusaurus.config.js | ✅ Live |
| Bundle Builder (multi-chapter download) | src/pages/bundle.jsx + plugins/bundle-manifest.js | ✅ Live |
| Scroll progress bar | src/components/ScrollProgress/ | ✅ Live |
| Reading-time estimate | src/components/ReadingTime/ | ✅ Live |
Keyboard shortcut modal (?) | src/components/KeyboardHelp/ | ✅ Live |
| Completion sparkle on 100% | <ProgressTracker> upgrade | ✅ Live |
Coming next (prioritised)
1. Content fills
The site's biggest gap is content, not code. The top targets:
- MSNCS Sem II — Network Security & Penetration Testing, Wireless & Mobile Security.
- IOE BCT Year II — Data Structures, DBMS, Operating Systems.
- CTEVT Diploma Computer Sem III–IV — DSA, DBMS, OS, Web I/II.
- Past papers — every active subject deserves 5+ years of past papers indexed.
2. Bookmarks & Continue Reading
A lightweight LocalStorage layer that records:
- The last 10 pages you read (Continue Reading on the homepage).
- Pages you "star" (a 📑 icon next to the title; bookmarks page lists them).
Estimated cost: 1 component + a small swizzle of the doc footer. ~2 evenings.
3. Scoped search
Today, search is site-wide. We want search-within-subject ("only inside
Cryptography") and search-within-program ("only inside MSNCS"). Algolia
DocSearch supports this via contextualSearch (already enabled) once Algolia
is configured; the local-search plugin needs a wrapper.
4. Tag landing pages
Docusaurus auto-generates tag pages for any frontmatter tags:. We need to
style them and add a top-level /tags index so students can browse
"everything tagged past-paper" or "everything tagged ipv6".
5. Glossary / index
A single /glossary page auto-built from :::definition MDX blocks. The
ratchet: every chapter must define its top 5 terms inline using a known MDX
shape; a build-time plugin scrapes them.
6. Citation export
Each chapter has a stable URL and a last_update.date. A "Cite this page"
button that copies a pre-formatted IEEE / BibTeX / Chicago citation is one
small component + a pre block. Useful for thesis-stage students.
7. Print stylesheet polish
The print CSS already strips chrome. Next pass: cover-page generator, page numbers via CSS counters, and automatic per-chapter PDF at build time via Puppeteer in CI (this would also feed the Bundle Builder's PDF mode without needing the browser print dialog).
Won't do (and why)
| Idea | Why not |
|---|---|
| User accounts / login | Static site by design. Per-user state lives in LocalStorage; no backend to defend. |
| Comments on every page | High maintenance, low signal-to-noise. Use GitHub Issues for substantive feedback. |
| Hosting copyrighted textbooks | We link to legitimate sources only. Past papers (factual works) are different. |
| Multi-language UI (i18n) | Premature. Content is in English with Nepali context paragraphs where useful. Revisit at v1.0. |
| AI chat / "ask my notes" widget | Out of scope for a single maintainer. A static export of notes is enough for any user's own LLM. |
| Heavy gamification (badges, streaks) | Boundary with "Scholarly Minimalist" gets thin fast. Light touches (completion sparkle) are enough. |
Quality bars
A feature is "done" when:
- It works in the dev server (
npm run start). - It works in the production build (
npm run build && npm run serve). - It has a runtime feature flag in
docusaurus.config.jsso deployments can disable it without a code change. - It is documented either in
CONTRIBUTING.md(if author-facing) or in the on-page help (if reader-facing). - It respects
prefers-reduced-motionand is keyboard-navigable.
How to suggest a feature
Open a GitHub issue with
the prefix feature:. Describe the problem first, the proposed solution
second. PRs welcome but please discuss large additions in an issue before
writing code.