• Stars
    star
    1,078
  • Rank 42,909 (Top 0.9 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created over 1 year ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Acme Corp

Warning
This is a work-in-progress and not the finished product.

Feel free to leave feature suggestions but please don't open issues for bugs or support requests just yet.

About

This project features the next-generation stack for building fullstack application. It's structured as a monorepo with a shared API using tRPC. Built on the new app router in Next.js 13 with React Server Components.

  • For database querying, Kysely is used as a query builder whilst remaining Prisma as a schema management tool. (This means it's fully edge-ready!). To keep a good DX, we use a custom setup with kysely-prisma-generator to pull out all the prisma types, and then a post-generate script to create a fully typesafe db client using database.js from PlanetScale.
  • This project uses Clerk as it's authentication provider.
  • Awesome UI components from shadcn/ui

Installation

There are two ways of initializing an app using the acme-corp starter. You can either use this repository as a template:

use-as-template

or use Turbo's CLI to init your project:

npx create-turbo@latest -e https://github.com/juliusmarminge/acme-corp

Quick Start

Note
The db package is preconfigured to use PlanetScale and is edge-ready with the database.js driver. If you're using something else, make the necesary modifications to the Kysely client.

To get it running, follow the steps below:

1. Setup dependencies

# Install dependencies
pnpm i

# Configure environment variables
# There is an `.env.example` in the root directory you can use for reference
cp .env.example .env.local

# Push the Prisma schema to the database
pnpm db:push

2. Configure Expo dev-script

Warning
The Expo app is still stock from create-t3-turbo and haven't yet gotten any attention.

We will get their in due time!

Use iOS Simulator

  1. Make sure you have XCode and XCommand Line Tools installed as shown on expo docs.

    NOTE: If you just installed XCode, or if you have updated it, you need to open the simulator manually once. Run npx expo start in the root dir, and then enter I to launch Expo Go. After the manual launch, you can run pnpm dev in the root directory.

    +  "dev": "expo start --ios",
  2. Run pnpm dev at the project root folder.

Use Android Emulator

  1. Install Android Studio tools as shown on expo docs.

  2. Change the dev script at apps/expo/package.json to open the Android emulator.

    +  "dev": "expo start --android",
  3. Run pnpm dev at the project root folder.

TIP: It might be easier to run each app in separate terminal windows so you get the logs from each app separately. This is also required if you want your terminals to be interactive, e.g. to access the Expo QR code. You can run pnpm --filter expo dev and pnpm --filter nextjs dev to run each app in a separate terminal window.

3. When it's time to add a new package

To add a new package, simply run pnpm turbo gen init in the monorepo root. This will prompt you for a package name as well as if you want to install any dependencies to the new package (of course you can also do this yourself later).

The generator sets up the package.json, tsconfig.json and a index.ts, as well as configures all the necessary configurations for tooling around your package such as formatting, linting and typechecking. When the package is created, you're ready to go build out the package.

References

The stack originates from create-t3-app.

A blog post where I wrote how to migrate a T3 app into this.

Questions?

Book us with Cal.com

More Repositories

1

acme-corp-lib

Monorepo starter for your next TypeScript library!
TypeScript
270
star
2

t3-complete

TypeScript
212
star
3

jumr.dev

Personal website built with Next.js App Router, RSC, Tailwind CSS and Framer Motion
TypeScript
65
star
4

good-defaults

A CLI tool to generate good defaults for your project
TypeScript
64
star
5

trpc-tools

TypeScript
49
star
6

t3-i18n

TypeScript
30
star
7

t3-appdir

TypeScript
22
star
8

t3-app

TypeScript
15
star
9

turbo-expo-next-starter

Starting point for a mono repo
TypeScript
13
star
10

shad-form

TypeScript
13
star
11

kysely-prisma-appdir

TypeScript
12
star
12

t3-twin-turbo

tuuuuuuurbo
TypeScript
10
star
13

stocks

Track all your stock purchases at one place
TypeScript
9
star
14

raycast-tailwind-picker

TypeScript
7
star
15

astro-docs

Astro
5
star
16

create-t3-turbo

TypeScript
5
star
17

trpc-solid

TypeScript
4
star
18

supabase-trpc-appdir

TypeScript
4
star
19

trpc-kitchen-sink

TypeScript
4
star
20

file-upload

TypeScript
3
star
21

ct3a-next13

ct3a with next13 still with pages
TypeScript
3
star
22

fetch-inside-route

TypeScript
3
star
23

nextjs-filter-in-params

TypeScript
3
star
24

pokedex

TypeScript
2
star
25

shadcn-starter

TypeScript
2
star
26

pathfinding-visualizer

A visualizer of different pathfinding algorithms
TypeScript
2
star
27

t3-good-defaults

TypeScript
2
star
28

aoc2022

TypeScript
2
star
29

t3-starters

TypeScript
2
star
30

next-mdx-content

JavaScript
2
star
31

custom-server-repro

TypeScript
2
star
32

nextauth

TypeScript
2
star
33

linktree

TypeScript
2
star
34

time-report

TypeScript
2
star
35

intercepting-routes-repro

repro for intercepting routes crashing without default.tsx
TypeScript
2
star
36

t3-appdir-clerk

TypeScript
2
star
37

next-prefetch-client-component-libs

TypeScript
1
star
38

shad-tsf-validate

TypeScript
1
star
39

hono-vercel

TypeScript
1
star
40

t3-kysely-pg

TypeScript
1
star
41

wc-test

TypeScript
1
star
42

jwt-trpc

TypeScript
1
star
43

env-test

TypeScript
1
star
44

lucide-modularize

CSS
1
star
45

guestbook-demo

TypeScript
1
star
46

list-vs-details-loaders

TypeScript
1
star
47

chess

Online chess game made with NextJS, React, TypeScript
TypeScript
1
star
48

turbo-bad-lint-cache

JavaScript
1
star
49

solid-uploadthing-example

TypeScript
1
star
50

nuxt-trpc-exploration

TypeScript
1
star
51

foo

TypeScript
1
star
52

t3-trpc

TypeScript
1
star
53

t3-env

JavaScript
1
star
54

demo-app

TypeScript
1
star
55

filething-test

TypeScript
1
star
56

dv1663-spotipy

bad music player built in python
TypeScript
1
star