Skip to content
New Project

Caltext

iMessage calorie tracking assistant, powered by AI.

DeployView Demo

Caltext

iMessage calorie tracking assistant powered by AI.

Stack

  • Runtime: Bun + Turborepo monorepo
  • API: Hono on Nitro (deployed to Vercel, 3 regions)
  • iMessage: Chat SDK + Sendblue adapter
  • AI: AI SDK v6 + GPT-4.1 (vision + agent)
  • Database: Upstash Redis (global, 3 regions)
  • Workflows: Vercel Workflow SDK for durable pipelines
  • Nutrition: USDA FoodData Central API

Setup

1. Install dependencies

bun install

2. Configure environment

cp .env.example .env

Fill in the required keys:

VariableSource
SENDBLUE_API_KEY / SENDBLUE_API_SECRETsendblue.co
SENDBLUE_FROM_NUMBERYour Sendblue phone number
UPSTASH_REDIS_REST_URL / UPSTASH_REDIS_REST_TOKENconsole.upstash.com
REDIS_URLSame Upstash Redis in redis:// format
OPENAI_API_KEYplatform.openai.com
USDA_API_KEYfdc.nal.usda.gov (free)

3. Run locally

bun run dev

4. Deploy to Vercel

vercel deploy

Deploys to 3 regions: US East (iad1), London (lhr1), Tokyo (hnd1).

5. Set Sendblue webhook

Point your Sendblue incoming message webhook to:

https://your-app.vercel.app/webhooks/sendblue

Project Structure

caltext/
apps/
api/ # Hono API server
src/
index.ts # Routes + webhook handler
bot.ts # Chat SDK singleton
router.ts # Onboarding vs assistant routing
workflows/
handle-message.ts # Main message handler
onboarding.ts # Multi-step onboarding
reminder-loop.ts # Daily reminders + summaries
packages/
ai/ # AI agent + tools
db/ # Upstash Redis data layer
shared/ # Types, locale, timezone utils

How It Works

  1. User texts the Caltext number via iMessage
  2. Sendblue forwards the message via webhook
  3. New users go through conversational onboarding (name, stats, goal)
  4. Returning users interact with the AI assistant
  5. Photos are analyzed with GPT-4.1 vision, then grounded in USDA nutrition data
  6. Text descriptions are matched against USDA database directly
  7. Daily reminders at breakfast/lunch/dinner times (timezone-aware)
  8. End-of-day summaries with calorie/macro breakdown
  9. Weekly recaps with progress bars and trends
GitHub
Ownerpontusab
Repositorycaltext
Use Cases
AI
Stack
Hono
Nitro
Database
Upstash

Related Templates

eve Software Factory

Software factory built on eve: AI agents work each stage of the development loop, and people make the judgment calls.
eve Software Factory thumbnail

eve Sanity Copilot

Give your team a Sanity copilot in Slack. It runs GROQ, edits schemas, manages releases, and asks before it touches production.
eve Sanity Copilot thumbnail

eve Personal Agent

Fork your own personal agent. One identity across web, Slack, and iMessage, with memory you can import, edit, and approve.
eve Personal Agent thumbnail
DeployView Demo