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
Andy Smith
df9a6de57d
Merge pull request #2155 from basecamp/ol-list-fix
...
Use decimals for ordered lists
2025-12-15 14:04:15 -06:00
Andy Smith
2ea6f4e070
Use decimals for ordered lists
2025-12-15 13:14:11 -06:00
Kevin McConnell
706fb8fade
Merge pull request #2148 from basecamp/revert-avatar-change
...
Revert avatar change
2025-12-15 13:28:21 +00:00
Kevin McConnell
e2292a1739
Update cached fragments
2025-12-15 13:23:57 +00:00
Kevin McConnell
741eff7bdc
Revert "Merge pull request #1865 from basecamp/public-avatar-caching"
...
This reverts commit c628f14c01 , reversing
changes made to 4bafc73236 .
2025-12-15 13:07:13 +00:00
Stanko Krtalić
2058743be9
Merge pull request #2146 from basecamp/show-only-published-cards-on-public-boards
...
Show only public cards on public boards
2025-12-15 13:26:12 +01:00
Kevin McConnell
c628f14c01
Merge pull request #1865 from basecamp/public-avatar-caching
...
Serve own avatar from its own endpoint
2025-12-15 12:20:28 +00:00
Stanko K.R.
87081aa617
Show only public cards on public boards
2025-12-15 13:15:36 +01:00
Kevin McConnell
d4cbc86113
Swap order of avatar links
...
If the conditional CSS rules failed to match for some reason, we should
prefer the general avatar image rather than the "my" avatar one. That
way the fallback mode will still look correct.
2025-12-15 11:22:00 +00:00
Kevin McConnell
4bafc73236
Merge pull request #2142 from basecamp/validate-name-length
...
Limit length of full name during signup
2025-12-15 11:08:43 +00:00
Kevin McConnell
87c6557747
Limit length of full name during signup
...
If we don't validate for length, then signups that overflow the database
columns will unnecessarily create and cancel a tenant. Adding a
validation means we can avoid this.
2025-12-15 09:56:35 +00:00
Adrien Maston
1f346085b9
Merge branch 'main' into mobile-app/scoped-stylesheets
...
* main: (119 commits)
Bust comment view cache
Update lexxy to bring fixes from https://github.com/basecamp/lexxy/releases/tag/v0.1.24.beta
Fix unexpected remove empty line from README
Lightbox uses Stimulus target callbacks instead of data-action
Add test coverage for the image lightbox
Add tests for tenancy middleware and timezone cookie
Refactor: Simplify TimeWindowParser using Rails convenience methods
SMTP: support SMTPS on port 465 (#2132 )
Bump fizzy-saas to retain fewer docker images (#2134 )
Add test coverage for with_golden_first scope (#2130 )
Refactor: improve query scope composition with merge syntax (#2131 )
Validate avatar sizes
Introduce Vips configuration
Tailscale serve support (#2126 )
Update tests with final method naming: record! -> record
CSP config to allow Minio in development
Update fizzy-saas to get employee restriction in staging
Drop staff restriction in beta and staging
Unused
Use new FIZZY_GH_TOKEN with limited access
...
2025-12-15 10:43:32 +01:00
Mike Dalessio
cbaf5d245f
Merge pull request #2136 from afurm/test/tenancy-timezone
...
Add focused tests for tenancy middleware and timezone cookie caching
2025-12-14 16:20:56 -05:00
Mike Dalessio
c6725fdca0
Bust comment view cache
...
because, unlike ordinary view file changes, the change to Action Text
attachment rendering in e9cb2956 doesn't bust the cache automatically.
2025-12-14 13:05:45 -05:00
Jorge Manrubia
b93cb3bcea
Merge pull request #2139 from basecamp/update-lexxy-2
...
Update lexxy
2025-12-14 18:56:24 +01:00
Jorge Manrubia
2e66fdff4a
Update lexxy to bring fixes from https://github.com/basecamp/lexxy/releases/tag/v0.1.24.beta
2025-12-14 18:53:23 +01:00
Mike Dalessio
088b06bf95
Merge pull request #2137 from basecamp/flavorjones/data-action-fix
...
Image lightbox uses Stimulus target callbacks instead of `data-action`
2025-12-14 12:48:17 -05:00
Jorge Manrubia
31542373ee
Merge pull request #2112 from JangoCG/feature/rate-limit-join-codes
...
feat: protect join codes from brute-force attacks
2025-12-14 09:43:28 +01:00
Jorge Manrubia
01a5d194ba
Merge pull request #2135 from italomatos/refactor/improve-time-window-parser-readability
...
Refactor: Simplify TimeWindowParser using Rails convenience methods
2025-12-14 09:42:07 +01:00
Jorge Manrubia
95c82a234b
Merge pull request #2114 from robzolkos/remove-unused-install-svg
...
Remove unused install.svg and its CSS class
2025-12-14 09:40:18 +01:00
Jorge Manrubia
57008e0026
Merge pull request #2111 from robzolkos/remove-unpaired-view-transition-name
...
Remove unpaired view-transition-name
2025-12-14 09:39:08 +01:00
Jorge Manrubia
cac9088ad3
Merge pull request #2105 from seuros/main
...
feat: expose closed boolean in card JSON API
2025-12-14 09:36:32 +01:00
Jorge Manrubia
4085c63d4f
Merge pull request #2077 from hiendinhngoc/docs/add-missing-kamal-init-step
...
Add missing `kamal init` step to docs/kamal-deployment.md setup instructions
2025-12-14 09:30:47 +01:00
Jorge Manrubia
e3987d2d08
Merge pull request #2063 from basecamp/lexxy-prompt-padding
...
Fix Lexxy prompt list padding by lowering rich-text specificity
2025-12-14 09:29:44 +01:00
Jorge Manrubia
d7e5d4218f
Merge pull request #2032 from tomycostantino/update-columns-on-actions
...
Fix: board columns actions are stale when moving a column moves
2025-12-14 09:28:57 +01:00
hiendinhngoc
90a48e3119
Fix unexpected remove empty line from README
2025-12-14 14:24:53 +07:00
hiendinhngoc
8a0180da40
Fix conflict and move the update from README to docs/kamal-deployment.md
2025-12-14 14:22:34 +07:00
Mike Dalessio
e9cb2956ee
Lightbox uses Stimulus target callbacks instead of data-action
...
Remove data-action from the sanitizer allowlist to disallow injection
of potentially malicious Stimulus actions in user-provided
content. The lightbox controller now uses imageTarget callbacks to
handle clicks on image links.
Also add the file name as a caption in the light box, and fix the
caption color for dark mode visibility.
2025-12-13 17:06:03 -05:00
Mike Dalessio
51df4af6ba
Add test coverage for the image lightbox
...
because we're about to mess with it.
2025-12-13 16:00:54 -05:00
Andrii Furmanets
f3bd38ea79
Add tests for tenancy middleware and timezone cookie
2025-12-13 22:10:21 +02:00