Subscription status
CashCat Pro subscription status is managed through the database:Active statuses
These statuses grant access to Pro features:- active — paid subscription in good standing
- on_trial — free trial period (before first payment)
Founders and internal testers have permanent Pro access regardless of subscription status.
Checking subscription
ThecheckSubscription function verifies Pro access:
Server-side only
Response fields
isActive— boolean indicating Pro accessstatus— current subscription statusvariantId— product variant ID (for different plan tiers)renewsAt— next renewal date (ISO string)endsAt— cancellation/expiration date (ISO string)
Forever Pro list
Certain email addresses have permanent Pro access:- Always return
isActive: true - Don’t need active subscription in database
- Used for founders and core team members
Subscription data model
Subscriptions are stored in thesubscriptions table:
Database queries
The subscription checker:- Fetches user email from
auth.users - Checks against
FOREVER_PRO_EMAILS - Queries
subscriptionstable for user_id - Orders by
created_at DESCto get most recent - Returns single subscription record
Pro features
While specific Pro features are still being developed, the infrastructure supports:Planned Pro features
Advanced reports
Detailed spending reports, trends, and forecasting
Custom categories
Unlimited categories and groups
Multi-currency
Support for multiple currencies and exchange rates
Export data
Export transactions to CSV, Excel, PDF
Bank sync
Automatic transaction imports via OpenBanking
Shared budgets
Collaborate with partner or family members
Priority support
Faster response times for questions and issues
Early access
Try new features before general release
Early access program
CashCat is currently in early access for testers:- Free during beta — no subscription required while testing
- Founder pricing — early users get special lifetime pricing
- Feedback priority — testers help shape development
- Discord community — join discussions at https://discord.gg/C9mYnEdAQA
Subscription features are being developed. Current testers have access to all features while the app is in early access.
Subscription management
Subscription lifecycle is managed through:Creation
- User signs up for Pro via payment provider
- Webhook creates record in
subscriptionstable - Status set to
on_trialoractive - User immediately gains Pro access
Renewal
- Payment provider processes renewal automatically
- Webhook updates
renews_atdate - Status remains
active - No interruption in service
Cancellation
- User cancels via payment provider
- Webhook updates status to
cancelled ends_atset to end of billing period- Pro access continues until
ends_at
Expiration
- When
ends_atis reached - Status changes to
expired isActivereturnsfalse- User loses Pro features
Implementation example
Protecting a feature behind Pro:Client-side checks
For client components, pass subscription status from server:Pricing
Pricing details will be announced when CashCat exits early access. Expected tiers:- Free — core budgeting features, unlimited transactions
- Pro — advanced features, priority support
- Lifetime — one-time payment for permanent Pro access
Philosophy
CashCat’s subscription model follows these principles:- Core features free — zero-based budgeting always free
- No ads — subscription revenue, not advertisers
- No tracking — your data stays private
- Fair pricing — affordable for everyone
- Transparent — clear feature differences between tiers