https://github.com/basecamp/fizzy-saas
Fizzy SaaS version
https://github.com/basecamp/fizzy-saas
Last synced: 5 months ago
JSON representation
Fizzy SaaS version
- Host: GitHub
- URL: https://github.com/basecamp/fizzy-saas
- Owner: basecamp
- License: other
- Archived: true
- Created: 2025-11-23T05:04:58.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-12-16T21:28:58.000Z (6 months ago)
- Last Synced: 2026-01-08T10:08:47.152Z (5 months ago)
- Language: Ruby
- Homepage:
- Size: 169 KB
- Stars: 144
- Watchers: 6
- Forks: 36
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
> **Archived:** This repository has been merged back into [Fizzy](https://github.com/basecamp/fizzy) as a vendored gem at `saas/`. All future development happens there.
---
This is a Rails engine that [37signals](https://37signals.com/) bundles with [Fizzy](https://github.com/basecamp/fizzy) to offer the hosted version at https://fizzy.do.
## Development
To make Fizzy run in SaaS mode, run this in the terminal:
```ruby
bin/rails saas:enable
```
To go back to open source mode:
```ruby
bin/rails saas:disable
```
Then you can work do [Fizzy development as usual](https://github.com/basecamp/fizzy).
## How to update Fizzy
After making changes to this gem, you need to update Fizzy to pick up the changes:
```ruby
BUNDLE_GEMFILE=Gemfile.saas bundle update --conservative fizzy-saas
```
## Working with Stripe
The first time, you need to:
1. Install Stripe CLI: https://stripe.com/docs/stripe-cli
2. Run `stripe login` and authorize the environment `37signals Development`
Then, for working on the Stripe integration locally, you need to run this script to start the tunneling and set the environment variables:
```sh
eval "$(BUNDLE_GEMFILE=Gemfile.saas bundle exec stripe-dev)"
bin/dev # You need to start the dev server in the same terminal session
```
This will ask for your 1password authorization to read and set the environment variables that Stripe needs.
### Stripe environments
* [Development](https://dashboard.stripe.com/acct_1SdTFtRus34tgjsJ/test/dashboard)
* [Staging](https://dashboard.stripe.com/acct_1SdTbuRvb8txnPBR/test/dashboard)
* [Production](https://dashboard.stripe.com/acct_1SNy97RwChFE4it8/dashboard)
## Environments
Fizzy is deployed with [Kamal](https://kamal-deploy.org/). You'll need to have the 1Password CLI set up in order to access the secrets that are used when deploying. Provided you have that, it should be as simple as `bin/kamal deploy` to the correct environment.
## Handbook
See the [Fizzy handbook](https://handbooks.37signals.works/18/fizzy) for runbooks and more.
### Production
- https://app.fizzy.do/
This environment uses a FlashBlade bucket for blob storage.
### Beta
Beta is primarily intended for testing product features. It uses the same production database and Active Storage configuration.
Beta tenant is:
- https://fizzy-beta.37signals.com
### Staging
Staging is primarily intended for testing infrastructure changes. It uses production-like but separate database and Active Storage configurations.
- https://app.fizzy-staging.com/
## License
fizzy-saas is released under the [O'Saasy License](LICENSE.md).