How nexenne.com is built.
A technical note on the tools, content, typography and deployment choices behind nexenne.com.
App & build
- App framework · SvelteKit 2 · adapter-static
- UI runtime · Svelte 5
- Build tool · Vite 8
- Language · TypeScript 5
- Generated output · static HTML generated at build time
Content
- Source files · .md + .org stored in the repository content/
- File discovery · Vite glob imports in eager/raw mode
- Markdown · unified · remark-parse · remark-rehype
- Org-mode · uniorg-parse · uniorg-rehype
- Frontmatter · gray-matter · zod-validated
- RSS · generated from the same content
Typography
- Headings & body · Inter Tight
- Code · JetBrains Mono
- Editorial accent · Fraunces
- Font source · Google Fonts
- Responsive scale · clamp() for fluid type
Interface notes
- Content tone · technical notes, project pages, and build details
- Side rail · compact navigation for the main pages
- Color tokens · oklch + color-mix()
- Accent palette · five selectable accent colors in Tweaks
- Theme modes · dark · light · system
- CV layout · AltaCV layout (Liantze Lim)
Hosting & deploy
- Hosting · static site on GitHub Pages
- Deploy · GitHub Actions on every push to main
Credits
- SvelteKit and adapter-static
- uniorg by Alexander Rasendubi
- AltaCV by Liantze Lim
- Hugo, for the content model
Source code and content live in the same repository: the site can be read, built and checked without a separate CMS or editorial system.