A modern, AI-powered note-taking application that helps you create, organize, and understand your notes better.
Your digital notebook, enhanced with intelligence.
Goat Notes is a full-stack note-taking application built with Next.js 16, TypeScript, and Supabase. It combines a beautiful, responsive UI with powerful AI capabilities to help you manage your notes more effectively.
The standout feature is the AI-powered chat assistant that can answer questions about your notes, helping you quickly find information and gain insights from your stored content.
- Create Notes β Instantly create new notes with a single click
- Auto-Save β Notes are automatically saved as you type (debounced updates)
- Delete Notes β Remove notes with a confirmation dialog to prevent accidents
- Note Organization β All notes are organized in a collapsible sidebar
- Ask AI About Your Notes β Chat with an AI that has context of all your notes
- Conversational Interface β Multi-turn conversations with memory
- Smart Responses β Get formatted HTML responses with proper structure
- Powered by GPT-4o-mini β Fast and intelligent responses
- Secure Sign-Up/Login β Email and password authentication via Supabase
- Protected Routes β Middleware protection for authenticated routes
- Session Management β Persistent sessions with automatic refresh
- Dark/Light Mode β Toggle between themes or follow system preference
- Responsive Design β Works seamlessly on desktop, tablet, and mobile
- Radix UI Components β Accessible, high-quality UI primitives
- Tailwind CSS β Utility-first styling with custom design system
- Toast Notifications β User-friendly feedback for all actions
- Next.js App Router β Latest Next.js features with server components
- Turbopack β Lightning-fast development builds
- Optimistic Updates β Instant UI feedback
- Edge-Ready Middleware β Fast authentication checks
| Category | Technology |
|---|---|
| Framework | Next.js 16 (App Router) |
| Language | TypeScript |
| Styling | Tailwind CSS v4 |
| UI Components | Radix UI, shadcn/ui |
| Database | PostgreSQL (Supabase) |
| ORM | Prisma |
| Authentication | Supabase Auth |
| AI | OpenAI GPT-4o-mini |
| State Management | React Context + Hooks |
| Deployment | Vercel |
Get started in 3 simple steps:
# Clone the repository
git clone https://github.com/ksamrat224/Note-Taker.git
cd Note-Taker
# Install dependencies
npm install
# Start development server
npm run dev- Node.js 18+ and npm
- Git
- Supabase account (free tier works)
- OpenAI API key
-
Clone the repository
git clone https://github.com/ksamrat224/Note-Taker.git cd Note-Taker -
Install dependencies
npm install
-
Set up environment variables
Create a
.env.localfile in the root directory:# Database (Supabase PostgreSQL) DATABASE_URL=postgresql://postgres.[project-ref]:[password]@aws-0-[region].pooler.supabase.com:6543/postgres?pgbouncer=true # Supabase Auth SUPABASE_URL=https://[project-ref].supabase.co SUPABASE_ANON_KEY=your_supabase_anon_key # OpenAI OPENAI_API_KEY=sk-your_openai_api_key # App URL NEXT_PUBLIC_BASE_URL=http://localhost:3000
-
Set up the database
npx prisma generate npx prisma migrate dev
-
Start the development server
npm run dev
-
Open your browser
Visit http://localhost:3000
Create a new note by filling out the form and clicking "Save". View the details of a note by clicking on it in the list.
The AI will automatically generate a description for each note after it is saved. This description will be displayed in the note detail view.
Create a .env file in the root directory:
NODE_ENV=development
PORT=3000
# Add your AI API key here (if applicable)
AI_API_KEY=your_api_key_hereNote-Taker/
βββ π src/
β βββ π actions/ # Server actions (notes, user)
β βββ π app/ # Next.js App Router pages
β β βββ π api/ # API routes
β β βββ π login/ # Login page
β β βββ π sign-up/ # Sign-up page
β βββ π auth/ # Supabase auth utilities
β βββ π components/ # React components
β β βββ π ui/ # shadcn/ui components
β βββ π db/ # Prisma schema & client
β βββ π hooks/ # Custom React hooks
β βββ π lib/ # Utility functions
β βββ π openai/ # OpenAI client setup
β βββ π providers/ # React context providers
β βββ π styles/ # Global CSS styles
β βββ π middleware.ts # Auth middleware
βββ π public/ # Static assets & images
βββ π .env.example # Example environment variables
βββ π package.json # Project dependencies
βββ π tailwind.config.ts # Tailwind configuration
βββ π README.md # Project documentation
| Command | Description |
|---|---|
npm run dev |
Start development server with Turbopack |
npm run build |
Build for production |
npm run start |
Start production server |
npm run lint |
Run ESLint |
npm run migrate |
Generate Prisma client and run migrations |
Contributions are welcome! Here's how you can help:
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Commit your changes
git commit -m "Add amazing feature" - Push to your branch
git push origin feature/amazing-feature
- Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Next.js β The React framework for production
- Supabase β Open source Firebase alternative
- Prisma β Next-generation ORM
- OpenAI β AI that powers our assistant
- shadcn/ui β Beautiful UI components
- Radix UI β Accessible component primitives
- Tailwind CSS β Utility-first CSS framework
Made with β€οΈ by Samrat Karki
β Star this repo if you find it helpful!



