Rebuilding this site on Eleventy
Why I moved my portfolio off Angular and onto a static site generator, and what changed.
This site used to be an Angular single-page app. It is now a pile of static HTML generated by Eleventy, and it loads considerably faster for it.
Why the change
The old version shipped an entire SPA framework, a router and a runtime to render what is, in practice, four pages of mostly text. My work history lived inside a TypeScript component as an array of objects, which meant adding a project required touching application code and redeploying a build pipeline.
For a portfolio, that trade is backwards. There is no interactivity to speak of, no authenticated state, no data fetching. Every page can be known at build time.
What it looks like now
The content lives in plain data files and Markdown:
src/
_data/works.js → work history
posts/*.md → blog posts
_includes/ → layouts and macros
Adding a project is now an edit to one array. Adding a blog post is dropping a
Markdown file into src/posts/. The build emits static HTML with no client-side
framework at all — the only JavaScript on the page is a theme toggle and a
scroll-reveal observer, both of which degrade gracefully to nothing.
The parts worth keeping
Not everything needed replacing. The work history itself — five companies, thirteen projects, a decade of it — carried over almost verbatim. That content was always the point; the framework around it was incidental.
Rewrite the delivery mechanism, keep the substance.
If you're sitting on an SPA that renders static content, it's worth asking what the framework is actually buying you.