Back

What's new

Changelog

Every meaningful ship, newest first. Bug fixes and minor polish aren't always listed; major behavior changes always are.

  1. Landing overhaul

    Wave 168
    • Sticky header with backdrop blur — Sign-in and primary CTAs follow you down the page
    • Pricing card now defaults to yearly with a Monthly/Yearly toggle; Free card gained a real CTA; Pro CTA relabeled to 'Upgrade to Pro'
    • New 'How it works' 3-step strip between the hero and the feature gallery
    • Eleven new per-occupation landing pages (/dancers, /bartenders, /servers, /hair, /nails, /tattoo, /massage, /valet, /rideshare, /delivery, /trainer) joining the existing /drivers wedge
    • Phone mockup in the hero now auto-rotates through dancers → bartenders → servers → drivers; respects prefers-reduced-motion
    • Scrollable occupation rail under the hero with a half-card peek and one-time nudge animation on first viewport entry
    • FAQ moved to a two-column desktop grid with three new answers covering 'will Fetti report my income', 'can my manager or platform see my data', and 'do I need a bank account/SSN/ID'
    • Dashboard / Venues / Deductions mockups now live behind a tabbed switcher so the three views feel like one app
    • Free-vs-Pro comparison table collapsed behind a single 'Compare all features →' expander to remove the duplicate pricing display
  2. Feedback inbox — talk to the founder

    Wave 165
    • New /feedback page: write a message, pick an optional category (Question / Feature idea / Bug / Feedback), hit Send
    • Replies show up in-app at /feedback with an unread badge on each conversation
    • Sent messages go straight to the command center; the founder reads, replies, and marks resolved from /admin/feedback
    • Throttled email notification on each new message so nothing slips through
    • Stays inside Fetti — no third-party support tool, no extra account to create
  3. Marketing pivot: from 'No Tax on Tips' to expense deductions

    Wave 164
    • /no-tax-on-tips page retired — the OBBBA §224 angle didn't generalize across our audience (e.g., the SSTB carve-out blocks the deduction for many 1099 entertainers)
    • New /deductions wedge page with per-profession examples (dancers, drivers, bartenders, servers) — generic 'ordinary and necessary business expense' framing, no statute-tied savings claims
    • Landing hero, site-wide meta, onboarding flow, dashboard empty state, blog post, and launch changelog all rewritten around the deduction-tracking angle
    • Tax engine math unchanged — users who qualify for §224 still get the deduction in their estimate; we just stop marketing it as a guaranteed savings
    • Audit-driven fixes bundled in: Form 8919 reference corrected, 1:1 deduction-to-tax framing softened, landlord/lender acceptance promises dropped, Terms Pro list reconciled with PRO_FEATURES
    • 301 redirect /no-tax-on-tips → /deductions, sitemap + IndexNow + analytics allowlist swapped in lockstep
  4. Command center: traffic + landing funnel

    Wave 163
    • First-party PageView table — no third-party analytics, no PII captured (no IP, no email, just path + country + per-tab session token)
    • /admin now shows page-views today / week / month, a 30-day sparkline, top pages, bots-filtered count
    • Landing → signup funnel: how many landing visitors made it to signup, conversion %, drop-off count
    • Beacon fires once per public-page mount via sendBeacon (ad-blocker-tolerant, page-unload-safe)
  5. Free tier: unlimited shifts

    Wave 162
    • The 10-shifts-per-month cap on the free tier has been removed. Log as many shifts as you want, on any plan
    • Pro now differentiates on the income verification letter, the PDF income summary export, quarterly tax reminders, weekly recap email, deeper venue analytics, and priority support
    • If you were near or over the old cap, your shifts are unaffected — nothing was deleted
  6. New: No Tax on Tips, explained

    Wave 150
    • Long-form plain-English explainer at /no-tax-on-tips — what the 2025–2028 federal tip deduction does, who qualifies, the $25k cap and phase-out
    • Names SE tax as the most-missed catch (NTOT only reduces income tax)
    • Worked example for a 1099 nail technician earning $48k in tips
    • Bottom-of-article CTA links into Fetti's tax estimator
  7. Privacy hot-fix — Home-Safe now masks the SE-tax callout + tax-summary rows

    Wave 149.3
    • Three money surfaces on /tax (SE-tax warning callout, NTOT savings card, breakdown rows) rendered in full with Home-Safe ON
    • Same root cause as W149.1 — money styled inline without .money
    • All breakdown rows now mask via the existing .money hook
  8. Diagnostic — name-tag /admin queries so failures are traceable

    Wave 149.2
    • /admin runs 13 Prisma queries in Promise.all; a flaky one bubbled as opaque PrismaClientKnownRequestError
    • Each query now wrapped in a tagged helper that logs the query name on rejection
    • Next admin 500 names the culprit in the runtime log
  9. Hot-fix — Home-Safe mask now covers .hero-number heroes

    Wave 149.1
    • W149 consolidated .font-display + .brand-text + .money into .hero-number on 8 in-app heroes
    • The Home-Safe CSS selector still only matched .money, so dollar amounts rendered in full with the privacy flag ON
    • Selectors now pair .money + .hero-number; mask is future-proof for any new hero
  10. Visual hierarchy reset — in-app surfaces

    Wave 149
    • One hero number per screen earns display font + gradient — every other figure drops to body font + solid color
    • Section labels switched to a single eyebrow style across dashboard, /insights, /tax, /venues
    • Five ambient background blobs removed; one per visible section is the cap
    • Marketing surfaces (/, /drivers, /changelog, /roadmap) intentionally unchanged
  11. Process gates — cross-surface drift catcher + /drivers copy fix

    Wave 148
    • /drivers Pro card: 'Envelopes' → 'Splits', dropped Pro-claimed 'Receipt uploads'
    • Single COMPARISON_ROWS source for landing + /upgrade tables
    • Vitest invariant: PRO_FEATURES and COMPARISON_ROWS must agree on Pro-only labels
    • AGENTS.md: pre-Pro-claim checklist + public-route + API-JSON rules
  12. Polish pass — admin PII masking + tax-overdue copy + 404 titles

    Wave 147
    • Admin emails + IPs masked by default; ?reveal=1 unmasks when needed
    • Overdue quarter rows on /tax now link to irs.gov/payments + name the penalty
    • /404 pages set an explicit title so tabs update on bad nav
    • Receipt-OCR copy unified to 'auto-fill scan' across surfaces
  13. API 404s as JSON + venue similarity hint + Net==Gross sanity check

    Wave 146
    • Unknown /api/* paths return JSON 404 instead of HTML
    • AddVenueForm warns 'Looks similar to X' on near-duplicate names
    • Shift logger prompts when gross matches net with no fees recorded
  14. Audit bug sweep — deletion policy, /signup, quarterly rounding

    Wave 145
    • Privacy Policy deletion text aligned to Terms + actual 14-day grace
    • /signup now redirects to /login
    • Quarterly tax payments split exactly to the annual liability (Q4 absorbs rounding)
    • /manifest.webmanifest 301-redirects to /manifest.json
    • Comparison table OCR row + drivers IRS-rate copy aligned
  15. Receipt OCR moved to the free tier

    Wave 144
    • Receipt upload + auto-fill scan was listed as Pro but never gated in the API
    • Marketing now lists it under Free where it actually lives
    • Same fix pattern as W99 (CSV import drift)
  16. Receipt OCR surfaced in UI + marketing

    Wave 143
    • ReceiptUploader card: 'Attach receipt — we'll auto-fill'
    • Helper line: 'Snap a photo → we read amount, merchant, date'
    • Pricing comparison updated to name the auto-fill scan
  17. Public roadmap + changelog

    Wave 142
    • /changelog page (this one) — recent ships at a glance
    • /roadmap page — what's next, soonest first
    • Footer links from the landing + Settings
  18. Push opt-in discovery on /tax

    Wave 141
    • Banner on /tax for users with 0 push subscriptions
    • Deep-link to /settings#notifications so the toggle is one tap away
  19. State income tax estimates

    Wave 140
    • State preset dropdown covering 50 states + DC
    • Picking your state autofills the effective rate; manual field still editable
    • 9 no-income-tax states (TX, FL, NV, …) detected automatically
  20. Contrast bump + Achievements lock treatment

    Wave 139
    • Muted text contrast lifted to ~6:1 for small-text body copy
    • Locked achievements now show a Lock glyph + dashed border
    • Tax page warns when currency ≠ USD
  21. Empty states + per-shift confidence

    Wave 138
    • Splits empty state matches the Expenses pattern — Wallet glow + payoff
    • This-week chart collapses to a coaching tile when the week is empty
    • Per-shift / per-hour averages hidden below 3 shifts
  22. Landing claims aligned to shipped reality

    Wave 137
    • Feature cards now name the setup path (Settings → Splits, Settings → Notifications)
    • Income verification card flagged 'Pro' upfront
    • Hero copy: 'deduct up to $25k of tip income' instead of 'save thousands'
  23. Desktop scan-to-install gate

    Wave 136
    • Desktop visitors to the (app) routes see 'Fetti is built for your phone'
    • Dismiss with 'Continue in this browser anyway' (one tap, persisted)
    • Landing pages stay responsive and reachable
  24. Audit bug fixes

    Wave 135
    • Greeting reads 'Hey there 🌙' when no display name is set
    • Streak card guards against non-numeric state
    • FAB clears the bottom nav by 30px on every safe-area config
    • Admin error boundary catches command-center 500s with a recovery UI
  25. /drivers landing variant

    Wave 133
    • Driver-flavored hero, mileage-led mockup, driver-specific FAQ
    • Pivot link on the main landing for drivers who arrive there first
    • Sitemap entry so search picks the right page per query
  26. Driver tax categories + platform CSV

    Wave 132
    • Tolls, parking, car wash, platform fees as deduction categories
    • Schedule C lines 9 + 10 auto-mapped
    • CSV import recognizes Uber, DoorDash, Instacart weekly summaries
  27. Mileage deduction on Tax Center

    Wave 131
    • YTD miles + dollar deduction surfaced as a brand-purple tile
    • Empty-state nudge for drivers links to live GPS tracker
    • Effective ¢/mi rate displayed across multi-year data
  28. Visibility wave

    Wave 130
    • Best days — this year card on /insights (gated below 8 shifts)
    • Tipped out this month card on the dashboard
    • Confetti + toast on first daily/weekly goal hit