Skip to content

About

A note-taking web app with authentication, tagging, and search — built to strengthen my understanding of fullstack auth flows and database security using Next.js and Supabase.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

Field Notes

A note-taking web app with authentication, tagging, and search — built to strengthen my understanding of fullstack auth flows and database security using Next.js and Supabase. Written by Joel Odum.

Why I Built This

I wanted a project that went beyond basic CRUD and actually forced me to understand how authentication and authorization work end to end — not just "add a login form," but how a database enforces who can see what data, even if someone tries to bypass the frontend entirely. This project uses Supabase's Row Level Security (RLS) to make sure every user can only ever access their own notes, at the database level, not just in the UI. Building it also gave me hands-on practice debugging real permission and auth issues (RLS policies, Postgres grants, email confirmation flows) rather than just reading about them.

Live Demo

🔗 field-notes.vercel.app

Features

  • Email/password authentication (sign up, log in, log out)
  • Create, edit, and delete personal notes
  • Tag notes and filter by tag
  • Search notes by title or content
  • Row Level Security ensures users can only ever access their own notes
  • Custom "ink and paper" visual design — masonry note grid, torn-paper card edges, serif display type

Tech Stack

Running Locally

  1. Clone the repo:

    git clone https://github.com/joelgreyhat1/note-manager.git
    cd note-manager
  2. Install dependencies:

    npm install
  3. Create a .env.local file in the root directory with your Supabase credentials:

    NEXT_PUBLIC_SUPABASE_URL=your_supabase_project_url
    NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
    
  4. Run the development server:

    npm run dev
  5. Open http://localhost:3000 in your browser.

What I Learned

  • How Row Level Security policies work in Postgres, and why table-level grants and RLS are two separate layers of access control
  • How to structure a Next.js App Router project with separate client/server Supabase clients
  • Debugging real permission errors (like 42501: permission denied) instead of just following a tutorial
  • Designing a UI with actual visual intention rather than defaulting to generic component styling

License

MIT

About

A note-taking web app with authentication, tagging, and search — built to strengthen my understanding of fullstack auth flows and database security using Next.js and Supabase.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages