JPROT
A zero-dependency, zero-build site generator. Write Markdown in content/,
serve it with Node.js, and publish static files anywhere.
jprot init --portfolio # scaffold a site (or npx jprot init)
npm start # preview at http://127.0.0.1:4114
jprot export # static output to dist/Getting started
- Quick start — create and preview a site in ~5 minutes.
- First site — project structure and the daily workflow.
- Write content — Markdown, frontmatter, projects, shortcodes.
Configure & customize
- Configuration — site identity, nav, SEO, labels, markdown.
- Customization — CSS variables, components, themes, sections.
- Publish — export to GitHub Pages, Netlify, Cloudflare, or any host.
Reference
- Catalog elements — install ready-made components with
jprot add. - CLI reference — all commands and options.
- API reference — Node.js and TypeScript usage.
Guides
- Examples — copy-paste themes, components, and config.
- Troubleshooting — common problems and fixes.
- FAQ — frequently asked questions.
- Architecture — internals for contributors.
- Comparison — JPROT versus VitePress.
- Showcase — every built-in section rendered with live data.
- Resume — the printable
layout: resumeexample.
Why JPROT?
| Usual pain point | JPROT's answer |
|---|---|
| You must run "build" to see changes | No build — save the file, refresh |
| Changing the design is a project | Redefine CSS variables |
| The layout is owned by the framework | Replace components with your own files |
| Content uses a special language | Plain Markdown in content/ |
Heavy dependencies and node_modules | Vanilla Node.js, zero packages |
Core features
- Zero build. One command serves everything.
- Markdown content with a small YAML frontmatter block.
- Customizable via CSS variables and drop-in components.
- Instant projects — files in
content/projects/become homepage cards. - Static assets served from
public/. - Portable — Node.js 18+ is the only requirement.