Swell is one page that does one job: turn a visitor into a signup. Nine sections in the order an argument is actually made, plus an about page, a contact page and a legal page.
It ships to the App Store, not only to a browser
Capacitor is wired in, so the same code base becomes a native iOS app. The floating bar respects the iPhone safe area, taps carry haptic feedback, and nothing in the layout assumes a mouse.
It is written to be extended by an AI agent
An AGENTS.md at the root, and five files of written conventions beside it: design, content, internationalisation, components and deployment. They say where a token lives, why a rule exists and what breaks if it is ignored. Point an agent at the repository and it extends the theme instead of fighting it.
What you get
A hero with a live product frame, the problem stated before the solution, a feature tour, a three-step how-it-works, a pricing table with a comparison, social proof, an FAQ built on native details elements, and a closing call to action with an email field. Every section is a component you can reorder or delete.
Almost no JavaScript
The accordion is a native details element, the marquee is pure CSS, the theme switch runs before first paint so nothing flashes. No React, no animation library, no WebGL. What ships is the mobile drawer, the theme switch and the scroll-driven film scene, and all of them survive view transitions.
Built to be read
Astro 7 static output, Tailwind CSS 4 with CSS-first tokens, TypeScript in strict mode. One file defines the palette and the semantic roles, so one command repaints the theme, the favicon and the share cards from a single brand colour. The SEO layer is hand-written files in the repo rather than a plugin, and the same source builds an iOS and Android app through Capacitor.
Bilingual by construction
English at the root, French under /fr/, one output per language from one page source. The dictionary is a typed object, so a missing translation is a build error instead of an English sentence in production.









