This inventory management web app combines authentication, collaborative list management, and real-time synchronization into one responsive interface. It allows users to create personal or shared item collections with role-based access control, image uploads, and live updates—making it easy for individuals or teams to track and manage inventory together.

Key Features

  • Collaborative Lists with Role-Based Permissions
    Users can create shared lists and invite others via email. Each member is assigned a role—owner, editor, or viewer—controlling what actions they can take. Owners can manage membership and update roles at any time.
  • Item Management with Image Support
    Items support optional extra details and image attachments. Users can upload, preview, replace, or remove images, with signed URLs generated server-side for secure access through Supabase Storage.
  • Real-Time Synchronization
    Changes to items, list memberships, and invitations are reflected instantly across all active sessions using Supabase Realtime, so collaborators always see up-to-date information without refreshing.
  • Invite Flow and Membership Management
    List owners can invite other users by email. Recipients receive a pending invite they can accept or decline, and owners retain full control over the member list throughout the list's lifecycle.
  • Persistent UI State
    Selected lists, active filters, and sort preferences are persisted to session storage, so users return to exactly where they left off between page visits.

Technology Overview

  • Framework: Built with Next.js (App Router) and React 19, using server components and client-side hooks for a clean separation between data access and interactive UI.
  • Database & Auth: Powered by Supabase, providing Postgres for structured data, Row-Level Security for access control, Auth for email/password and Google OAuth, and Storage for item images.
  • Real-Time Updates: Supabase Realtime subscriptions push live changes for items, invites, and memberships directly to connected clients without polling.
  • Styling & UI: Tailwind CSS 4 with Radix UI primitives for accessible, composable components and a responsive layout across desktop and mobile.