Commit Graph

151 Commits

Author SHA1 Message Date
Jorge Manrubia 8382111ef2 Merge pull request #23 from basecamp/billing
Add monthly subscriptions
2025-12-16 16:27:41 +01:00
Jorge Manrubia 3c197debd2 Format 2025-12-16 12:00:46 +01:00
Jorge Manrubia 5b2fa6b74a Remove nested if 2025-12-16 12:00:23 +01:00
Jorge Manrubia 2671e52821 Move presentation method to a regular view helper 2025-12-16 12:00:23 +01:00
Jorge Manrubia bf045b9907 Format 2025-12-16 12:00:23 +01:00
Jorge Manrubia 8d11c62b7c Rename to stripe_session to avoid confusions 2025-12-16 12:00:23 +01:00
Jorge Manrubia 71369de38d Extract method 2025-12-16 12:00:23 +01:00
Jorge Manrubia b39a9ecab4 Make active_subscription a private method 2025-12-16 12:00:23 +01:00
Jorge Manrubia e47657759f More concise 2025-12-16 12:00:23 +01:00
Jorge Manrubia 20b5e57dd3 Prefer if/else over early return 2025-12-16 12:00:23 +01:00
Jorge Manrubia 973b4e4aed Rename param to remove redundant bit
Co-authored-by: Matt Almeida <matt7@hey.com>
2025-12-16 12:00:23 +01:00
Jorge Manrubia c0050415f5 This is needed for vat id collection 2025-12-16 12:00:23 +01:00
Jorge Manrubia f68aa0d947 Enable tax id collection 2025-12-16 12:00:23 +01:00
Jorge Manrubia 3395b8d6ed Grab and show the next amount to pay from Stripe 2025-12-16 12:00:23 +01:00
Jorge Manrubia 8dd31e3635 Add system to comp accounts 2025-12-16 12:00:23 +01:00
Jorge Manrubia 3ef5e4eeef Add record to track overridden limits
Before, we were relying on just changing the cards_count in account, but this
could create problems where the system to calculate the next card number fails due
to the unique constraint.
2025-12-16 12:00:23 +01:00
Jorge Manrubia 725e850802 Enable automatic taxes and calculate based on mandatory billing address
https://app.fizzy.do/5986089/cards/3465
2025-12-16 12:00:23 +01:00
Jorge Manrubia f4184e5a61 Remove redundant condition 2025-12-16 12:00:23 +01:00
Jorge Manrubia c8330a7be8 Don't prevent creating drafts, or you won't get to see the upgrade banner
Instead:

- Always let you create drafts when pressing "Add card"
- Prevent creations of published cards via API
- Prevent publication of cards in all cases when the limit is exceeded
2025-12-16 12:00:23 +01:00
Jason Zimdars 7a5e29699c Give this some padding 2025-12-16 12:00:23 +01:00
Jason Zimdars b19770c2a8 Show different things to non-admins 2025-12-16 12:00:23 +01:00
Jason Zimdars 6411268d7a More fancy apostrophes 2025-12-16 12:00:23 +01:00
Jason Zimdars b1a8b3c859 Layout 2025-12-16 12:00:23 +01:00
Jason Zimdars 5957ed6449 Typo 2025-12-16 12:00:23 +01:00
Jason Zimdars 9953508541 Fancy apostrophes 2025-12-16 12:00:23 +01:00
Jason Zimdars d556f051a6 Spelling 2025-12-16 12:00:23 +01:00
Jorge Manrubia e53455d2ca Paid plans never exceed limits! 2025-12-16 12:00:23 +01:00
Jorge Manrubia d5018cab23 Fix typo 2025-12-16 12:00:23 +01:00
Jorge Manrubia ca5095cafd Fix typo with unlimitted 2025-12-16 12:00:23 +01:00
Jorge Manrubia 623d80017f Add stripe envs 2025-12-16 12:00:23 +01:00
Jorge Manrubia c34e29454e Document how to work with Stripe locally 2025-12-16 12:00:23 +01:00
Jorge Manrubia fc0dc9423d Kill previous tunnel automatically 2025-12-16 12:00:23 +01:00
Jorge Manrubia 5baf9d879d Dont't fail if not set 2025-12-16 12:00:23 +01:00
Jorge Manrubia 90eb61bb5f Add script to set stripe env vars from 1password 2025-12-16 12:00:23 +01:00
Jorge Manrubia a25bd9adfd Let's use a single sandbox environment via 1password ENV vars 2025-12-16 12:00:23 +01:00
Jorge Manrubia 5be4dca80e Refresh the subscription instead of relying on event payloads
Events can land out of order. See https://github.com/basecamp/fizzy-saas/pull/23#discussion_r2609909558
2025-12-16 12:00:23 +01:00
Jorge Manrubia 984a5dd4ce Add Stripe-based billing system
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Jason Zimdars <jz@37signals.com>
2025-12-16 12:00:23 +01:00
Jorge Manrubia 2289f4b1d6 Merge pull request #33 from basecamp/linting
Add rubocop
2025-12-16 11:59:29 +01:00
Jorge Manrubia 2616045476 Add rubocop linting 2025-12-16 11:54:31 +01:00
Jeremy Daer 6050b80fdd Reduce retained containers to free disk space faster (#32)
Beta/staging: 1 (down from default 5)
Production: 2 (registry is local, quick to pull)
2025-12-13 10:32:18 -08:00
Mike Dalessio acc90ec8eb Fix inclusion of Fizzy::Saas::Authorization::Controller 2025-12-12 15:28:27 -05:00
Mike Dalessio 19383b408d Merge pull request #30 from basecamp/flavorjones/limit-staging-beta-to-internal
Restrict logins to employees in staging
2025-12-12 15:10:11 -05:00
Mike Dalessio d82d68fcd0 Restrict logins to employees in staging
as inferred from the email domain, which must be "@37signals.com" or
"@basecamp.com".
2025-12-12 15:07:16 -05:00
Matthew Kent 0ca4afa4e3 Merge pull request #29 from basecamp/move-queenbee-staging
Bump queenbee-plugin to pickup the staging host move
2025-12-11 16:17:56 -08:00
Matthew Kent f15121645a Bump queenbee-plugin to pickup the staging host move.
See https://3.basecamp.com/2914079/buckets/21350690/card_tables/cards/9367648417
2025-12-11 11:31:29 -08:00
Fernando Álvarez 88de372f41 Migrate Staging app URL to app.fizzy-staging.com 2025-12-11 17:36:06 +01:00
Kevin McConnell f662955a8e Merge pull request #27 from basecamp/set-multi-tenant-option-in-development
Also set multi_tenant for SaaS development
2025-12-11 12:24:35 +00:00
Kevin McConnell 54a9641dee Also set multi_tenant for SaaS development 2025-12-11 12:22:10 +00:00
Kevin McConnell be585caa9f Merge pull request #26 from basecamp/set-multi-tenant-option
Set multi_tenant config option
2025-12-11 12:15:39 +00:00
Kevin McConnell 03ea5f7b89 Set multi_tenant config option
To allow the non-SaaS version of Fizzy to default to single-tenant mode,
we'll enable a `multi_tenant.enabled` config option here that overrides
the default behaviour.
2025-12-11 11:38:42 +00:00