Website Relaunch for a Creative Agency
Relaunch of an agency site on Astro and Directus, with a script-based migration of over 80 posts and a kit of reusable content blocks.
The Challenge
A creative agency is judged by its own site. The existing one had grown over years, and that growth had left two marks: the body of cases and posts could no longer be maintained cleanly, and every new layout meant work on the template rather than work on the content.
So the brief for the relaunch was not only a new design. The editorial team should be able to assemble a case from building blocks without needing a developer for every variation, and the existing content should come along in full rather than ending up in an archive.
Our Approach
The frontend is an Astro application with server-side rendering, Vue for the interactive parts, and deliberately no CSS framework. The Figma layouts scale proportionally from the design width via vw and calc(), and the components respond to their own space through container queries rather than to the window size. That is the difference between a component that works anywhere in the grid and one that only fits where it was intended.
The content lives in Directus. Cases there are not fixed templates but a sequence of blocks over a many-to-any relationship: text, text with image, single media, gallery. The editorial team assembles what each case needs. A new block type is a new collection plus an Astro component, not an intervention in existing pages.
The migration of the 80-plus posts ran as scripts rather than by hand, so it stayed repeatable after every schema change. That was necessary because the old content did not map one to one: over 300 text-over-image combinations were split into separate text and media blocks, and elements with several images were consolidated into galleries. A one-off manual migration would have started over after the first correction to the model.
The Results
Delivery runs through three environments: development, demo and production, each its own Kubernetes namespace, rolled out with Helm and built through GitLab pipelines. Dev and demo sit behind basic auth, so intermediate states can be reviewed with the client without being public.
The real gain shows not on launch day but afterwards: a new case is assembled in the CMS from existing blocks, and a new layout is one more building block rather than a rebuild. That was precisely why the old site had become hard to maintain.
Have a project in mind?
Tobias
Let's Talk →