Skip to content

yhunko/sub-eye

Repository files navigation

SubEye

Track, analyze, and tame your recurring subscriptions.

SubEye is an open-source subscription management app. Add your subscriptions, get renewal alerts via push notifications or Telegram, visualize your monthly spend, and use the AI-powered comparator to make smarter billing decisions.

Live app → app.subeye.cc


Features

  • Dashboard — monthly spend, cash flow chart, upcoming renewals, category breakdown, and yearly totals at a glance
  • Subscription tracking — name, cost, currency, billing period, payment date, notes, auto-pay flag, and cancellation scheduling
  • Renewal notifications — web push and Telegram bot alerts with configurable lead time
  • Comparator — side-by-side subscription comparison with AI insights (Google Gemini)
  • Categories — custom categories with AI-assisted auto-categorization
  • Price change scheduling — track future price increases before they hit
  • Family / team spaces — shared subscriptions and analytics for groups
  • i18n — English and Ukrainian (uk) out of the box; base locale is Ukrainian, English served alongside

Plans

Free Plus Family
Subscriptions 20 50 Unlimited
Categories 20 Unlimited Unlimited
Comparisons / month 10 Unlimited Unlimited
AI insights / month 10 300 300
Telegram templates Yes Yes
Group sharing Yes

Stack

Built on the bhvr monorepo template.

Layer Technology
Runtime Bun
Frontend React 19 + Vite + TanStack Router
Backend Hono deployed as a Cloudflare Worker
Database Neon PostgreSQL + Drizzle ORM
Auth Clerk
Billing Paddle
Async workflows Upstash QStash
AI Google Gemini
Notifications Web Push + Telegram Bot API
i18n Paraglide (inlang)
Monorepo Turbo

Three workspaces: client/ (React PWA), server/ (Hono Worker), shared/ (types, schemas, utilities).


Getting started

# Install all workspace dependencies
bun install

# Start client + server concurrently
bun run dev

# Or individually
bun run dev:client   # Vite dev server
bun run dev:server   # Hono server (watch mode)

Environment variables

Copy the .env.example files in client/ and server/ and fill in your keys for Clerk, Neon, Paddle, Upstash, Gemini, and Telegram.

Database

bun --cwd server run db:generate   # generate migration SQL
bun --cwd server run db:migrate    # apply pending migrations

i18n (required before first type-check)

bun --cwd client run prepare   # compile Paraglide messages → src/shared/lib/i18n/

Quality checks

bun run lint          # Biome check across the repo
bun run lint:fix      # Biome check with safe writes
bun run format        # Biome formatter
bun run type-check    # TypeScript across all workspaces
bun run test          # Tests across all workspaces

Deploy

bun run deploy:dev    # build + wrangler deploy to dev.subeye.cc

License

MIT — see LICENSE.


Built on bhvr by Steve Simkins.

Contributors

Languages