{"id":35734422,"url":"https://github.com/yhunko/sub-eye","last_synced_at":"2026-04-06T10:01:09.967Z","repository":{"id":332412343,"uuid":"1114488975","full_name":"yhunko/sub-eye","owner":"yhunko","description":"Subscriptions manager","archived":false,"fork":false,"pushed_at":"2026-03-30T19:04:19.000Z","size":4473,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"dev","last_synced_at":"2026-04-02T05:04:12.065Z","etag":null,"topics":["finance-management","finance-tracker","finances","subscription-management","subscriptions"],"latest_commit_sha":null,"homepage":"https://subeye.cc","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/yhunko.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-12-11T12:52:30.000Z","updated_at":"2026-03-30T19:04:23.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/yhunko/sub-eye","commit_stats":null,"previous_names":["yhunko/sub-eye"],"tags_count":172,"template":false,"template_full_name":null,"purl":"pkg:github/yhunko/sub-eye","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yhunko%2Fsub-eye","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yhunko%2Fsub-eye/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yhunko%2Fsub-eye/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yhunko%2Fsub-eye/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/yhunko","download_url":"https://codeload.github.com/yhunko/sub-eye/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/yhunko%2Fsub-eye/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31467985,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-06T08:36:52.050Z","status":"ssl_error","status_checked_at":"2026-04-06T08:36:51.267Z","response_time":112,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["finance-management","finance-tracker","finances","subscription-management","subscriptions"],"created_at":"2026-01-06T12:13:40.286Z","updated_at":"2026-04-06T10:01:09.962Z","avatar_url":"https://github.com/yhunko.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SubEye\n\n**Track, analyze, and tame your recurring subscriptions.**\n\nSubEye 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.\n\n**Live app → [app.subeye.cc](https://app.subeye.cc)**\n\n---\n\n## Features\n\n- **Dashboard** — monthly spend, cash flow chart, upcoming renewals, category breakdown, and yearly totals at a glance\n- **Subscription tracking** — name, cost, currency, billing period, payment date, notes, auto-pay flag, and cancellation scheduling\n- **Renewal notifications** — web push and Telegram bot alerts with configurable lead time\n- **Comparator** — side-by-side subscription comparison with AI insights (Google Gemini)\n- **Categories** — custom categories with AI-assisted auto-categorization\n- **Price change scheduling** — track future price increases before they hit\n- **Family / team spaces** — shared subscriptions and analytics for groups\n- **i18n** — English and Ukrainian (`uk`) out of the box; base locale is Ukrainian, English served alongside\n\n### Plans\n\n|                     | Free | Plus      | Family    |\n| ------------------- | ---- | --------- | --------- |\n| Subscriptions       | 20   | 50        | Unlimited |\n| Categories          | 20   | Unlimited | Unlimited |\n| Comparisons / month | 10   | Unlimited | Unlimited |\n| AI insights / month | 10   | 300       | 300       |\n| Telegram templates  | —    | Yes       | Yes       |\n| Group sharing       | —    | —         | Yes       |\n\n---\n\n## Stack\n\nBuilt on the [bhvr](https://github.com/stevedylandev/bhvr) monorepo template.\n\n| Layer           | Technology                                                                                                  |\n| --------------- | ----------------------------------------------------------------------------------------------------------- |\n| Runtime         | [Bun](https://bun.sh)                                                                                       |\n| Frontend        | [React 19](https://react.dev) + [Vite](https://vitejs.dev) + [TanStack Router](https://tanstack.com/router) |\n| Backend         | [Hono](https://hono.dev) deployed as a [Cloudflare Worker](https://workers.cloudflare.com)                  |\n| Database        | [Neon](https://neon.tech) PostgreSQL + [Drizzle ORM](https://orm.drizzle.team)                              |\n| Auth            | [Clerk](https://clerk.com)                                                                                  |\n| Billing         | [Paddle](https://paddle.com)                                                                                |\n| Async workflows | [Upstash QStash](https://upstash.com/docs/qstash)                                                           |\n| AI              | [Google Gemini](https://ai.google.dev)                                                                      |\n| Notifications   | Web Push + [Telegram Bot API](https://core.telegram.org/bots/api)                                           |\n| i18n            | [Paraglide](https://inlang.com/m/gerre34r) (inlang)                                                         |\n| Monorepo        | [Turbo](https://turbo.build)                                                                                |\n\nThree workspaces: `client/` (React PWA), `server/` (Hono Worker), `shared/` (types, schemas, utilities).\n\n---\n\n## Getting started\n\n```bash\n# Install all workspace dependencies\nbun install\n\n# Start client + server concurrently\nbun run dev\n\n# Or individually\nbun run dev:client   # Vite dev server\nbun run dev:server   # Hono server (watch mode)\n```\n\n### Environment variables\n\nCopy the `.env.example` files in `client/` and `server/` and fill in your keys for Clerk, Neon, Paddle, Upstash, Gemini, and Telegram.\n\n### Database\n\n```bash\nbun --cwd server run db:generate   # generate migration SQL\nbun --cwd server run db:migrate    # apply pending migrations\n```\n\n### i18n (required before first type-check)\n\n```bash\nbun --cwd client run prepare   # compile Paraglide messages → src/shared/lib/i18n/\n```\n\n### Quality checks\n\n```bash\nbun run lint          # Biome check across the repo\nbun run lint:fix      # Biome check with safe writes\nbun run format        # Biome formatter\nbun run type-check    # TypeScript across all workspaces\nbun run test          # Tests across all workspaces\n```\n\n### Deploy\n\n```bash\nbun run deploy:dev    # build + wrangler deploy to dev.subeye.cc\n```\n\n---\n\n## License\n\nMIT — see [LICENSE](./LICENSE).\n\n---\n\nBuilt on [bhvr](https://github.com/stevedylandev/bhvr) by [Steve Simkins](https://github.com/stevedylandev).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyhunko%2Fsub-eye","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fyhunko%2Fsub-eye","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fyhunko%2Fsub-eye/lists"}