Skip to content
K.D. Vassiliou Group
WorkProfessional servicesA professional services firm

A content-managedsite for anindependentpractice

Moved a practice off a hosted site builder onto a Next.js site with its own editing studio, so services, programmes and events publish without a deploy.

Line drawing of an editing screen wired to the pages it publishes
Illustration of the problem · not a client screenshot
Client
A professional services firm
Sector
Professional services
Status
In use · edited by the practice
Year
2026
Services
Not yet cited by a service
Stack
  • Next.js
  • React
  • TypeScript
  • Sanity
  • Zod
  • Resend
  • Docker
  • Caddy

An independent professional services practice was running on a hosted site builder and needed to leave it - without losing the pages people had already linked to, and without needing a developer for a copy change.

The challenge

A practice like this publishes constantly: a new programme, a new event date, a revised description of how a service works. None of that should require a deployment. But the alternative cannot be a heavyweight content management system either, because that becomes a server to patch, a plugin to update and a login nobody wants to own. Meanwhile the old site's URLs were already in search results and in other people's links, and every one of them had to keep working. The site also has to stand up to scrutiny, since this is a business selling expertise to corporate buyers, where credentials, policies and accessibility are part of the offer rather than an afterthought.

What we built

A Next.js site with a hosted content platform behind it. The content model is defined in the repository and the editing studio is served by the site itself at its own route, so there is one login and nothing additional to host. Images are transformed on request by the content platform rather than committed at a dozen sizes.

The legacy addresses we knew about are redirected permanently to their replacements, so existing links keep resolving. Each surface is then a page the practice controls: the services it offers, its corporate work, its events, and an about page carrying credentials. Booking is deliberately delegated to a scheduling service rather than rebuilt, so availability stays where the practitioner already manages it. The enquiry form is a server action that validates against a schema on the server, not only in the browser, and sends through a transactional email provider so deliverability is not the web server's problem.

The site ships an accessibility statement and a privacy policy as first-class pages, structured data describing the business and each page, a generated sitemap and robots policy, social preview images rendered at build time, and a plain-text summary for the language models that now read it. Security headers are set in configuration rather than left to the proxy, and deployment is a self-contained container behind a reverse proxy that obtains its own certificates.

The outcome

The practice edits its own content and the site picks it up; a copy change involves us not at all. The known addresses from the old platform still resolve, so the move did not orphan the links already pointing at it, and the running cost is now a small fixed one on hardware we already operate.

Next projectRetail and e-commerce

A storefront where each work is one of one

An artwork storefront on Next.js and PostgreSQL - originals that sell once, prints that do not, and commissions handled in the same system.

Read the case

Want one ofthese for yourbusiness?

Tell us what is slow, manual or broken, and we will scope it.

Tell us what is slow or broken, when you need it, and your budget range.