⚙️

how this works

implementation

  • the app uses the next.js app router and can be hosted on replit or vercel
  • the notes and note metadata are stored in replit postgresql using drizzle orm
  • the notes are statically generated and get revalidated when new notes are created or updated
  • the note content is stored in markdown and rendered with react markdown
  • new private notes get stored with a session_id based on local storage
  • users can view, edit, & delete their own private notes and share the link with others to view
  • images are uploaded to replit object storage using presigned urls
  • the swipe gestures to pin/unpin, edit, & delete notes on mobile are implemented with react swipeable
  • the keyboard shortcuts are inspired by vim and the command menu uses shadcn/ui command
  • the og images are generated dynamically with the note's title & emoji

what I changed

this is a fork of alana goyal's notes app with the following modifications:

infrastructure

  • migrated from supabase postgresql to replit's built-in postgresql database
  • replaced supabase storage with replit object storage for image uploads
  • using drizzle orm for type-safe database queries and schema management
  • created new api routes ([/api/notes], [/api/uploads]) with input validation and session-based ownership verification

mobile experience

  • mobile users land on the sidebar (notes list) first, then tap to view individual notes
  • private notes shared by link bypass the sidebar redirect for direct access
  • fixed mobile overflow issues with proper width calculations
  • optimized touch interactions and swipe gestures

ui/ux improvements

  • enabled iOS 26 notes app look
  • macos-style header with traffic light buttons (close/minimize/maximize)
  • collapsible sidebar with a toggle
  • private notes use simple plain text editing (no rich text formatting)

gratitude

  • alana goyal for creating the original open-source notes app that served as the foundation for this project
  • the replit team for providing excellent database and storage infrastructure