Back to Portfolio

PackWise

AIMobile

AI-powered packing list app that learns what you need

Description

A React Native packing list app that generates activity-aware, duration-scaled item suggestions via OpenAI GPT-3.5-turbo through a Vercel serverless proxy. Uses LLM suggestions to help users create themes replete with categorized items for use across trips. Ships with 12 built-in activity types, fractional quantity math for per-day scaling, and a 3-tier AI fallback chain (API, pattern matching, generic defaults). All data persists locally via AsyncStorage with a custom useStorage hook.

Visual Demo

Key Technical Decisions

useStorage hook over a state management library

The data model is simple enough that a custom hook backed by AsyncStorage is clearer than Redux boilerplate. One hook handles CRUD, import/export with dedup, and first-launch seeding from deterministic IDs.

Vercel serverless over direct OpenAI calls

Keeps the API key out of the mobile bundle entirely. The serverless function also handles GPT's tendency to wrap JSON in markdown code fences and normalizes inconsistent field names in the response.

Two forms of categorization: Themes and categories

Allows users to add cross-category themes while maintaining strict categorization groups

Architecture

React Native app → Vercel serverless (OpenAI GPT-3.5-turbo) → AsyncStorage (local persistence)

Tech Stack

React Native Expo TypeScript GPT 3.5-Turbo Vercel Serverless AsyncStorage Jest Maestro

By the Numbers

12 built-in activity focus types with seed item libraries

3-tier AI fallback (API → pattern matching → generic)

6 Maestro E2E test flows

Fractional quantity math for smart per-day scaling