{"id":31424881,"url":"https://github.com/codingwcal/notes-app","last_synced_at":"2026-04-11T01:20:10.274Z","repository":{"id":314709728,"uuid":"1056479882","full_name":"CodingWCal/notes-app","owner":"CodingWCal","description":"A lightweight notes app built with Next.js 14 \u0026 Supabase—CRUD, pin/unpin, color categories, search, optimistic updates, and a polished Tailwind/shadcn UI.","archived":false,"fork":false,"pushed_at":"2025-09-14T08:21:24.000Z","size":109,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-09-14T09:30:18.827Z","etag":null,"topics":["nextjs","postgresql","productivity","reacthooks","shadcn-ui","supabase","tailwindcss","typescript","vercel"],"latest_commit_sha":null,"homepage":"https://notes-app-eight-brown.vercel.app/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CodingWCal.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-14T07:17:14.000Z","updated_at":"2025-09-14T08:21:27.000Z","dependencies_parsed_at":"2025-09-14T09:30:24.052Z","dependency_job_id":"89f81375-c58e-462a-9828-af657c9a77ca","html_url":"https://github.com/CodingWCal/notes-app","commit_stats":null,"previous_names":["codingwcal/notes-app"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/CodingWCal/notes-app","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodingWCal%2Fnotes-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodingWCal%2Fnotes-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodingWCal%2Fnotes-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodingWCal%2Fnotes-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CodingWCal","download_url":"https://codeload.github.com/CodingWCal/notes-app/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CodingWCal%2Fnotes-app/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":277627644,"owners_count":25849921,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-30T02:00:09.208Z","response_time":75,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["nextjs","postgresql","productivity","reacthooks","shadcn-ui","supabase","tailwindcss","typescript","vercel"],"created_at":"2025-09-30T04:07:55.347Z","updated_at":"2025-09-30T04:07:59.846Z","avatar_url":"https://github.com/CodingWCal.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📝 Notes App\n\nA modern, responsive note-taking application built with Next.js and Supabase modeled after Google Keep.\n\n[![Live on Vercel](https://img.shields.io/badge/Live-Vercel-success)](https://notes-app-eight-brown.vercel.app/)\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/CodingWCal/notes-app/blob/main/Screenshot%202025-09-14%20120519.png\" width=\"650\" alt=\"Notes App Home\"/\u003e\n  \u003cbr/\u003e\u003cem\u003eNotes Page with Pins\u003c/em\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/CodingWCal/notes-app/blob/main/Screenshot%202025-09-14%20120612.png\" width=\"650\" alt=\"Edit Note\"/\u003e\n  \u003cbr/\u003e\u003cem\u003eEdit Notes Page\u003c/em\u003e\n\u003c/p\u003e\n\n## 🛠 Tech Stack\n- **Frontend**: Next.js 14, TypeScript\n- **Styling**: Tailwind CSS, shadcn/ui\n- **Backend**: Supabase (PostgreSQL)\n- **State Management**: React Hooks\n- **Deployment**: Vercel\n\nUsed Cursor as a pair-programmer for refactors and multi-file edits; all logic and integrations were implemented, reviewed, and tested by me. Initial UI was drafted with V0, then customized.\n\n## ✨ Features\n\n### Core Functionality\n- Create, read, update, delete notes\n- Pin/unpin notes\n- Color-code notes (6 color options)\n- Search across note titles and content\n- Responsive design\n\n### UI/UX\n- Modern, clean interface\n- Card-based note layout\n- Hover interactions\n- Toast notifications\n- Mobile-friendly\n\n## 📂 Project Structure\n```\nnotes-app/\n├── app/               # Next.js app router\n├── components/        # React components\n│   ├── ui/            # Shadcn UI components\n│   └── ...            # Custom components\n├── hooks/             # Custom React hooks\n├── lib/               # Utility functions, Supabase client\n├── public/            # Static assets\n└── styles/            # Global styles\n```\n\n## 🎯 Acceptance Criteria\n- [x] Real-time data persistence\n- [x] Optimistic UI updates\n- [x] Error handling\n- [x] Type-safe development\n- [x] Accessible design\n- [x] Performance optimized\n\n## 📝 Getting Started\n1. Clone the repository\n2. Install dependencies\n3. Set up Supabase project\n4. Configure environment variables\n5. Run `npm run dev`\n\n## 🚀 Quick Start\n\n### Setup\n\n### 1. Install dependencies\n```bash\n npm install\n```\n### 2. Environment\nCreate .env.local with Supabase credentials\n```bash\nNEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url\nNEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key\n```\n\n### Development\nRun local development server\n```bash\nnpm run dev\n```\n### Scripts\n```bash\nnpm run dev     (start dev server)\nnpm run build   (production build)\nnpm run start   (run production build locally)\n```\n\n## 🔧 Troubleshooting\n- 400 Bad Request on insert/update\n    Make sure your Supabase table has all columns used by the app (color, pinned, etc.). The payload must match column names.\n\n- “Could not find the 'color' column”\n    Add the color text column (default 'default'), then redeploy/rerun.\n\n- Cannot update/delete (RLS errors)\n    In dev, use permissive policies (allow all). In prod, write proper auth-based policies.\n\n- Pinned notes don’t move\n    Ensure the client sorts: pinned first, then created_at desc. (This repo’s page.tsx already does it.)\n\n### Deploy on Vercel\n1. Connect repository to Vercel\n2. Add environment variables:\n   - `NEXT_PUBLIC_SUPABASE_URL`\n   - `NEXT_PUBLIC_SUPABASE_ANON_KEY`\n\n## 🤝 Contributing\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## 📝 License: MIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodingwcal%2Fnotes-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodingwcal%2Fnotes-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodingwcal%2Fnotes-app/lists"}