💰 Expense Reports App
February 06, 2026
By Ted SteinmannExpense Reports App
Overview
An applied R&D project that produced a production-grade expense reporting application while validating multi-agent development workflows against real production constraints. Built entirely client-side with modern web APIs and Cloudflare's edge platform.
Live Application: https://expensereports.app
What I Built
A production expense reporting application designed around a privacy-first, zero-infrastructure model. All data stays on the user's device — no accounts, no cloud storage, no server-side processing. The application handles the full expense reporting workflow: categorizing expenses, attaching receipt images, generating PDF reports, and exporting data.
Key product characteristics:
- Installable PWA — works offline, installable on any device, no app store required
- Zero ongoing cost — no backend servers, databases, or subscriptions to maintain
- Receipt capture — camera integration and image handling via browser-native APIs
- PDF generation — complete expense reports generated client-side
- Data portability — export and import capabilities so users own their data completely
Technical Architecture
Browser-Native, Privacy-First Design
A significant part of this project has been researching and validating modern browser APIs as a viable alternative to traditional backend architectures for private data handling. I spend considerable time with ChatGPT exploring the boundaries of what's possible entirely client-side — evaluating APIs, discussing tradeoffs, and identifying the right approach for each capability before committing to implementation.
The result is an architecture that relies entirely on browser-native capabilities:
- IndexedDB for structured data persistence with full query support
- Service Workers for offline capability, caching, and background sync readiness
- Web Share / File System Access APIs for native-feeling export and sharing
- Client-side PDF generation so reports never touch a server
This approach means the application handles sensitive financial data without ever transmitting it. There are no privacy policies to manage, no data breach surface, and no infrastructure costs that scale with usage.
Edge Deployment
Cloudflare Pages with global edge distribution, integrated directly with GitHub. The application is static assets only — HTML, CSS, and JavaScript — served from the edge with no origin server.
Quality Gates
GitHub Actions runs Playwright end-to-end tests on every commit, validating complete user workflows and blocking deployments that fail critical paths. Passing builds automatically deploy to production.
Agentic Development Workflow
This project is built through a multi-agent orchestration where different AI systems handle different strengths across the product lifecycle:
| Agent | Role | Mode |
|---|---|---|
| ChatGPT | Requirements brainstorming, user story refinement | Mobile, conversational |
| OpenAI Codex | Async implementation from voice prompts | Asynchronous via phone |
| Gemini | Major architectural changes and refactoring | Conductor mode |
| Claude (GitHub Copilot) | Supervised edits, interactive refinement | In-person, VS Code |
| Documentation agents | ADR authoring, release notes | Automated |
| Legal-Policy agent | Policy impact review on PRs | Automated (details) |
The Voice-to-Deploy Loop
The development loop I've validated is remarkably short:
- Prompt — Voice a change to Codex from my phone
- Review — Read the generated code in the PR
- Preview — View the live branch deployment on Cloudflare Pages
- Merge — Approve and merge the PR
- Test — GitHub Actions automatically runs Playwright E2E tests
- Deploy — Passing builds go to production automatically
This means I can ship a real code change — from idea to production — without opening a laptop. The quality gates (E2E tests, preview environments, policy review) provide confidence that asynchronous, agent-driven changes don't degrade the product.
R&D Outcomes
This project validated several development practices with real production constraints:
Multi-Agent Development Patterns
- Agent-per-strength orchestration: Using different AI systems for their strengths (conversational brainstorming, async implementation, architectural reasoning, interactive editing) outperforms relying on a single model for everything
- Requirements co-evolution: Maintaining requirements, ADRs, and code in the same repository reduced translation loss and enabled faster iteration
- Context engineering: Structured documentation — requirements, ADRs, data models — serves as grounding context that enables effective agentic implementation without loss of intent
- Documentation agents: Automated ADR authoring and release note generation keep documentation current without manual overhead
Architecture & Operations Insights
- Zero-infrastructure viability: Browser-native storage and edge deployment eliminated backend costs entirely
- Shift-left testing: CI/CD pipeline with Playwright E2E browser tests prevented production breaks while maintaining rapid deployment velocity
- Ephemeral environments: Preview deployments for every change reduced feedback cycles and enabled async code review from any device
Product Development Discipline
- External constraints as forcing functions: Using external requirements (regulatory, platform) created clear MVP boundaries and prevented scope creep
- Production as testbed: Building real systems (not prototypes) provided authentic constraints for validating agentic development practices
- Continuous learning loop: Frequent deployments with usage pattern analysis informed iteration priorities
Development Context
This application serves as both a functional tool and an R&D testbed for multi-agent development workflows — from upstream requirements discovery through agentic implementation to automated documentation and policy review.
Related projects:
- AI-Assisted Product Development, in Practice — Development methodology and process insights
- Policy and Terms AI Monitor — The legal-policy review agent integrated into this project's PR workflow
Status: Active development | Access: https://expensereports.app
Categories: projects
Tags: technology, product-management, systems