World Through Frames is a bespoke publishing platform built specifically around photography, travel and the way I want to organise and present both.
What's perhaps more unusual is how it has been built.
Although I've worked in software development and data for many years, I haven't written a single line of the production code behind World Through Frames. Instead, the platform has been developed using agentic coding tools, with my role increasingly becoming one of designing, specifying, reviewing and directing the development rather than physically writing the code.
That doesn't mean pressing a button and asking AI to build a website.
The process has turned out to be much more iterative than that.
The workflow
Most development starts as an idea rather than a detailed technical specification.
I usually work through that idea in ChatGPT first: deciding what the feature should do, how it should behave and, importantly, how it should fit with the rest of the platform. From that discussion I create a more detailed implementation prompt.
The project itself lives in Visual Studio Code, with Codex working directly against the codebase. Codex can inspect the existing architecture, implement the feature and run tests rather than simply generating isolated snippets of code for me to copy and paste.
Once a change has been implemented, it goes through review.
I use ChatGPT and Claude to review both individual changes and the wider codebase. The aim isn't simply to find bugs. I also look for duplicated functionality, unnecessary complexity, inconsistencies and areas where something that worked perfectly well when the project was smaller is beginning to need a better design.
Those findings are then fed back into Codex as another development task.
So the workflow is essentially a continuous loop:
Review, then refactor
One of the lessons I've learnt is that AI can produce working code extremely quickly.
It can also produce far too much of it.
Without regular review, a rapidly developing project can accumulate duplicated components, slightly different solutions to the same problem and layers of code that individually make sense but collectively become difficult to maintain.
For that reason, refactoring has become a normal part of development rather than something left until later.
As the platform has grown, I've periodically stopped adding features and concentrated instead on simplifying what is already there. Common functionality is consolidated, old approaches are removed and larger parts of the application are reviewed again as the architecture evolves.
Using one AI system to review work produced by another has proved particularly useful. They don't always agree, which is often a good thing. Ultimately I still have to decide which suggestions make sense for World Through Frames.
Have I really written none of the code?
Pretty much.
Particularly in the early stages, there were occasions when I had to open the project in Visual Studio, attach a debugger and work out what was actually happening when Codex became stuck. My development experience was invaluable in diagnosing those problems and giving the agent enough information to continue.
But I wasn't then rewriting the faulty code myself. Once I'd identified the problem, I would feed that information back into the development process and let the agent implement the solution.
As the tools have improved — and as I've become better at working with them — even that has become increasingly rare.
The interesting change for me has been moving from asking “How do I code this?” to asking “What should this do, how should it fit into the architecture, and how do I know that it has been implemented properly?”
Learning along the way
Building World Through Frames has also taken me well outside my normal area of development.
My background is predominantly backend development, databases and data engineering. Before starting the project, I had comparatively little experience with modern frontend technologies.
That changed quickly.
Building a real site forced me to learn about responsive layouts, React and Next.js, browser behaviour, image delivery, accessibility, caching and the many small details involved in making a site work well across different devices.
SEO has been another substantial learning curve. Page structure, headings, metadata, structured data, image filenames, alternative text, canonical URLs, performance and internal linking all have consequences that aren't particularly obvious when you come from a backend development background.
Agentic coding hasn't removed the need to understand these things. If anything, I've found the opposite.
The tools can implement something remarkably quickly, but I still need enough understanding to decide whether what they have built is sensible.
The pitfalls
The speed is both the great advantage and one of the biggest dangers.
It is very easy to build too much.
An idea that would once have required several evenings of development can sometimes be implemented in minutes. That makes it tempting to add features simply because they are possible.
I've learnt to be much more willing to remove things, consolidate them or decide that an idea doesn't belong in World Through Frames at all.
There is also a danger in assuming that working code is necessarily good code. Something can compile, pass its tests and appear perfectly correct in the browser while still being unnecessarily complicated underneath.
That's why review and refactoring have become such important parts of the workflow.
AI has dramatically changed how quickly I can build software, but it hasn't removed the need for software engineering.
If anything, it has made the judgement behind software engineering more important.
Platform architecture
The publishing interface
Behind World Through Frames is a purpose-built publishing interface that supports all of the site's content and publishing functionality without requiring any coding. Pages are created from a set of predefined but configurable content blocks for elements such as text, photographs, galleries, maps, video and diagrams. These blocks can be combined and arranged as required, providing flexibility while keeping the presentation and behaviour of the site consistent. The same approach is used throughout the platform, so new content can be created, edited and published entirely through the administration interface while the technical implementation remains hidden from the person creating the content.
A publishing platform for photography and travel
Although each instance of World Through Frames currently runs within its own isolated cloud environment, the platform has been designed from the outset with a multi-tenant future in mind. The longer-term ambition is to develop it into a niche publishing platform for photographers, travel businesses and other organisations where strong imagery, destinations and journeys are central to the story they want to tell.
The next step will be to make the platform available to a small number of selected users and organisations for real-world testing. This will help establish how well the approach works beyond World Through Frames, identify where greater flexibility is needed and shape the features required by different types of publishers. The intention isn't to create another general-purpose website builder, but to continue developing a specialised platform around photography, places and travel.
