A simple todo app built on Next.js 13 and Tigris using TypeScript client, deployed on Vercel.
https://tigris-nextjs13-starter-kit.vercel.app/
You have two options to run this Next.js 13 app:
All you need is a Github, Vercel and Tigris account(sign up for a free account). Now, Hit "Deploy" and follow instructions to deploy app to your Vercel account
🎉 All done. You should be able to use app on the URL provided by Vercel. Feel free to play around or do a code walkthrough next 🎉
Tigris integration with Vercel will automatically fetch access keys to populate Environment Variables when deploying app.
2. Running Next.js server & Tigris dev environment on your local computer
- Tigris installed on your dev computer
- For macOS:
brew install tigrisdata/tigris/tigris-cli
- Other operating systems: See installation instructions here
- For macOS:
- Node.js version 16+
- Clone this repo on your computer
git clone https://github.com/tigrisdata/tigris-vercel-starter
- Install dependencies
cd tigris-vercel-starter
npm install
- Run the Next.js server
npm run dev
Note: This step will also initialize Tigris collection for app.
🎉 All done. You should be able to use app on localhost:3000
in browser. Feel free to play
around or do a code walk-through next 🎉
📂 File structure
├── package.json
├── lib
│ └── tigris.ts
├── app
│ ├── layout.tsx
│ └── page.tsx
├── db
│ └── models
│ └── todoItems.ts
└── pages
├── index.tsx
└── api
├── item
│ ├── [id].ts
└── items
├── index.ts
└── search.ts
📣 The new `app` directory
/app - Next.js 13 introduces a new app/
directory to be a single place for all your routes
as pages, layouts and much more.
🪢️ Tigris schema definition
db/models/todoItems.ts - The to-do list app has a single collection
todoItems
that stores the to-do items. This Collection gets automatically created/updated by
the setup script.
🌐 Connecting to Tigris
lib/tigris.ts - Loads the environment variables you specified previously in creating a Vercel project section and uses them to configure the Tigris client.
❇️ API routes to access data in Tigris collection
All the Next.js API routes are defined under pages/api/
. We have three files exposing endpoints:
GET /api/items
to get an array of to-do items as ArrayPOST /api/items
to add an item to the list
GET /api/items/search?q=query
to find and return items matching the given query
GET /api/item/{id}
to fetch an itemPUT /api/item/{id}
to update the given itemDELETE /api/item/[id]
to delete an item
In a few steps, we learnt how to bootstrap a Next.js 13 app using Tigris and deploy it on Vercel. Feel free to add more functionalities or customize App for your use-case and learn more about Tigris data platform
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue. Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request