Skip to content
All work
PRODUCT STRATEGYCASE STUDY

JS Labs website

This site. A Next.js website with content in a CMS, an enquiry form that writes to a CRM, a booking flow, an on-site assistant and analytics that wait for consent.

Year
2026
Context
JS Labs
Role
Design, engineering, and operations
Stack
Next.jsVercelSanityShopify Storefront APIZiteIntercomPostHogSentry

01. The challenge

A studio site has to explain the offers, show the work and turn a visit into an enquiry. It also has to be easy to update, and it cannot run trackers before a visitor agrees to them.

02. The approach

I built the site in Next.js on Vercel. Content is edited in Sanity, and the copy in the code stays as a fallback so a page never shows blank. Enquiries go through a form that writes to the JS Labs CRM, and the discovery day is booked on the same platform. Analytics, chat and the CRM tracker load only after the visitor allows them.

03. What I built

Server-rendered Next.js pages with light and dark themes

Sanity for editable content, with the copy in the code as a fallback

An enquiry form and a discovery-day booking flow on Zite, connected to the JS Labs CRM

A headless Shopify storefront for downloads, with checkout on Shopify

Intercom Fin answering questions from the JS Labs help centre

PostHog analytics behind one consent choice, and Sentry error tracking

A read-only WebMCP endpoint so AI agents can read the offers and the work

04. The outcome

The site is live at jslabs.xyz. Enquiries arrive in the CRM with the service the visitor chose, and analytics run only for visitors who agree to them.

LiveLight and dark themesConsent before tracking

Want something like this built for you?

I take on a small number of builds each year. Tell me the job and the tools it needs to work with.

GET IN TOUCH