Frameworks are great for apps. A portfolio is a document — so I made it one, and kept the motion.
My old portfolio was a React single-page app. It looked fine, but view the source and you'd find an empty <div id="root">. Search engines and link previews saw almost nothing.
A portfolio is a document
Apps need client-side state. A portfolio mostly needs to be read — by people, crawlers and the little bots that build link previews. Plain HTML gives all of them the full content on the first request.
Ship the content in the HTML. Add the magic on top.
Keeping the motion
Going static didn't mean going plain. Each page is a real HTML file, but a tiny library fetches the next page and swaps the content behind a wipe, so navigation still feels like an app:
swup.hooks.replace("animation:out:await", async () => {
await cover(); // red panel slides up
});
What's next
- Turn every page into a template fed by data.
- Build an admin to manage content, sections and theme.
- Publish straight to Cloudflare in under a minute.
More on that soon.