A simple blog application built with Next.js, TypeScript, React, and EdgeDB on the backend.
Deploy the example using Vercel:
Execute create-next-app
with npm or Yarn to bootstrap the example:
npx create-next-app --example with-edgedb with-edgedb-app
# or
yarn create next-app --example with-edgedb with-edgedb-app
# or
pnpm create next-app -- --example with-edgedb with-edgedb-app
Then cd
into the created directory.
$ cd with-edgedb-app
Install npm dependencies:
$ npm install
# or
$ yarn
First install the EdgeDB CLI if you haven't already.
# macOS/Linux
$ curl --proto '=https' --tlsv1.2 -sSf https://sh.edgedb.com | sh
# Windows (Powershell)
$ iwr https://ps1.edgedb.com -useb | iex
Initialize the project with the following CLI command:
$ edgedb project init
After you follow the prompts, this command will spin up a local EdgeDB instance and apply all the migrations inside dbschema/migrations
. Now that the project is initialized, all EdgeDB clients initialized inside the project directory will connect to this instance automatically—no need for environment variables or hard-coded configuration. (Read more about projects here.)
This project uses the EdgeQL query builder for TypeScript. This tool can express any EdgeQL query in a code-first way and infers a static return type. Generate it with the following command:
$ npx edgeql-js
The query builder consists of several files that are generated into the dbschema/edgeql-js
directory. Import it like so:
import e from './dbschema/edgeql-js'
$ npx ts-node seed.ts
$ yarn dev
The application should now be running on http://localhost:3000.
POST /api/post
: Create a new post- Body:
{title: string; content: string; authorName: string}
- Body:
PATCH /api/post/:id
: Update a post byid
- Body:
{title?: string; content?: string;}
- Body:
PUT /api/publish/:id
: Publish a post byid
DELETE /api/post/:id
: Delete a post byid
Evolving the application typically requires three steps:
- Update the schema in
dbschema/default.esdl
- Generate a new migration with
edgedb migration create
- Apply the migration with
edgedb migrate
- Regenerate the query builder with
npx edgeql-js
To deploy this application, follow the EdgeDB deployment guides for your preferred cloud provider:
- AWS
- Google Cloud
- Azure
- DigitalOcean
- Fly.io
- Docker (cloud-agnostic)
After setting up your cloud-hosted EdgeDB instance:
- Find your instance's DSN (AKA connection string). The exact instructions for this depend on which cloud you are deploying to.
- Deploy this app to Vercel with the button below. You'll be prompted to provide a value for
EDGEDB_DSN
. - Open the application.
- Check out the EdgeDB docs
- Join the EdgeDB Discord server
- Check out the code on GitHub