Smart packing lists for every trip.
Packwise is a full-stack web application that helps travelers create intelligent, organized packing lists for any trip. Built with Next.js 14 App Router, Supabase, Prisma, and Tailwind CSS.
- 💻 Dashboard – View and manage all your trips in one place
- ➕ Create Trips – Set up trips with destination, dates, and trip type
- 🤖 Smart Suggestions – AI-powered starter packing list based on trip type
- ✅ Interactive Packing – Check off items as you pack with real-time progress
- 📝 Custom Items – Add your own items to any category
- 📊 Progress Tracking – Visual progress bar showing packing completion
- 🎒 Inventory Management – Keep track of items you own
- 🧳 Luggage Management – Add and manage luggage items and sizes, and assign your items to specific luggages
- 📅 Day Plans – Create daily itineraries for your trips
- 🔒 Auth – Secure login/signup powered by Supabase Auth
- ⚙️ Settings – Customize your experience
| Layer | Technology |
|---|---|
| Framework | Next.js 14 (App Router) |
| Language | TypeScript |
| Database | PostgreSQL (via Supabase) |
| ORM | Prisma |
| Auth | Supabase Auth |
| Styling | Tailwind CSS |
| Deployment | Vercel |
packwise/
├── actions/ # Next.js Server Actions
│ ├── day-plan.actions.ts # Daily itinerary management
│ ├── inventory.actions.ts# User inventory management
│ ├── luggage.actions.ts # User luggage management
│ ├── packing.actions.ts # Item management
│ ├── trip.actions.ts # CRUD for trips
│ ├── user.actions.ts # User account management
│ └── weather.actions.ts # Weather fetching
├── app/ # Next.js App Router pages
│ ├── (auth)/login/ # Authentication page
│ ├── api/ # API Routes
│ ├── auth/callback/ # OAuth callback
│ ├── dashboard/ # User dashboard
│ ├── inventory/ # Inventory management
│ ├── luggage/ # Luggage management
│ ├── settings/ # User settings
│ └── trip/[id]/ # Trip detail page
├── components/ # React components
├── lib/ # Shared utilities
│ ├── supabase/ # Supabase client
│ ├── prisma.ts # Prisma client
│ └── utils.ts # Helper functions
├── prisma/ # Database schema & migrations
├── types/ # TypeScript types
└── utils/ # Packing list generators
- Node.js 18+
- A Supabase project
- PostgreSQL database
- Clone the repository
git clone https://github.com/mvng/packwise.git
cd packwise- Install dependencies
npm install- Set up environment variables
Copy .env.example to .env.local and fill in your values:
cp .env.example .env.localRequired variables:
DATABASE_URL=your_postgresql_connection_string
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
- Set up the database
npx prisma db push- Run the development server
npm run devOpen http://localhost:3000 to view the app.
Deploy to Vercel with one click:
Make sure to set all environment variables in your Vercel project settings.
MIT