be586ea3863486a42613ea9ac62d75e4057e1e08
LOADOUT // Travel Manifest & Bag Allocation System
LOADOUT is a tactile, retro-ephemera inspired travel packing manifest and luggage allocation system designed for purposeful travelers. Built with a boarding pass and cargo ticket aesthetic, continuous post-trip debrief learning, and modular bag management ("What goes in what bag").
Key Features
1. Boarding Pass & Retro Ephemera Aesthetic
- Distinctive Swiss Grotesk & Telemetry Monospace: Uses
Bebas Neueuppercase departure board headers,Space Groteskstructural typography, andIBM Plex Monofor flight codes, weights, and timestamps. - Tactile Perforated Stubs: Items are rendered as tear-off baggage coupons with circular notch punchouts and dashed perforation lines.
- Canary Yellow & Gate Orange Accents: High-contrast utilitarian colorway with rubber stamp badges (
[STOWED],[EXCLUDED],[WISHLIST]). - Built-in Tactile Web Audio: Physical paper tear sounds upon checking off items and mechanical stamp thuds when stowing bags or filing debriefs—zero audio file downloads required.
2. Luggage Allocation ("What Goes In What Bag")
- Assign and visualize items across distinct containers:
- 🎒 Personal Item / Daypack: Under-seat essentials (passport, power bank, medications, AirPods, Kindle, cables).
- 🧳 Carry-On Roller: Overhead compartment (clothes packing cubes, 3-1-1 TSA compliant liquids pouch).
- 📦 Checked Luggage: Cargo hold (full-size liquids > 100ml, trekking poles, pocket knives, heavy boots).
- 🧥 Worn on Person: Travel day outfit (heaviest jacket, boots, watch to minimize bag weight).
- Dedicated visual bag overview cards with individual capacity meters and TSA advisory reminders.
- One-click re-allocation to move any item between bags on the fly.
3. Continuous Learning Loop (Post-Trip Debrief)
- At the conclusion of your voyage, launch the Trip Debrief:
- Identify Deadweight (What Should Have Been Excluded): Tap items you packed but never used. The engine remembers this and penalizes or omits them on future matching voyages.
- Log Missing Items (What Should Have Been Included): Record items you wished you had on the road. The engine automatically suggests them when planning future trips of that archetype.
- Flight Log Archive: Inspect accumulated packing wisdom, deadweight statistics, and learned discovery rules anytime.
4. Smart Heuristic Engine & AI Booster
- Deterministic Multiplier Formulas: Calculates clothing requirements dynamically based on days, climate, and mid-trip laundry access (e.g., 7 days with laundry caps duplicate clothing to ~4 days).
- Optional AI Dispatcher: Connect your local Ollama instance running on
vloseror a cloud API key for customized destination recommendations that blend with your personal learned rules. - 100% Offline Capability: Full client-side fallback via
localStorage—works seamlessly in airplane mode or remote backcountry camps.
Self-Hosting with Docker & Traefik on vloser
Loadout is packaged as a lightweight Alpine Node container with persistent JSON storage:
docker compose up -d --build
Compose Configuration (docker-compose.yml)
services:
loadout:
build:
context: .
dockerfile: Dockerfile
container_name: loadout
restart: unless-stopped
volumes:
- /home/chrisf/docker/appdata/loadout/data:/app/data
networks:
- t3_proxy
ports:
- "127.0.0.1:8478:80"
healthcheck:
test: ["CMD-SHELL", "wget --quiet --tries=1 --spider http://127.0.0.1:80/api/health || exit 1"]
interval: 15s
timeout: 5s
retries: 3
start_period: 5s
labels:
- "traefik.enable=true"
- "traefik.http.routers.loadout.rule=Host(`loadout.vloser.us`)"
- "traefik.http.routers.loadout.entrypoints=websecure"
- "traefik.http.routers.loadout.tls.certresolver=letsencrypt"
- "traefik.http.services.loadout.loadbalancer.server.port=80"
networks:
t3_proxy:
external: true
Data is stored persistently in /app/data:
trips.json— All past, active, and upcoming travel manifestsmemory.json— Learned exclusions, inclusions, and debrief statisticssettings.json— Audio preferences and optional AI endpoint configuration
Languages
TypeScript
92.4%
JavaScript
5%
CSS
1.3%
HTML
0.9%
Dockerfile
0.4%