mirror of
https://github.com/supabase/supabase.git
synced 2026-10-05 09:25:06 +03:00
Added Bree case study (#34834)
* Added Bree case study * Added an Admonition * ci: Autofix updates from GitHub workflow * fix closing tag * rss * Replaced links with relative links * prettify * Fixed Bree customer logos * Fixed a typo in Bree company description --------- Co-authored-by: pamelachia <26612111+pamelachia@users.noreply.github.com> Co-authored-by: Pamela Chia <pamelachiamayyee@gmail.com> Co-authored-by: Francesco Sansalvadore <f.sansalvadore@gmail.com>
This commit is contained in:
9 files changed
+193
-8
No files matched your search
@@ -0,0 +1,127 @@
|
||||
---
|
||||
name: Bree
|
||||
title: "Bree's Migration to Supabase from Fauna"
|
||||
# Use meta_title to add a custom meta title. Otherwise it defaults to '{name} | Supabase Customer Stories':
|
||||
# meta_title:
|
||||
description: Bree found 10X performance gains, greater developer velocity, and a better foundation for AI when switching to Supabase.
|
||||
# Use meta_description to add a custom meta description. Otherwise it defaults to {description}:
|
||||
meta_description: Discover how Bree found 10X performance gains, developer velocity, and a better foundation for AI when switching to Supabase.
|
||||
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/bree.png
|
||||
logo_inverse: /images/customers/logos/light/bree.png
|
||||
og_image: /images/customers/og/bree.jpg
|
||||
tags:
|
||||
- supabase
|
||||
date: '2025-04-08'
|
||||
company_url: https://www.trybree.com
|
||||
stats: [{ stat: '00,000', label: Example stat }]
|
||||
misc: [{ label: 'Founded', text: 'Canada' }]
|
||||
about: Helping people living paycheck-to-paycheck access better, faster financial products.
|
||||
# "healthcare" | "fintech" | "ecommerce" | "education" | "gaming" | "media" | "real-estate" | "saas" | "social" | "analytics" | "ai" | "developer-tools"
|
||||
industry: ['fintech', 'non-bank financial service']
|
||||
# "startup" | "enterprise" | "indie_dev"
|
||||
company_size: 'startup'
|
||||
# "Asia" | "Europe" | "North America" | "South America" | "Africa" | "Oceania"
|
||||
region: 'North America'
|
||||
# "database" | "auth" | "storage" | "realtime" | "functions" | "vector"
|
||||
supabase_products: ['database', 'auth', 'functions', 'vector']
|
||||
---
|
||||
|
||||
<Quote img="ryan-han-bree.png" caption="Ryan Han, Head of Machine Learning, Bree">
|
||||
We hit scalability limits with Fauna, and Supabase was a step up across the board. The developer
|
||||
experience, ecosystem, support for AI. It’s the complete package.
|
||||
</Quote>
|
||||
|
||||
## Breaking free from the limitations of Fauna
|
||||
|
||||
[Bree](https://www.trybree.com) is a Canadian FinTech startup focused on helping over 20 million Canadians living paycheck to paycheck access better, faster financial products. As the company scaled, it needed to move quickly, experimenting, shipping features, and iterating on user feedback in near real time. But their initial backend stack was holding them back.
|
||||
|
||||
Bree had originally built their infrastructure on Fauna, a NoSQL database with a proprietary query language (FQL). The limitations quickly surfaced.
|
||||
|
||||
<Quote img="ryan-han-bree.png" caption="Ryan Han, Head of Machine Learning, Bree">
|
||||
Fauna’s custom language, FQL, introduced friction in our development process. It took time to
|
||||
learn and made it harder for our team to iterate and ship at the speed we needed.
|
||||
</Quote>
|
||||
|
||||
Engineering velocity suffered. Teams couldn’t iterate on product features without hitting roadblocks, and performance tuning became an ongoing challenge.
|
||||
|
||||
And when Fauna announced its end of life, it only added urgency. Bree needed a replacement quickly, and it had to be developer-friendly, scalable, and suitable for AI-powered product development.
|
||||
|
||||
## Choosing Supabase
|
||||
|
||||
Bree had long been aware of Supabase. Supabase had earned its reputation among builders and indie developers for its ease of use and instant setup. But what sold Bree was how well Supabase aligned with their long-term technical goals.
|
||||
|
||||
<Quote img="ryan-han-bree.png" caption="Ryan Han, Head of Machine Learning, Bree">
|
||||
Builders around the world use Supabase for exciting projects. It is so intuitive that developers
|
||||
can start building immediately and ship production-ready features in a day.
|
||||
</Quote>
|
||||
|
||||
After a thorough evaluation of vendors, Bree chose Supabase for several reasons:
|
||||
|
||||
- A fully managed Postgres foundation gave the team the performance and reliability they wanted without having to learn a new language.
|
||||
- A tightly integrated suite of tools: [Auth](/auth), [Edge Functions](/edge-functions), [Vectors](/modules/vector), and more.
|
||||
- A rich ecosystems of partners and plugins
|
||||
|
||||
<Quote img="ryan-han-bree.png" caption="Ryan Han, Head of Machine Learning, Bree">
|
||||
It’s almost the default database for AI-first development. It’s integrated with Lovable, with V0,
|
||||
and with Cursor—which we use heavily. Supabase just fits.
|
||||
</Quote>
|
||||
|
||||
Performance benchmarks and onboarding experience also played a key role. “Supabase had the best onboarding experience, the best performance benchmarks, and the best developer experience,” said Han.
|
||||
|
||||
Even beyond the product, Bree valued Supabase’s commitment to supporting startups. “Their attitude toward startups like us made the whole package very attractive.”
|
||||
|
||||
## A thoughtful migration strategy with zero downtime
|
||||
|
||||
Migrating from Fauna’s NoSQL architecture to a relational Postgres database required careful coordination. Bree took a phased approach, designed to minimize disruption, avoid downtime, and ensure full data integrity along the way.
|
||||
|
||||
Phase one focused on replicating Fauna’s schemas in Supabase using Postgres `jsonb` columns to accommodate Fauna’s document-style structure. Bree built ETL pipelines and verification scripts to ensure data consistency across both platforms. This dual-write phase ensured every read and write operation was fully synchronized.
|
||||
|
||||
<Admonition>
|
||||
Read our blog post on [migrating from Fauna to Supabase](/blog/migrating-from-fauna-to-supabase).
|
||||
</Admonition>
|
||||
|
||||
One of the primary challenges was handling type mismatches. Bree built conversion scripts to synchronize NoSQL data types with Postgres.
|
||||
|
||||
Once they verified the sync was intact, Bree were able to switch off Fauna and have Supabase as the main primary database.
|
||||
|
||||
Phase two, now underway, is focused on modularizing the data model, splitting large documents into normalized tables. This will allow Bree to take full advantage of Postgres performance and query flexibility.
|
||||
|
||||
## 10X performance gains, developer velocity, and a better foundation for AI
|
||||
|
||||
The results of Bree’s migration to Supabase have been immediate and measurable. Engineers can ship faster, performance is up across the board, and Supabase has become a foundational part of the team’s AI-driven development workflow.
|
||||
|
||||
<Quote img="ryan-han-bree.png" caption="Ryan Han, Head of Machine Learning, Bree">
|
||||
After migrating to Supabase, we saw immediate lift in developer velocity. Engineers can iterate on
|
||||
features much faster by writing Postgres SQL queries.
|
||||
</Quote>
|
||||
|
||||
Latency improvements are notable. Bree has observed double-digit reductions in response times across core functions and expects further gains as their architecture is optimized for Supabase.
|
||||
|
||||
<Quote img="ryan-han-bree.png" caption="Ryan Han, Head of Machine Learning, Bree">
|
||||
It already has double-digit latency improvements. With further optimization, some functions were
|
||||
10x faster.
|
||||
</Quote>
|
||||
|
||||
Supabase has also enhanced Bree’s ability to develop AI-first features. They’re able to use the [Supabase MCP Server](/docs/guides/getting-started/mcp) to power their development in Cursor. As Bree expands its AI initiatives, Supabase’s native support for vector databases and seamless integrations make it the clear choice for long-term scalability.
|
||||
|
||||
## Why Supabase?
|
||||
|
||||
Bree’s journey reflects the reasons developers and fast-moving teams choose Supabase:
|
||||
|
||||
- **Faster time to market** – Supabase eliminates backend friction, enabling teams to build and ship faster
|
||||
- **Integrated suite of tools** – Developers get a complete platform including Postgres, Auth, Edge Functions, Vectors, and more
|
||||
- **AI-native infrastructure** – Supabase supports tools like Cursor and `pgvector` out of the box, making it ideal for AI-powered development
|
||||
- **Built to scale** – With high availability, backups, and a flexible Postgres foundation, Supabase is ready for growth
|
||||
|
||||
<Quote img="ryan-han-bree.png" caption="Ryan Han, Head of Machine Learning, Bree">
|
||||
Supabase puts your mind at ease. It has the best support experience I’ve ever seen. It’s a
|
||||
disruptive technology to bring to any organization. It’s very worth switching to.
|
||||
</Quote>
|
||||
|
||||
## **Ready to build and scale with Supabase?**
|
||||
|
||||
Start your journey today at [www.supabase.com](/)
|
||||
@@ -0,0 +1,41 @@
|
||||
---
|
||||
title: 'Moving from Fauna to Supabase, a Live Tutorial'
|
||||
meta_title: 'Moving from Fauna to Supabase, a Live Tutorial'
|
||||
subtitle: 'A live tutorial that shows you how to move your data and applications to Supabase from Fauna'
|
||||
meta_description: 'A live tutorial that shows you how to move your data and applications to Supabase from Fauna'
|
||||
type: 'webinar'
|
||||
onDemand: true
|
||||
date: '2025-04-08T09:00:00.000-07:00'
|
||||
timezone: 'America/Los_Angeles'
|
||||
duration: '45 mins'
|
||||
company:
|
||||
{
|
||||
name: 'Bree',
|
||||
website_url: 'https://www.trybree.com',
|
||||
logo: '/images/events/webinars/fauna-to-supabase-migration/bree.svg',
|
||||
logo_light: '/images/events/webinars/fauna-to-supabase-migration/bree-light.svg',
|
||||
}
|
||||
categories:
|
||||
- webinar
|
||||
main_cta:
|
||||
{
|
||||
url: 'https://zoom.us/webinar/register/WN_26XTfO35SAC81jjS1ulWJw?amp_device_id=1bd3c92f-c97a-45ad-8aab-a508f950b536',
|
||||
target: '_blank',
|
||||
label: 'Register now',
|
||||
}
|
||||
speakers: 'caruso,ryanxjhan'
|
||||
---
|
||||
|
||||
## Keep Your Fauna Applications by Migrating to Supabase
|
||||
|
||||
The deadline to move off Fauna is approaching fast. In this 45-minute session, you'll learn how to move your data to Supabase, modify your FQL queries for SQL, and optimize your deployment. Bree has navigated this transition from Fauna to Supabase already and will be on hand to provide advice and best practices. This is a hands-on demonstration and will include plenty of time for Q&A.
|
||||
|
||||
### Agenda
|
||||
|
||||
- Concepts in Supabase and how they map to concepts in Fauna
|
||||
- Using Postgres as a document store with JSONB
|
||||
- Migrating your data
|
||||
- Building queries using PostgREST and GraphQL
|
||||
- Q&A
|
||||
|
||||
Join us live to participate in the Q&A afterwards. Can’t make it to the event? Don’t worry, we'll send you a link to the recording.
|
||||
@@ -18,6 +18,17 @@ export type CustomerStoryType = {
|
||||
}
|
||||
|
||||
export const data: CustomerStoryType[] = [
|
||||
{
|
||||
type: 'Customer Story',
|
||||
title: "Bree's Migration to Supabase from Fauna",
|
||||
description:
|
||||
'Discover how Bree found 10X performance gains, greater developer velocity, and a better foundation for AI when switching to Supabase.',
|
||||
organization: 'Bree',
|
||||
imgUrl: 'images/customers/logos/bree.png',
|
||||
logo: '/images/customers/logos/bree.png',
|
||||
logo_inverse: '/images/customers/logos/light/bree.png',
|
||||
url: '/customers/bree',
|
||||
},
|
||||
{
|
||||
type: 'Customer Story',
|
||||
title: 'Deriv: Accelerating Online Trading with a Scalable Postgres Backend',
|
||||
|
||||
@@ -5,9 +5,16 @@
|
||||
<link>https://supabase.com</link>
|
||||
<description>Latest news from Supabase</description>
|
||||
<language>en</language>
|
||||
<lastBuildDate>Sat, 08 Mar 2025 00:00:00 -0700</lastBuildDate>
|
||||
<lastBuildDate>Tue, 08 Apr 2025 00:00:00 -0700</lastBuildDate>
|
||||
<atom:link href="https://supabase.com/rss.xml" rel="self" type="application/rss+xml"/>
|
||||
<item>
|
||||
<guid>https://supabase.com/customers/bree</guid>
|
||||
<title>Bree's Migration to Supabase from Fauna</title>
|
||||
<link>https://supabase.com/customers/bree</link>
|
||||
<description>Bree found 10X performance gains, greater developer velocity, and a better foundation for AI when switching to Supabase.</description>
|
||||
<pubDate>Tue, 08 Apr 2025 00:00:00 -0700</pubDate>
|
||||
</item>
|
||||
<item>
|
||||
<guid>https://supabase.com/customers/quilia</guid>
|
||||
<title>Quilia Saves 75% in Development Time with Supabase’s Data API and RLS Features</title>
|
||||
<link>https://supabase.com/customers/quilia</link>
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 271 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 18 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
@@ -1,4 +1,3 @@
|
||||
|
||||
@layer base {
|
||||
:root {
|
||||
--sidebar-background: 0 0% 98%;
|
||||
@@ -8,7 +7,7 @@
|
||||
--sidebar-accent: 240 4.8% 95.9%;
|
||||
--sidebar-accent-foreground: 240 5.9% 10%;
|
||||
--sidebar-border: 220 13% 91%;
|
||||
--sidebar-ring: 217.2 91.2% 59.8%
|
||||
--sidebar-ring: 217.2 91.2% 59.8%;
|
||||
}
|
||||
.dark {
|
||||
--sidebar-background: 240 5.9% 10%;
|
||||
@@ -18,7 +17,7 @@
|
||||
--sidebar-accent: 240 3.7% 15.9%;
|
||||
--sidebar-accent-foreground: 240 4.8% 95.9%;
|
||||
--sidebar-border: 240 3.7% 15.9%;
|
||||
--sidebar-ring: 217.2 91.2% 59.8%
|
||||
--sidebar-ring: 217.2 91.2% 59.8%;
|
||||
}
|
||||
}
|
||||
@layer base {
|
||||
@@ -28,4 +27,4 @@
|
||||
body {
|
||||
@apply bg-background text-foreground;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
import * as React from "react"
|
||||
import * as React from 'react'
|
||||
|
||||
const MOBILE_BREAKPOINT = 768
|
||||
|
||||
@@ -10,9 +10,9 @@ export function useIsMobile() {
|
||||
const onChange = () => {
|
||||
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)
|
||||
}
|
||||
mql.addEventListener("change", onChange)
|
||||
mql.addEventListener('change', onChange)
|
||||
setIsMobile(window.innerWidth < MOBILE_BREAKPOINT)
|
||||
return () => mql.removeEventListener("change", onChange)
|
||||
return () => mql.removeEventListener('change', onChange)
|
||||
}, [])
|
||||
|
||||
return !!isMobile
|
||||
|
||||
Reference in new issue
Block a user