Template
BlogDemosFeaturesArchitecture
Use Template
v2.0 Now Available

The Full-Stack
Monorepo Template

Built with |

Production-ready architecture with Better Auth, Prisma, tRPC, and Next.js. Stop configuring and start shipping your next big idea.

View Live DemosStar on GitHub
apps/web/app/page.tsx
import { auth } from "@template/auth";
import { trpc } from "@template/trpc";

export default async function Page() {
  const session = await auth();
  const data = await trpc.hello.query();

  return (
    

Welcome {session.user.name}

{data.message}

); }

Everything You Need to
Build Modern Apps

A complete toolkit designed for developer experience and performance. Fully typed, fully integrated, fully production-ready.

Type-Safe Everything

End-to-end type safety with tRPC. Catch errors at compile time, not runtime.

Learn more

Modern Authentication

Secure authentication flows with Better Auth. Social logins, email magic links, and more.

Learn more

Real-Time Ready

Built-in support for real-time features using Upstash Redis and Server-Sent Events.

Learn more

Database Power

Prisma ORM configured with PostgreSQL. Visual schema editing and type-safe queries.

Learn more

Monorepo Architecture

Scalable Turborepo structure. Share UI components and logic across apps.

Learn more

Developer Experience

Hot reload, TypeScript, ESLint, Prettier. Everything configured for speed.

Learn more

Interactive Demos

Experience the power of the stack. Try out the live demos below.

Live Chat (Mock)
Local Mode
Bot
Welcome to the chat!
Bot
Try sending a message.
apps/server/src/routers/chat.ts
// Real tRPC implementation
export const chatRouter = {
  list: publicProcedure.query(async () => {
    return prisma.message.findMany({
      orderBy: { createdAt: "asc" },
      include: { sender: true },
    });
  }),

  send: protectedProcedure
    .input(z.object({ content: z.string() }))
    .mutation(async ({ ctx, input }) => {
      return prisma.message.create({
        data: {
          content: input.content,
          senderId: ctx.session.user.id,
        },
      });
    }),
}

Monorepo Architecture

Visualize how the apps and packages connect in this scalable structure.

React Flow
0ms
First Byte
100
Lighthouse Score
< 50kb
Initial Bundle
100%
Type Safety

Start Building in Minutes

Get up and running with a single command. The template comes pre-configured with everything you need.

1

Create a new project using the template

$ bun create-turbo@latest --example https://github.com/kitsunekode/template-nextjs-express-trpc-bettera-auth-monorepo my-app
2

Install all dependencies

$ cd my-app && bun install
3

Preview the scope rename (dry run)

$ bun run rename-scope:dry
4

Rename the package scope to your project name

$ bun run rename-scope
5

Start the development server

$ bun dev
terminal
$bun create-turbo@latest --example https://github.com/kitsunekode/template-nextjs-express-trpc-bettera-auth-monorepo my-app
Cloning into 'my-app'...
Done.

$ cd my-app && bun install
Installing dependencies...
+ 847 packages installed [12.43s]

$ bun run rename-scope:dry
Preview: Renaming @template → @myapp
Found 23 files to update

$ bun run rename-scope
✓ Renamed @template to @myapp across all packages
✓ Updated 23 files

$ bun dev
> turbo run dev
@myapp/web:dev: ready on http://localhost:3000
@myapp/server:dev: Server listening on :8080
@myapp/worker:dev: Worker started
Template

The ultimate starter kit for your next great idea. Built with modern tools for modern developers.

Product

  • Features
  • Pricing
  • Documentation
  • Changelog

Legal

  • Privacy Policy
  • Terms of Service
by KitsuneKode.