This starter is designed to help you get up and running with Gel and Next.js quickly. It includes a basic Gel 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
- Gel 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
├── gel.toml
├── eslint.config.js
├── next-env.d.ts
├── next.config.js
├── package.json
├── pnpm-lock.yaml
├── postcss.config.js
├── tailwind.config.ts
└── tsconfig.jsonDirectory structure:
app/- Next.js pages and componentspublic/- static assetscomponents/- React componentssrc/- utility functionsdbschema/- Gel schema and migrationsgel.toml- Gel configurationgel.ts- Gel 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/geldata/nextjs-gel-basic-template.git
cd nextjs-gel-basic-template
pnpm iYou can also click the "Use this template" button to create a new repository based on this template.
You can just use npx gel, it would do the right thing
to automatically install and run Gel CLI for you.
This README will use npx gel <command> style, but if you have
the CLI installed you can use it directly, like this: gel <command>.
However, you can install the CLI manually
curl --proto '=https' --tlsv1.2 -sSf https://sh.geldata.com | shFor more installation options, see the Gel installation guide.
To run this project, you need to initialize a new Gel project. Run the following command:
npx gel project initThis template includes a script to generate TypeScript types from the Gel schema. Run the following command:
pnpm generate:allpnpm devFollow the instructions in the terminal to open the app in your browser.
To view the database in the Gel UI run:
npx gel uiOpen the dbschema/default.gel 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 Gel and Next.js:
- Generative UI with Vercel AI SDK and Gel
- Stop building auth, start building apps with Gel and Next.js
- Building a simple blog application with Gel and Next.js
- Integrating Gel 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 Gel documentation to learn more about Gel and Gel Auth.
Follow the deployment instructions in the Gel documentation to deploy your Next.js app to Gel Cloud and Vercel.
Or