Case study
The process became the product.
Juliana Alves — a nutrition practice site in production, built from one of the most thorough discovery processes I've run. That process outgrew this one project and became the base of how the agency onboards every client since.
Why this one is different
Most case studies here are about what got shipped. This one is about how the shipping got planned. A nutrition practice has a lot of specificity a generic template can't capture — specialisations, consultation formats, compliance around health claims — and getting that right up front is what stops a build from turning into an endless string of revisions later.
What's built
A three-package monorepo: a client-facing site (specialisations, blog, appointment booking, a materials/e-book store on Stripe Checkout, contact), an internal onboarding & proposal dashboard with an in-page content editor, and a shared Sanity Studio CMS both apps read and write against. Next.js 16 and Tailwind v4 across the two client-facing apps, React 19 in both of them (the shared Studio pins React 18, since Sanity v3 hasn't shipped React 19 support), Resend for transactional email, Upstash for rate limiting, Cloudinary for media.
The discovery questionnaire that grounds all of it runs 18 sections and exactly 85 explicitly numbered questions (counted directly in the source document) — general info, clinical specialisations, brand voice, existing patient journey, content needs, compliance constraints, and more. The same document structure is now reused as the template for other client engagements, because this is the project it grew up on.
A decision worth explaining
The discovery document could have stayed a one-off intake form. Instead it was built reusable from the start — versioned and referenced, and structured so the same shape could be handed to the next client with the domain-specific sections swapped out. The trade-off is real: an 18-section questionnaire is slower to fill in than a two-paragraph brief, and that's a genuine cost to the client's time. What it buys back is fewer scope surprises mid-build — decisions get made once, in writing, before code, instead of being renegotiated section by section during development.
Measured, not claimed
jualves.com.br is a fully operational site, not a placeholder — working booking flow, a blog, an educational-materials section with checkout, an FAQ, and an about/credentials page all resolve and render.
The site displays its own practice-level marketing claims — a review rating, patient testimonials with real names and photos. Those are Juliana's claims about her own practice, not a measured outcome of this build, so they aren't repeated here as a result of the engagement. Her name is already the public brand of the business (it's the site's own name), so using it here follows the same rule this site applies to Julia Mendes; what hasn't been asked for is her sign-off on being featured as a case study on someone else's portfolio, which is a courtesy worth confirming before this page goes live, not a citation problem. No specific business outcome is attributed to the work — that isn't measured anywhere, so it isn't claimed.
One thing checked specifically for this page: the site's testimonial component ships with a hardcoded placeholder fallback in code (a fictional "Mariana R." quote), the same pattern that shipped live on another client's site in this agency's portfolio. Checked live on 11/08/2026 — jualves.com.br is rendering real reviewer names and photos, not the fallback, so that specific risk didn't materialise here.
See the live site
Booking, blog and the materials store are all working, right now.
Visit jualves.com.br →