Files
supabase/apps/www/_customers/juniver.mdx
Danny White 2e7a8a3362 chore(www): rename customer logo folders to on-dark and on-light (#48962)
## What kind of change does this PR introduce?

Chore: rename customer logo folders and document the theme contract. No
intended visual change, aside from Phoenix Energy whose two marks were
in the wrong folders.

## What is the current behavior?

Customer logos live at:

- `/images/customers/logos/{slug}.png` (`logo`, light mode)
- `/images/customers/logos/light/{slug}.png` (`logo_inverse`, dark mode)

`light/` actually means “use me on a dark background”.

## What is the new behavior?

Same assets, clearer paths:

- `/images/customers/logos/on-light/{slug}.png` → dark/black mark →
`logo` → light mode
- `/images/customers/logos/on-dark/{slug}.png` → light/white mark →
`logo_inverse` → dark mode

Icon chips stay at `/images/customers/logos/{slug}-icon.svg`. Old
`/images/customers/logos/light/*` URLs redirect to `on-dark`. www README
now has the contract.

# To test

Use the [www
preview](https://zone-www-dot-com-git-dnywh-chorecustomer-logo-o-0d7bc1-supabase.vercel.app).
Toggle light/dark from the site header on each page. Logos should stay
readable (no white-on-white or black-on-black).

1. [Customers
grid](https://zone-www-dot-com-git-dnywh-chorecustomer-logo-o-0d7bc1-supabase.vercel.app/customers)
— main `logo` / `logo_inverse` surface. Spot-check Juniver, Phoenix
Energy, and one other card.
2. [Phoenix Energy
story](https://zone-www-dot-com-git-dnywh-chorecustomer-logo-o-0d7bc1-supabase.vercel.app/customers/phoenix-energy)
— story header uses `logo` only (on-light, plus a dark-mode brightness
filter). We swapped this pair.
3.
[Homepage](https://zone-www-dot-com-git-dnywh-chorecustomer-logo-o-0d7bc1-supabase.vercel.app/)
— “How industry leaders…” section. Icon chips only (`*-icon.svg`); the
wordmark `logo` field is unused here.
4. [Solutions /
Agents](https://zone-www-dot-com-git-dnywh-chorecustomer-logo-o-0d7bc1-supabase.vercel.app/solutions/agents)
— Chatbase quote near the top shows both theme variants. Same pattern on
[/healthcare](https://zone-www-dot-com-git-dnywh-chorecustomer-logo-o-0d7bc1-supabase.vercel.app/solutions/healthcare),
[/finserv](https://zone-www-dot-com-git-dnywh-chorecustomer-logo-o-0d7bc1-supabase.vercel.app/solutions/finserv),
and
[/b2b-saas](https://zone-www-dot-com-git-dnywh-chorecustomer-logo-o-0d7bc1-supabase.vercel.app/solutions/b2b-saas).
5. [Contact
sales](https://zone-www-dot-com-git-dnywh-chorecustomer-logo-o-0d7bc1-supabase.vercel.app/contact/sales)
— Good Tape / Xendit / Chatbase wordmarks (`on-light`). Same logos on
the demo form at
[/solutions/enterprise](https://zone-www-dot-com-git-dnywh-chorecustomer-logo-o-0d7bc1-supabase.vercel.app/solutions/enterprise).
6.
[Enterprise](https://zone-www-dot-com-git-dnywh-chorecustomer-logo-o-0d7bc1-supabase.vercel.app/solutions/enterprise)
— Mozilla / Epsilon3 / Pebblely icons in the use-cases section
(`on-dark`).
7.
[Vector](https://zone-www-dot-com-git-dnywh-chorecustomer-logo-o-0d7bc1-supabase.vercel.app/modules/vector)
— customer quotes. This is the only page that builds `on-light` /
`on-dark` paths at runtime from the customer slug.
8. [Mobbin
event](https://zone-www-dot-com-git-dnywh-chorecustomer-logo-o-0d7bc1-supabase.vercel.app/events/migrating-from-firebase-mobbin)
— company logo uses event `logo` / `logo_light` (dark vs light).
Optional second:
[/events/scale-to-millions-goodtape-auth](https://zone-www-dot-com-git-dnywh-chorecustomer-logo-o-0d7bc1-supabase.vercel.app/events/scale-to-millions-goodtape-auth).

Quick extra: hover **Product** in the site nav. The customer story
thumbnail uses `imgUrl` (`on-light`).

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

## Documentation
- Clarified customer logo requirements, including separate light and
dark asset locations, monochrome formats, and dark PNG assets for image
generation.

## Updates
- Standardized customer logos across stories, events, sales pages,
solution pages, testimonials, and generated images.
- Improved logo rendering across light and dark themes with dedicated
variants.
- Added permanent redirects for legacy logo URLs while preserving
filename suffixes.

## Tests
- Added coverage verifying legacy logo redirects resolve correctly,
including supported exceptions.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-08-12 03:49:21 +00: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/on-light/juniver.png
logo_inverse: /images/customers/logos/on-dark/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>