← Index
Web

Miles & Models

A portfolio with no CMS, no database, and no dashboard.

Overview

This site. Next.js App Router, statically exported, deployed on Vercel. Every post, project, and idea lives in a TypeScript file edited by hand. There is no admin surface to log into and nothing to keep running — updating the site is a commit.

Features
  • Content as source
    Posts and projects are typed arrays. Adding one is a few lines and a deploy.
  • Static by default
    Every route, including project pages, is prerendered at build time. Nothing runs on a server.
  • Panel scrolling
    Sections settle into place on scroll without a router per section, using CSS snap alone.
How it works
  1. 01Edit a TypeScript data file.
  2. 02Commit.
  3. 03Vercel rebuilds and the static pages regenerate.
Stack
Next.jsTypeScriptCSSVercel
Key decisions
No CMS, on purpose
A CMS would be a second system to maintain for a site updated a few times a year. Plain data files mean the whole site is legible in a text editor and has no runtime dependency.
Scroll snap over a section router
Discrete panels without the cost of routing between them — the whole page stays one document, linkable and printable, with the panel feel handled entirely in CSS.
Next projectOutbox