This project is a simple Todo App built with Supabase as the backend database. It does not use RLS (Row Level Security), so only the anon key is required for database access.
Demo: https://todo-nextjs-sand.vercel.app/
- Next.js β Frontend framework
- Supabase β Backend database & API
- daisyUI β TailwindCSS Component
- Clone this repository
git clone https://github.com/na-ive/todo-nextjs.git
cd todo-nextjs- Rename .env.example to .env.local
mv .env.example .env.localThen open .env.local and fill it with your own Supabase project credentials:
NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key- Install dependencies
npm install
# or
yarn install- Run the development server
npm run dev- Open http://localhost:3000 with your browser to see the result.
Create a table named todoTabel in the Supabase SQL Editor with the following query:
create table if not exists todoTabel (
id bigint generated by default as identity primary key,
created_at timestamp with time zone default now() not null,
title varchar,
is_completed boolean default false,
metadata jsonb
);The metadata column stores JSON with the following structure:
{
"tags": ["work", "urgent"],
"priority": "high"
}tagsβ array of strings (categories/labels for the todo)priorityβ string (low, medium, high)
- Full CRUD (Create, Read, Update, Delete) for todo items
- Dynamic Search
- Search by
title - Search by
tags - Sort by
priority
- Search by
- Light/Dark theme powered by daisyUI
- Responsive design for mobile, tablet, and desktop