What's Changed
- Update Fly.io scaling configuration (flyio-scale-from-ui) by @fly-io[bot] in #5
- Mobile-friendly dashboard shell + faster site detail load by @danielpang in #11
- feat(auth): serve OAuth/OIDC discovery metadata at the paths MCP clients probe by @danielpang in #12
- fix(mcp): accept the connect-URL audience form + log auth failures by @danielpang in #13
- fix(mcp): treat missing org_meta as enabled (the real MCP auth bug) + full logging by @danielpang in #14
- fix(auth): force onboarding in the OAuth flow so org_id is always set (Google-SSO MCP fix) by @danielpang in #15
- fix(mcp): /healthz pings the DB; health check every minute by @danielpang in #16
- Mobile improvements and add components doc by @danielpang in #18
- Mobile: kill horizontal scroll + MCP/CLI deploy tabs and in-app docs by @danielpang in #19
- Remove dashes from dashboard copy and code comments by @danielpang in #20
- perf(dashboard): memoize per-request server reads for SSR by @danielpang in #21
- perf(dashboard): instant nav transitions via loading.tsx on dynamic routes by @danielpang in #23
- Add Business ($150, unlimited sites) tier + clean up tier keys by @danielpang in #22
- feat: PostHog analytics + resilient, on-brand error/404 pages by @danielpang in #24
- Add branded HTML templates for transactional emails by @danielpang in #26
- Fix DB connection pooling issue by @danielpang in #25
- Fix email footer links by @danielpang in #28
- Capture invite-sent and member-join events in the audit log by @danielpang in #29
- fix(dashboard): flush PostHog server events before serverless freeze by @danielpang in #30
- feat(billing): emit PostHog plan upgrade/downgrade events from the Stripe webhook by @danielpang in #31
- fix(deps): resolve all 66 open Dependabot security alerts by @danielpang in #34
- Add GA to run DB mgirations by @danielpang in #27
- Vendor-neutral error tracking across all services (PostHog default) by @danielpang in #33
- Share one posthog-go client across error tracking and analytics by @danielpang in #35
- feat(billing): surface Manage billing whenever the org has a Stripe customer by @danielpang in #37
- fix(billing): grant bought tier on checkout.session.completed + log billing outcomes by @danielpang in #36
- fix(posthog): surface delivery failures + log plan-change emit decisions by @danielpang in #38
- Enable promotion/coupon codes in Stripe Checkout by @danielpang in #39
- fix(dashboard): authorize member-removal session revocation (M5) by @danielpang in #41
- fix(api): validate site slug before it reaches the content host + KV key (H1) by @danielpang in #40
- fix(install): fail closed when checksum verification cannot run (L1) by @danielpang in #43
- fix(api): match internal email domain exactly, not via a verified child subdomain (L7) by @danielpang in #45
- fix(api): scope user-targeted revoke to the caller's org (L5) by @danielpang in #46
- fix(dashboard): rate-limit the unauthenticated OAuth/DCR endpoints (M4) by @danielpang in #49
- fix(api): rate-limit the unauthenticated password access endpoint (M3) by @danielpang in #47
- fix(api): reject platform-domain and malformed hostnames in custom-domain registration (M1) by @danielpang in #42
- fix(api): accept the /mcp and /mcp/ MCP resource audiences for forwarded writes by @danielpang in #52
- Add an org feed for sharing sites across the organization by @danielpang in #50
- Free-tier "Deployed with Dropway" attribution banner (edge Worker) by @danielpang in #53
- Emit a site_created product event from the API (per-org metric) by @danielpang in #57
- Emit a serve_404 PostHog event so site-access failures are visible by @danielpang in #56
- Warn on a deploy with no root index.html (instead of a silent 404) by @danielpang in #55
- Record site_visit for gated (org_only) page views by @danielpang in #58
- Make a rejected route projection observable + a 500 (not a silent 404) by @danielpang in #54
- serve: 500 on a resolver backend error (404 only for unknown host) by @danielpang in #59
- List files when there are no index.html file by @danielpang in #60
- Emit events when users sign in/up fail by @danielpang in #62
- Render uploaded .md/.mdx files as a Markdown viewer page by @danielpang in #64
- Brand the file explorer with a sticky Dropway toolbar by @danielpang in #65
- Add
dropway sitesanddropway readCLI commands by @danielpang in #66
New Contributors
Full Changelog: v0.1.3...v0.2.0