Full Stack Developer (Headless CMS/Sanity.IO)
Own a full-stack Sanity/Next.js platform for a growing MedSpa: design schemas, ship features end-to-end, embrace async work, and own the deployment — no handholding.
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.
Position Details
- Remote: Fully-remote
- Location: Manila, Philippines
Create a Job Alert
Interested in building your career at Total Performance Consulting? Get future opportunities sent straight to your email.
Apply for this job
*
indicates a required field


