compatible logos

scalerepo

a production-ready saas starter kit for

nextjs

nextjs

and
planetscale

planetscale

see demo

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

built with tech

Auth.js

your users will be able to create teams, invite OTHERS to join their team, and set admin permissions.

built with

built with tech

Prisma

workflows and designs for the standard transactional emails for SaaS products.

built with

built with tech

react email

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

built with

built with tech

Stripe

grow and engage your customers

elegant landing page with content and analytics to supplement

illustration for /landing-page

polished, flexible marketing page with smooth Framer animations.

built with

built with tech

Framer Motion

illustration for /blog

publish blog content with full formatting control via MDX.

built with

built with tech

Contentlayer

built with tech

MDX

illustration for /changelog

keep users updated and engaged with your latest product releases.

built with

built with tech

Contentlayer

built with tech

MDX

illustration for /docs

centralize and share useful knowledge for anyone using your product.

built with

built with tech

Contentlayer

built with tech

MDX

production-tested code

extensible, well-documented components and architecture.

import { useState } from "react";
import { toast } from "react-hot-toast";
import { Input } from "@/components/design-system/Input";
import { api } from "@/utils/api";
import SettingsLayout from "../layout";
import { createSSG } from "@/utils/ssg";
import type { GetServerSideProps } from "next";
import SettingsCard from "@/components/app/SettingsCard";
import useUser from "@/lib/useUser";

export const getServerSideProps: GetServerSideProps = async (context) => {
  const { req, res } = context;

  const ssg = await createSSG({ req, res });

  await ssg.user.get.prefetch();

  return {
    props: {
      trpcState: ssg.dehydrate(),
    },
  };
};

export default function Profile() {
  const { user } = useUser();
  const utils = api.useContext();
  const updateUserMutation = api.user.update.useMutation({
    onSuccess() {
      utils.invalidate(undefined, { queryKey: api.user.get.getQueryKey() });
      toast.success("Profile updated");
    },
  });
  const [name, setName] = useState(user?.name ?? "");

  if (!user) return null;

  return (
    <SettingsLayout title="Profile" description="Manage your Neorepo profile">
      <SettingsCard
        title="Full name"
        description="Your full name will be displayed on your profile and in your team."
        button={{
          name: "Save",
          onClick: () => updateUserMutation.mutateAsync({ name }),
          loading: updateUserMutation.isLoading,
        }}
      >
        <Input
          value={name}
          onChange={(e) => setName(e.target.value)}
          className="w-96"
        />
      </SettingsCard>
    </SettingsLayout>
  );
}

built with

built with tech

Next.js

built with tech

tailwindcss

built with tech

tRPC

built with tech

Prisma

built with tech

PostHog

pay once. unlimited use. forever.

a license includes all future updates.

scalerepo

production-ready saas starter kit

$99

pay once, use forever

  • authentication
  • payments
  • org management
  • transactional emails
  • landing page
  • docs
  • blog
  • changelog
  • future updates

faq

to help you decide if scalerepo 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.

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.

The stack includes next.js, planetscale, prisma, tailwind, auth.js, stripe, react email, contentlayer, mdx, framer motion, and posthog.

It's very easy to swap out PlanetScale for any other Postgres or MySQL B(e.g. Supabase).