LighterPack helps you track the gear you bring on adventures.
- Framework: Nuxt 4 (Vue 3, Nitro server, Vite)
- State: Pinia
- Database: sqlite
- Node.js and npm
-
Clone the repo:
git clone https://github.com/galenmaly/lighterpack.git cd lighterpack -
Install dependencies:
npm install
-
Start the app in development mode:
npm run dev
npm run dev # Start dev server with hot reload (Nuxt on :3000)
npm run start # Production build + start server
npm run build # Nuxt production build only
npm run lint:js # ESLint with auto-fix (.js and .vue files)
npm run lint:css # Stylelint with auto-fix (.scss and .vue files)
npm run test:unit # Run Vitest unit tests
npm run test:unit:watch # Run Vitest in watch mode
npm run test:server # Run server-side integration tests
npm run typecheck # TypeScript type check (no emit)Server-side integration tests use Vitest with an in-memory SQLite database to test API handler authorization and logic directly.
E2E tests use Playwright and run against Chromium and Firefox.
Install Playwright browsers (only needed once):
npx playwright installnpx playwright test # Run all E2E tests
npx playwright test test/e2e/auth.spec.ts # Run a single test file
npx playwright test --project=chromium # Run tests in one browser only
npx playwright test --update-snapshots # Regenerate screenshot baselinesPlaywright automatically starts the app server before running tests (via npm run start).
- Register new domain name
- Update branding to use new domain name
- Create a simple logo and add it to the branding
- Deploy to VPS
- Replace email provider (Mailgun)
- Add database backup strategy — automated backups for the SQLite file
- Create
.env.exampleand deployment documentation (required env vars, secrets management, database setup)
- Add Open Graph and Twitter Card meta tags to share pages (
/r/[id]) so shared links preview correctly on social media - Accessibility: ARIA labels,
role="dialog"on modals,alttext on images, keyboard navigation for drag-drop, focus trapping in modals, skip links - Update the UX to be responsive
- SEO improvements (sitemap, robots.txt, canonical links, structured data)
- Implement column sorting
- Add additional fields (notes, condition, calories)
- Add a "pantry" section for food
- Markdown export along with CSV