all core functionality, out of the box
polished, end-to-end features needed in every saas
uses auth.js with support for passwordless, OAuth, and annonymous auth.
built with

Supabase Authentication
your users will be able to create teams, invite OTHERS to join their team, and set admin permissions. We rely on RLS to control access to data.
built with

Supabase Database
workflows and designs for the standard transactional emails for SaaS products.
built with

react email
easily up subscriptions with multiple tiers or one-off purchases.
built with

Stripe
grow and engage your customers
elegant landing page with content and analytics to supplement
polished, flexible marketing page with smooth Framer animations.
built with

Framer Motion
publish blog content with full formatting control via MDX.
built with

Contentlayer

MDX
keep users updated and engaged with your latest product releases.
built with

Contentlayer

MDX
centralize and share useful knowledge for anyone using your product.
built with

Contentlayer

MDX
production-tested code
extensible, well-documented components and architecture.
import { createServerComponentClient } from "@supabase/auth-helpers-nextjs";
import { cookies } from "next/headers";
import { redirect } from "next/navigation";
interface AuthLayoutProps {
children: React.ReactNode;
}
export default async function AuthLayout({ children }: AuthLayoutProps) {
const supabase = createServerComponentClient({
cookies,
});
const {
data: { user },
} = await supabase.auth.getUser();
if (user) {
// get the team IDs the user is a member of
const { data: membershipsData, error: membershipsError } = await supabase
.from("members")
.select("team_id")
.eq("user_id", user.id);
if (membershipsError) {
console.error("Error fetching user team memberships:", membershipsError);
return;
}
// Extract the team IDs from the result
const teamIds = membershipsData.map((membership) => membership.team_id);
return redirect(`/${teamIds[0]}`);
}
return <div className="h-screen">{children}</div>;
}
built with

Next.js (App Router)

Supabase
pay once. unlimited use. forever.
a license includes all future updates.
suparepo
production-ready saas starter kit
pay once, use forever
- authentication
- payments
- org management
- transactional emails
- landing page
- docs
- blog
- changelog
- future updates
faq
to help you decide if suparepo is a good fit
1. If you're shipping end-to-end production SaaS apps and want to save time building boilerplate features. 2. If you're curious to learn how to set up auth, team management, billing, and transactional email for SaaS apps. 3. If you're looking to use Next.js App Router and Supabase end to end (e.g. auth, database, rls, etc.)
If you're only interested in the components, check out ui.shadcn.com for a fantastic and free library. We included multiple components from there. If you're only interested in auth, trpc, and prisma - check out create.t3.gg. If you want to just use Postgres and bring in your own auth (e.g. Clerky), then check out Scalerepo instead.
The stack includes next.js app router, supabase, tailwind + radix (via shadcn/ui), stripe, react email, contentlayer, mdx, framer motion, and posthog.
The UI can be easily swapped out. But the core functionality (auth, team management, billing, and emails) are all built on top of Supabase. If you want to just use Postgres, check out Scalerepo instead.
© 2023 Roadtrip