{"id":50881656,"url":"https://github.com/langgenius/due-date-hq-jwl","last_synced_at":"2026-06-15T13:30:27.943Z","repository":{"id":356743669,"uuid":"1215792255","full_name":"langgenius/due-date-hq-jwl","owner":"langgenius","description":"due-date-hq","archived":false,"fork":false,"pushed_at":"2026-06-15T09:35:47.000Z","size":34467,"stargazers_count":0,"open_issues_count":2,"forks_count":3,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-15T11:35:50.170Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://due.langgenius.app","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/langgenius.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":"2026-04-20T09:01:49.000Z","updated_at":"2026-06-15T09:35:52.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/langgenius/due-date-hq-jwl","commit_stats":null,"previous_names":["langgenius/due-date-hq-jhx-lyz","langgenius/due-date-hq-jwl"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/langgenius/due-date-hq-jwl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/langgenius%2Fdue-date-hq-jwl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/langgenius%2Fdue-date-hq-jwl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/langgenius%2Fdue-date-hq-jwl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/langgenius%2Fdue-date-hq-jwl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/langgenius","download_url":"https://codeload.github.com/langgenius/due-date-hq-jwl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/langgenius%2Fdue-date-hq-jwl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34365596,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-15T02:00:07.085Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2026-06-15T13:30:26.820Z","updated_at":"2026-06-15T13:30:27.937Z","avatar_url":"https://github.com/langgenius.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# DueDateHQ\n\n[中文 README](./README.zh-CN.md)\n\nDueDateHQ is a deadline operations workbench for US CPA practices. It turns\nclient facts, filing obligations, rule changes, penalty exposure, team ownership,\nand audit evidence into one operating system for daily tax-deadline triage.\n\nThe product is built for practices that have outgrown spreadsheet reminders but\nstill need professional review, source traceability, and a clear answer to the\nquestion: \"What should the team handle next, and why?\"\n\n## Product Loop\n\n1. Bring client data in through manual entry or Migration Copilot.\n2. Normalize client facts into filing jurisdictions, entity types, tax types, and\n   ownership.\n3. Generate obligations from verified rules and practice-reviewed facts.\n4. Triage work by due date, readiness, evidence, owner, and projected penalty risk.\n5. Review Alerts from official sources before applying them to affected\n   clients and obligations.\n6. Run reminder automation from the dedicated Reminders surface: review the\n   30/7/1-day schedule, adjust firm message templates, and monitor delivery or\n   suppression status.\n7. Send personal morning digests only when deadline pressure, Alerts, or\n   reminder delivery failures need attention.\n8. Keep audit evidence for important import, rule, status, billing, and team\n   events.\n\nDueDateHQ is an alpha product codebase. It supports operational review and\nevidence-backed decision making, but it is not tax advice, a filing system, or a\nreplacement for review by a CPA, EA, attorney, or other qualified professional.\n\n## What The Product Covers Today\n\n- **Practice workspace**: login, first-practice onboarding, MFA setup, invitations,\n  role-aware surfaces, practice switching, account security, and bilingual app copy.\n- **Client facts**: client profiles, filing jurisdictions, owners, contact details,\n  import history, readiness signals, client detail workspace, work plan context,\n  Alert impact, lightweight future-business cues, activity log, and fact review.\n- **Migration Copilot**: CSV, TSV, XLSX, pasted tables, and provider-export-shaped\n  data with field mapping, risky-input blocking, preview, generated clients,\n  generated obligations, and audit evidence.\n- **Dashboard and obligations**: risk triage, saved views, bulk status updates,\n  readiness, evidence drawers, weekly/monthly views, and projected penalty\n  exposure.\n- **Rules and Alerts**: source registry, coverage, rule library, generation preview,\n  candidate review, firm-scoped verification decisions, official-source monitoring,\n  Alerts impact triage, source-backed suggested actions,\n  apply/mark-reviewed/request-review/revert flows, and source-health operations.\n- **Practice operations**: audit log, reminders, personal notifications with\n  morning digest controls,\n  readiness portal, calendar subscription, billing checkout handoff, members,\n  and team workload surfaces.\n- **Marketing site**: static bilingual public site for product, pricing, rules, and\n  state-coverage entry points.\n\nCurrent public coverage should be described as `FED + 50 states + DC`.\nState/DC sources and candidate rules are review-gated; candidates are not the same\nas verified reminder-ready rules.\nAI-assisted flows are used for mapping, extraction, summarization, and drafting\ninside guarded workflows; human review remains part of the product model.\n\n## Tech Stack\n\nDueDateHQ is a TypeScript pnpm monorepo deployed on Cloudflare.\n\n- **Apps**: Vite React SPA for the authenticated workbench, Cloudflare Worker API\n  for the SaaS backend, and Astro for the marketing site.\n- **Frontend**: React 19, React Router 7, TanStack Query/Table/Virtual/Hotkeys/Form,\n  Zustand, nuqs, Zod, Lingui, Tailwind 4, Base UI, shadcn/ui\n  `base-vega`, and lucide-react.\n- **API and contracts**: Hono on Cloudflare Workers with oRPC contract-first\n  boundaries shared through `packages/contracts`.\n- **Data and auth**: Cloudflare D1 with Drizzle ORM, tenant-scoped repositories,\n  better-auth Organization/Access Control, and practice-level audit records.\n- **Cloudflare platform**: Workers Assets, KV, R2, Vectorize, Queues, Cron\n  Triggers, Workflows, Rate Limiting, and Wrangler.\n- **AI and integrations**: Vercel AI SDK Core through Cloudflare AI Gateway,\n  internal guards/traces/budgets, Resend, Stripe, Sentry, and PostHog where the\n  deployment has those services configured.\n- **Quality**: Vite+ (`vp`) for workspace tasks, Vitest, Cloudflare Workers test\n  pool, Playwright, Lingui strict compilation, Drizzle Kit, and dependency\n  direction checks.\n\n## Repository Map\n\n```text\napps/\n  app        Vite React SPA for the authenticated workbench\n  server     Cloudflare Worker API, auth, oRPC, queues, cron, webhooks\n  marketing  Astro static marketing site\n\npackages/\n  ai          AI Gateway calls, prompts, guards, traces\n  auth        Better Auth setup, organization roles, billing plugin\n  contracts   Zod and oRPC contracts shared by app and server\n  core        Pure domain logic for dates, rules, imports, risk, priority\n  db          Drizzle schema, migrations, D1 repositories\n  i18n        Shared locale helpers\n  ingest      Alert source adapters and fetch/parse utilities\n  ports       Boundary interfaces\n  ui          Design tokens and reusable UI primitives\n```\n\nUseful docs:\n\n- [Technical overview](./docs/dev-file/00-Overview.md) for architecture and phase\n  context.\n- [Tech stack](./docs/dev-file/01-Tech-Stack.md) for deeper technology decisions.\n- [Architecture decisions](./docs/adr/README.md) for major tradeoffs.\n- [Design system](./DESIGN.md) for current visual tokens and UI rules.\n- [Dev log](./docs/dev-log/README.md) for implementation history.\n\n## Development\n\nUse pnpm with Node `\u003e=22.19.0`.\n\n```bash\npnpm dev       # run workspace development tasks\npnpm check     # type-aware checks\npnpm test      # unit tests\npnpm build     # production builds\npnpm ready     # default pre-handoff gate\n```\n\nCommon module rules:\n\n- Keep feature UI in `apps/app/src/features/\u003cvertical\u003e/`.\n- Keep app runtime helpers in `apps/app/src/lib`.\n- Keep pure domain logic in `packages/core`.\n- Keep shared contract and schema work in `packages/contracts`.\n- Keep tenant-aware persistence behind `packages/db` repositories.\n- Do not use React `useEffect` in app or package code.\n- Use Conventional Commits for commit messages and PR titles.\n\nBefore opening a PR, include a concise summary, validation commands, screenshots\nfor UI changes, and any migration, dependency-direction, environment, or\nsecurity-sensitive notes.\n\n## Data Handling\n\nDueDateHQ product flows handle client and practice data. Treat sample data,\nexports, screenshots, logs, and AI traces as sensitive unless they are clearly\nsanitized.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flanggenius%2Fdue-date-hq-jwl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flanggenius%2Fdue-date-hq-jwl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flanggenius%2Fdue-date-hq-jwl/lists"}