A progressive web app to track what you need to pack for trips. Add items when you forget something, and over time build the perfect packing list.
- Google Sign-In authentication
- User-defined categories and trip types
- Filter items by trip type (non-matching items are grayed out)
- Share read-only view with travel companions
- PWA - installable on mobile home screen
- Dark mode support
- Real-time sync across devices via Firebase
- Go to Firebase Console
- Create a new project (or use existing)
- Enable Authentication → Sign-in method → Google
- Enable Firestore Database in production mode
- Add your domain to authorized domains (Settings → Authorized domains)
- In Firebase Console, go to Project Settings → Your apps → Add web app
- Copy the config values
- Create
.envfile from the example:
cp .env.example .env- Fill in your Firebase config values in
.env
In Firebase Console → Firestore → Rules, paste the contents of firestore.rules
npm install
npm run devnpm run buildPush the contents of dist/ to your GitHub Pages branch, or configure GitHub Actions:
# .github/workflows/deploy.yml
name: Deploy to GitHub Pages
on:
push:
branches: [main]
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
- run: npm ci
- run: npm run build
env:
VITE_FIREBASE_API_KEY: ${{ secrets.VITE_FIREBASE_API_KEY }}
VITE_FIREBASE_AUTH_DOMAIN: ${{ secrets.VITE_FIREBASE_AUTH_DOMAIN }}
VITE_FIREBASE_PROJECT_ID: ${{ secrets.VITE_FIREBASE_PROJECT_ID }}
VITE_FIREBASE_STORAGE_BUCKET: ${{ secrets.VITE_FIREBASE_STORAGE_BUCKET }}
VITE_FIREBASE_MESSAGING_SENDER_ID: ${{ secrets.VITE_FIREBASE_MESSAGING_SENDER_ID }}
VITE_FIREBASE_APP_ID: ${{ secrets.VITE_FIREBASE_APP_ID }}
- uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./distAdd your Firebase config values as repository secrets in GitHub.
Replace public/icon.svg with your own icon. You can generate PNG icons at various sizes using tools like:
- Sign in with Google
- Go to Settings to customize your categories and trip types
- Add items to your list, optionally tagging them with trip types
- When packing for a trip, filter by trip type to see relevant items
- Check off items as you pack
- Click "Reset All" when starting a new trip
- Share a read-only link with travel companions if needed