Back to portfolio
Software · Personal project · 2026
Pulse
A self-hosted nutrition and progress tracker with a SwiftUI app, a FastAPI server, and an MCP endpoint so Claude or ChatGPT can log meals.
Overview
Pulse is a self-hosted tracker for food, weight, and progress photos. A SwiftUI iOS app and a web gallery talk to one FastAPI and Postgres server. The same server exposes its features as MCP tools, so an assistant like Claude or ChatGPT can search foods and log meals directly.
What I built
- Built an MCP server with two auth paths: GitHub OAuth for interactive clients and a service token for headless agents.
- Integrated USDA FoodData Central search, mapping USDA nutrient IDs to the app's macro schema.
- Built a photo pipeline that produces archive, display, and thumbnail images in S3-compatible storage.
- Implemented Google OAuth with hashed, sliding-expiry session tokens, on SQLAlchemy Core with an async psycopg3 pool.
Tech stack
SwiftSwiftUIPythonFastAPIPostgreSQLSQLAlchemyMCPBackblaze B2