This starter is designed to help you get up and running with EdgeDB and Next.js quickly. It includes a basic EdgeDB schema and a UI to get you started. Below you can find the steps to set up the project and start building your app as well as some ideas for extending it further.
This template includes:
- Next.js for React framework
- EdgeDB for database
- Tailwind CSS for utility-first CSS framework
- ESLint for linting
.
├── README.md
├── app
│ ├── favicon.ico
│ ├── globals.css
│ ├── layout.tsx
│ └── page.tsx
├── components/
├── src/
├── public/
├── dbschema
│ ├── default.esdl
├── edgedb.toml
├── eslint.config.js
├── next-env.d.ts
├── next.config.js
├── package.json
├── pnpm-lock.yaml
├── postcss.config.js
├── tailwind.config.ts
└── tsconfig.json
Directory structure:
app/
- Next.js pages and componentspublic/
- static assetscomponents/
- React componentssrc/
- utility functionsdbschema/
- EdgeDB schema and migrationsedgedb.toml
- EdgeDB configurationedgedb.ts
- EdgeDB clienteslint.config.js
- ESLint configurationnext-env.d.ts
- Next.js typesnext.config.js
- Next.js configurationpackage.json
- npm dependenciespnpm-lock.yaml
- pnpm lockfilepostcss.config.js
- PostCSS configurationtailwind.config.ts
- Tailwind CSS configurationtsconfig.json
- TypeScript configuration
To get started with this template, you need to:
git clone https://github.com/edgedb/nextjs-edgedb-basic-template.git
cd nextjs-edgedb-basic-template
pnpm i
You can also click the "Use this template" button to create a new repository based on this template.
You can just use npx edgedb
, it would do the right thing
to automatically install and run EdgeDB CLI for you.
This README will use npx edgedb <command>
style, but if you have
the CLI installed you can use it directly, like this: edgedb <command>
.
However, you can install the CLI manually
curl --proto '=https' --tlsv1.2 -sSf https://sh.edgedb.com | sh
For more installation options, see the EdgeDB installation guide.
To run this project, you need to initialize a new EdgeDB project. Run the following command:
npx edgedb project init
This template includes a script to generate TypeScript types from the EdgeDB schema. Run the following command:
pnpm generate:all
pnpm dev
Follow the instructions in the terminal to open the app in your browser.
To view the database in the EdgeDB UI run:
npx edgedb ui
Open the dbschema/default.esdl
file and add your own types and
fields. You can start by adding a Post
type with a
title
and content
field. For example:
type Post {
# Add your new fields here:
required title: str;
required content: str;
}
Open the app/page.tsx
file and update the query
to include your new type.
const postsQuery = e.select(e.Post, (_post) => ({
id: true,
title: true,
content: true,
// Add your other fields here
}))
Explore a list of resources to help you get started with EdgeDB and Next.js:
- Generative UI with Vercel AI SDK and EdgeDB
- Stop building auth, start building apps with EdgeDB and Next.js
- Building a simple blog application with EdgeDB and Next.js
- Integrating EdgeDB with tRPC
- The ultimate TypeScript query builder
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can also check out the EdgeDB documentation to learn more about EdgeDB and EdgeDB Auth.
Follow the deployment instructions in the EdgeDB documentation to deploy your Next.js app to EdgeDB Cloud and Vercel.
Or