About
Technology
This site is built as a small, structured system instead of using a traditional CMS. The goal is to keep things predictable, fast, and easy to reason about.
The idea behind the site
I wanted a site that reflects both my photography and my technical work. That meant building something simple, where I understand every part of how a page is created and delivered.
Instead of relying on a CMS or theme, everything is defined in code and rendered in a predictable way. This keeps the system small and avoids unnecessary complexity.
Infrastructure
The site runs on Cloudflare Workers. Pages are generated at the edge, which keeps response times low and removes the need for a traditional server setup.
Infrastructure is managed with Terraform and executed through Spacelift. This keeps environments consistent and avoids manual configuration in dashboards.
How content is structured
Content is written manually and structured using typed objects. There is no CMS interface. This keeps the content predictable and avoids mixing editing concerns with runtime behaviour.
Static pages like this one are bundled with the application. Other types of content, such as articles or journals, can be stored separately and composed at request time when needed.
From request to page
Each request goes through a small pipeline. The request is first resolved and checked against policies such as redirects or canonical rules. After that, the correct page is selected.
The page is then passed through a series of steps that prepare the data needed for rendering. This includes navigation, breadcrumbs, metadata, and structured data.
Finally, the renderer turns that data into HTML. The renderer itself stays simple and only outputs what it is given, without adding its own logic.
How rendering works
Rendering is split into small parts such as the document head, page content, and footer. Each part is generated separately and then combined into a complete document.
Because everything is structured and typed, the output is consistent and easier to test. This also makes it easier to extend the site without unexpected side effects.
Publishing while travelling
The site is designed around practical publishing, not just page rendering. When I am travelling, I may be working from a hotel, on mobile data, or tethered to my phone after a long day outdoors. In those moments I want the process to be quick, predictable, and light on data transfer.
That is one of the reasons I do not use a traditional CMS. I avoid slow admin interfaces, large dashboard payloads, and publishing flows that break down on weaker connections. The largest part of any upload should usually be the photo itself, not the system around it.
The site is built so content can be created simply and uploaded with minimal overhead. That makes it easier to publish field notes, updates, or new work after a day in nature without having to fight the platform first.
Why it is built this way
The goal is not to build something complex, but something clear. By keeping the system small and well-defined, it is easier to maintain and easier to improve over time.
It also allows the site to act as both a portfolio and a reference for how I approach building systems: structured, predictable, and focused on doing one thing well.