Files
supabase/apps/www/_customers/juniver.mdx
Danny White ba107edbda chore(www): clarify image paths (#41451)
## What kind of change does this PR introduce?

Frontmatter name change.

## What is the current behavior?

We repeatedly mistake `thumb` for `image` and visa versa, meaning the
wrong images are used for Open Graph and in-site thumbnails on blog
posts. Events and case studies use the same naming convention too.

## What is the new behavior?

These two bits of frontmatter are renamed for clarity:

  - Blog posts: `imgThumb` + `imgSocial`

That mapping for blog posts:

- `thumb` is now `imgThumb`
- `image` is now `imgSocial`

These related bits remain as-is:

  - Events
  - Case studies

The
[www/README.md](https://github.com/supabase/supabase/blob/dnywh/chore/blog-image-frontmatter/apps/www/README.md#best-practices)
file has been expanded to clarify all of the above. It now also provides
instructions on image optimisation.

## To test

A lot of files were touched here. Please help make sure:

- [ ] The CMS works as intended. This is the **biggest unknown**.
- [x] All blog posts render the correct image as their on-site thumbnail
and Open Graph image. You can test the latter by firing up a draft
iMessage. Online Open Graph services like Facebook cache images, so
aren’t reliable.
- [x] All events render their correct images
- [x] All case studies render their correct images
- [x] All customer stories render their correct images ([known
issue](https://supabase.slack.com/archives/C072FL5KKKP/p1768888063209359?thread_ts=1768885681.502169&cid=C072FL5KKKP),
predates this work)
2026-01-29 11:29:26 +11:00

110 lines
6.3 KiB
Plaintext

---
name: Juniver
title: 'Juniver built a self-serve B2B platform with Supabase to scale eating disorder recovery'
# Use meta_title to add a custom meta title. Otherwise it defaults to '{name} | Supabase Customer Stories':
# meta_title:
description: Juniver switched from Firebase to Supabase and saw immediate improvements in developer experience and performance.
# Use meta_description to add a custom meta description. Otherwise it defaults to {description}:
meta_description: Juniver switched from Firebase to Supabase and saw immediate improvements in developer experience and performance.
author: prashant
author_title: Prashant Sridharan
author_url: https://github.com/CoolAssPuppy
author_image_url: https://avatars.githubusercontent.com/u/914007?v=4
logo: /images/customers/logos/juniver.png
logo_inverse: /images/customers/logos/light/juniver.png
tags:
- supabase
date: '2025-01-15'
company_url: https://www.joinjuniver.com
misc: [{ label: 'Founded', text: 'United Kingdom' }]
about: Science-based recovery program for disordered eating
# "healthcare" | "fintech" | "ecommerce" | "education" | "gaming" | "media" | "real-estate" | "saas" | "social" | "analytics" | "ai" | "developer-tools"
industry: ['healthcare', 'ai', 'saas']
# "startup" | "enterprise" | "indie_dev"
company_size: 'startup'
# "Asia" | "Europe" | "North America" | "South America" | "Africa" | "Oceania"
region: 'Europe'
# "database" | "auth" | "storage" | "realtime" | "functions" | "vector"
supabase_products: ['database', 'auth', 'functions']
---
<Quote img="nick-farrant-juniver.jpg" caption="Nick Farrant, Founding Engineer, Juniver">
For me, the biggest benefit of Supabase is developer experience. My expertise doesn't lie in
databases and infrastructure. It really didn't take much time at all to spin up this product with
Supabase.
</Quote>
[Juniver](https://www.joinjuniver.com/) is an iOS app that guides people through recovery from eating disorders and disordered eating. The product combines an AI recovery coach, a thoroughly researched curriculum, and self-serve tools designed for moments of need. Juniver is expanding from B2C into B2B2C, licensing its platform to clinics and clinicians who then offer it to patients.
## The challenge
Juniver needed to evolve its backend to support a new B2B2C product, without risking the stability of its consumer app.
- Launch a self-serve, automated, scalable platform for clinics and clinicians
- Enforce strict privacy and access controls across clinics, clinicians, patients, and licenses
- Integrate tightly with Stripe and webhooks to automate onboarding and license provisioning
- Move quickly with a lean team, choosing tools that won't have to be replaced in a few years
They also faced significant friction with their previous Firebase setup:
- Document-based storage made data relationships difficult to manage
- Manual relationship handling slowed development
- Limited scalability for complex B2B requirements
- Developer productivity was constrained by Firebase's limitations
<Quote img="nick-farrant-juniver.jpg" caption="Nick Farrant, Founding Engineer, Juniver">
Time is such a big currency in startup world. With Firebase, we were really struggling with
relationships within our data. It was all done very manually, as you can expect with
document-based storage. Supabase is a relational database and it's much easier and we can move
faster.
</Quote>
## Choosing Supabase
Juniver had long run on Google Cloud with Firebase for the mobile app. The new B2B product created a clean slate to evaluate alternatives and set a foundation for future scale. Supabase offered a relational core (Postgres) and an integrated developer experience that aligned with Juniver's needs now and later.
**Why Supabase**
- A relational database (Postgres) to model clean, maintainable relationships
- Integrated developer experience: visual Table Editor with inline SQL, clear logs, SDKs
- Strong security posture with Row Level Security, plus an easy way to "view as user" to validate policies
- Built-in primitives (Auth, Functions) to save time and build with best-of-breed products
<Quote img="nick-farrant-juniver.jpg" caption="Nick Farrant, Founding Engineer, Juniver">
The Supabase developer experience is so clear. I've got everything at my fingertips. I'm in the
Table Editor. The SQL editor is literally right below the table editor. The feature you have to
see the table from a different user's perspective to test your Row Level Security is a wonderful
little feature that I use all the time.
</Quote>
## The approach
Juniver used the B2B product as a greenfield build on Supabase, avoiding risky dependencies on the legacy Firebase data while preparing for an eventual B2C migration.
- **Getting started**
- Spun up a new Supabase project and schema for clinics, clinicians, patients, and licenses
- Leaned on documentation and the iOS SDK to accelerate the build
- **Implementation highlights**
- **Database (Postgres):** Relational schema with strict Row Level Security; frequent use of "view as user" to validate policies
- **Auth & OAuth:** Managing identities for clinics and patients with fine-grained access
- **Webhooks + Edge Functions:** Stripe purchase triggers an automated sequence to authenticate partners, provision license codes, and send emails
- **Operational visibility:** Edge Function logs and an integrated console for fast debugging and iteration
<Quote img="nick-farrant-juniver.jpg" caption="Nick Farrant, Founding Engineer, Juniver">
You have to expect, plan, and build for scale. We can scale exponentially with Supabase.
</Quote>
## The results
Juniver's B2B platform is out in the wild and early in adoption, but the team is already seeing meaningful wins in developer experience and delivery speed.
- Rapidly build-out of a self-serve, automated B2B platform using out-of-the-box Supabase features
- Faster iteration through an integrated UI, inline SQL, clear logs, and RLS policy testing
- A relational foundation that supports today's B2B needs and tomorrow's B2C migration
- Streamlined development process with Supabase's integrated tooling
<Quote img="nick-farrant-juniver.jpg" caption="Nick Farrant, Founding Engineer, Juniver">
My advice to developers thinking of moving to Supabase: Try it, it's free. Replicate your project.
You'll see how much easier it is to think about your data from a relational point of view.
</Quote>