Nexy is a fullstack Python meta-framework: FastAPI and Starlette serve the app, Vite builds the
client. A route is a file under src/routes/ - .nexy is a page, .py is an API handler.
What Nexy gives you
A page from a file: .nexy, Markdown and MDX routes, layouts, metadata. Pages
A Python API: FastAPI handlers named after the HTTP method, validation, WebSocket. Route handlers
A client framework: React, Vue, Svelte, Solid and Preact, mixed in one project. Views
Control over rendering: SSR, ISR, CSR and islands, per page. Rendering
A typed call to Python: Actions, from a form or from TypeScript. Actions
A structured backend: Modular router with injection, guards and metadata. Modular routing
A product ready for the world: i18n, sessions, middleware, databases. Guides
A fast loop: Dev server, browser error overlay, dev toolbar. Dev toolbar
A deployable build: nx build and nx start, no Node at runtime. Deploy
Help from a coding agent: Project rules for Claude Code, Codex and OpenCode. Coding agents
Start with the task you have, not with the architecture. Every page is plain Markdown, written from
the code.
Plain Markdown, rendered by GitHub. No site generator, no build step, no second repository.
One question per page. A directory when a feature needs several pages, a file otherwise.
A page earns its place in this order: what you will be able to do, the rule in one sentence, a
picture when the feature has moving parts, an example you can run, the details, then the tables.
Every claim is checked against nexy/. When a page and the code disagree, the code wins.
An image in docs/assets/ is an illustration: the site draws the SVG inside the page, so it takes
the colours of the theme, and GitHub shows the file itself.
Every page ends with the pages that answer the next question.