All projects
NexusLite
A zero-dependency TypeScript framework for reactive interfaces and static rendering. Powers every page on this site.
Independent project
My contribution
I designed and implemented the framework’s element helpers, state store, DOM rendering, router, and static-site rendering. This portfolio uses that static-rendering path.
How I worked on it
- Kept the runtime free of external dependencies and the rendering path readable in the source.
- Used real applications, including this website, to exercise the framework and added checks for the core behavior and prerendering.
Try NexusLite
A small working example of the framework behind this website.
What it is
NexusLite is a zero-dependency reactive frontend framework in TypeScript that I wrote from scratch. It is the framework this website is built on: every page on ag064.eu is a function that returns an element tree, and the build runs prerender() to write static HTML. ~1,500 lines, one file, no transitive runtime deps.
Features
- Element helpers (div, h1, button, input, section, nav, ...)
- createStore pub-sub state, bindTo, delegate
- createHttp with get/post/put/delete/patch, params, headers, timeout
- createRouter with hash and history modes
- prerender() for static-site generation
- createDragDropContainer, createLazyContainer, UI patterns
- Zero runtime dependencies
- ~1,500 lines, one file
Stack
How to run it
git clone https://github.com/AG064/nexuslite.git
cd nexuslite/framework
npm ci
npm run build
# output: dist/nexuslite.js and dist/nexuslite.d.ts