This Site — Portfolio, Toolkit & CMS
A personal platform with a schema-driven CMS, a private-by-default toolkit of 75+ tools for developers, students and everyday life, a command palette and a terminal.
- Role
- Designer & engineer
- Team
- Solo, with AI pair-programming
- Timeline
- Oct 2026 – Ongoing
- Organisation
- Personal
- Code
- Private repository
- Reading time
- 1 min
Next.js 16 with React Server Components, statically prerendered and revalidated on publish. One Zod schema per content type drives validation, types and the generated admin forms.
Overview
The site itself is meant to be evidence: it is fast, accessible, secure by default, and editable without touching code.
Approach
- Schema-driven CMS — each content type is one Zod schema with UI metadata. The same schema validates server actions, types the site and is exported as JSON Schema to generate admin forms.
- Repository pattern — content is stored as JSON with atomic writes today; swapping in Postgres means re-implementing one module.
- Static by default — public pages are prerendered and revalidated when content is published.
- Security — credentials only in environment variables (scrypt hash), signed session cookies, session checks inside every server action, rate-limited login, strict security headers.
- Toolkit — every tool runs in the browser; nothing a visitor pastes is sent anywhere.
Key capabilities
- Command palette (⌘K) and terminal (`)
- Interactive architecture diagrams
- Dark "night shift" and light "blueprint" themes
- Schema-generated admin with drafts and audit log
- 75+ in-browser tools for developers, students and everyone
- Privacy-friendly, cookieless analytics
Architecture
Browser
Next.js 16
Data
Static pages for visitors, server actions for the owner, one repository underneath. Select a component to trace its connections.
Quality & delivery
Testing
Unit tests for tool logic, auth and the repository; end-to-end smoke tests for navigation, admin and tools.
Deployment
Runs anywhere Node runs. Content lives in a data directory that can be backed up or exported from the admin.
Building something similar?
Tell me what you’re working on — I reply to every serious message.