A collection of basic create-t3-app templates compatible with Cloudflare Pages - (Next.js App Router + Cloudflare Pages + tRPC + Cloudflare D1 + TursoDB + Drizzle)
This is a collection of basic create-t3-app templates designed for compatibility with Cloudflare Pages. You can use these templates with the Cloudflare C3 CLI and pnpm as the package manager:
[!NOTE] Feel free to open an issue or PR if you have better templates
Live demo at https://ct3a.exectx.run/ (cloudflare pages + next-on-pages)
create-t3-app
with the following options: tRPC, drizzle, no auth, tailwind, SQLite. Then modified to support D1enam
D1 template (no auth) - next steps guide:
[!IMPORTANT] After runing the command, follow the instructions below or in the link above to finish setting up your D1 template
pnpm create cloudflare@latest --template=exectx/t3-cloudflare/templates/d1
Run the following command to create a D1 Database, then update the database_id
in wrangler.toml
. (Cloudflare's D1 guide)
pnpx wrangler d1 create <DATABASE-NAME>
Running drizzle-kit commands for remote databases requires valid cloudflare environment variables (guide)
Once you have updated your wrangler.toml
with the correct database_id
, follow the instructions below.
pnpm db:generate
pnpm d1:migrate:local
pnpm dev # or pnpm preview
pnpm db:generate
pnpm d1:migrate:remote
pnpm dev # or pnpm preview
pnpm db:generate
pnpm db:migrate:local
pnpm dev # or pnpm preview
pnpm db:push:local
pnpm dev # or pnpm preview
pnpm db:generate
pnpm db:migrate
pnpm dev # or pnpm preview
pnpm db:push
pnpm dev # or pnpm preview
To deploy to Cloudflare, you can connect your application via cloudflare dashboard (GitHub integration) or run pnpm deploy
. follow Cloudflare's Next.js guide.
You can run migrations using wrangler d1 migrations ...
, but if you want to use drizzle-kit
instead, you need to configure your environment variables.
cp .dev.vars.example .dev.vars
You can find CLOUDFLARE_ACCOUNT_ID
, CLOUDFLARE_DATABASE_ID
, and CLOUDFLARE_TOKEN
in the Cloudflare dashboard:
CLOUDFLARE_ACCOUNT_ID
, go to Workers & Pages -> Overview -> copy Account ID from the right sidebar.CLOUDFLARE_DATABASE_ID
, open the D1 database you want to connect to and copy the Database ID.CLOUDFLARE_TOKEN
, go to My Profile -> API Tokens and create a token with D1 edit permissions.Now you can run Drizzle-Kit remote commands such as db:push
, db:migrate
, db:studio
, etc.
Turso template (no-auth) - next steps guide:
pnpm create cloudflare@latest --template=exectx/t3-cloudflare/templates/turso
Just tRPC
pnpm create cloudflare@latest --template=exectx/t3-cloudflare/templates/trpc