About The Role
The headless CMS space has matured — but most developers who say they've built headless architectures have stitched together a tutorial stack, not designed one from scratch. The difference shows when the content model needs to evolve, when third-party APIs behave unexpectedly, or when the business asks for something the original schema can't handle. We're building the digital platform for a growing MedSpa — and we need someone who knows the difference between setting up Sanity and actually owning it.
This is a full ownership role. You'll design the content architecture in Sanity.io, build the Next.js frontend that consumes it, and wire the integrations that make it operational — booking flows, service pages, provider profiles, and the content engine behind it all. You'll work lean, make architectural calls without waiting for a spec, and ship real features in a real production environment. If your best work has been in a large team with a dedicated design system and a PM sequencing your tickets, this probably isn't the right fit.
What You'll Do
Own the content architecture
- Design the full content schema in Sanity.io from the ground up — services, treatments, providers, booking flows, blog, FAQs — with clean document types, structured portable text, and a model that non-technical editors can actually use.
- Make the schema decisions that will matter 18 months from now: how content is related, how it's reused, how it scales as the business adds locations, services, and providers.
- Build custom Sanity Studio configurations and input components where the default UI doesn't serve the editorial workflow.
- Write content migrations cleanly — no cowboy schema changes that break downstream consumers.
Build the frontend
- Develop the Next.js frontend consuming Sanity's GROQ API — with a deliberate ISR/SSR strategy, image optimization, and SEO fundamentals built in from the start, not bolted on later.
- Translate design intent into clean, maintainable component code in TypeScript — you don't need to be a designer, but you notice when spacing is wrong and you fix it.
- Implement performance budgets and Core Web Vitals targets that matter for a service business where page speed is directly tied to conversion.
- Own the deployment pipeline on Vercel — preview environments, CI checks, and rollback capability.
Build and maintain integrations
- Connect the CMS to third-party booking and scheduling platforms — API-first, cleanlyabstracted, and resilient to the inevitable upstream changes.
- Integrate any e-commerce or payment flows needed for service packages, gift cards, or memberships.
- Build for failure: error handling, retry logic, and observability so issues surface before clients notices them.
Work independently and communicate clearly
- Manage your own delivery — you'll have context, goals, and access to stakeholders, not a Jira board of pre-scoped tickets.
- Flag blockers early and propose solutions, not just problems. Async-first communication in English at a level that builds trust with non-technical stakeholders.
- Document your architectural decisions so the codebase can be handed off, extended, or reviewed without a tribal knowledge transfer.
Who you are
- A full stack developer who has shipped a production Sanity.io project — not a courseproject, not a portfolio piece that lives on localhost. A live URL you're proud to share.
- Someone who understands headless architecture at the decision level: you can explain why you chose GROQ over GraphQL, when to use ISR vs SSR, and how you'd structure a schema to support multi-location content without duplication.
- Comfortable making calls when the spec is incomplete. You ask the right questions to close the ambiguity, then build — you don't stall waiting for perfect requirements.
- Experienced working remotely and offshore, which means you already know what good async communication looks like and why it matters more than timezone overlap.
- Someone with enough UI sensibility to deliver work that looks intentional — even if design isn't your primary skill.
Required qualifications
- 3+ years building full stack web applications in production environments.
- Demonstrable, hands-on experience with Sanity.io — content modeling, GROQ queries, Studio customization. Contentful or Strapi experience is noted; Sanity is still the
- requirement.
- Strong Next.js and TypeScript — not familiar with. You use these daily and you have opinions about how to use them well.
- Experience designing and building headless architectures end-to-end, not just consuming a CMS someone else configured.
- Proven ability to work independently in a remote/offshore engagement — async communication, proactive status updates, self-managed delivery.
- Upper-intermediate English proficiency or above, written and verbal.
Good to have
- Experience integrating booking, scheduling, or e-commerce APIs in a service-based business context.
- Exposure to healthcare, beauty, wellness, or any industry where trust and content accuracy are load-bearing.
- Familiarity with Nuxt or Vue if Next.js isn't your primary — we can flex on framework if the Sanity and headless depth is strong.
- Experience setting up monitoring, alerting, or error tracking on Jamstack/serverless deployments.