Adrien Maston
f2ac4e67f0
Remove underline on search results
2025-12-19 16:14:21 +01:00
Adrien Maston
7203a7ca24
Make sticky headers on activity feed full width
2025-12-19 16:07:17 +01:00
Adrien Maston
573ffe0ee4
Add titles to pins and search permas
2025-12-19 15:44:36 +01:00
Adrien Maston
b49aa9cbf1
Don't load the navigable list controller on mobile
2025-12-19 12:16:04 +01:00
Andy Smith
586cc79ebb
Adjust button offset for bottom notch on mobile
2025-12-18 11:23:05 -06:00
Andy Smith
d751ae5522
Move closure message to its own grid area
2025-12-18 11:17:10 -06:00
Adrien Maston
5d6f3f5156
Allow search perma's form to target the whole page
...
... to pick up the url change and <head> update
2025-12-18 10:13:55 +01:00
Adrien Maston
9bbf739b2a
Tweak columns in card perma
...
... when the container is larger than needed
2025-12-18 10:12:24 +01:00
Adrien Maston
b815fdc49b
Merge branch 'mobile-app/scoped-styles' into mobile-app/prepare-webviews
...
* mobile-app/scoped-styles:
Replace android and ios css layers with platform layer
Change how show-on-native works
Use the correct css layers for Android and iOS
2025-12-18 08:53:59 +01:00
Adrien Maston
389b817bb4
Replace android and ios css layers with platform layer
2025-12-18 08:31:15 +01:00
Adrien Maston
190d310108
Change how show-on-native works
2025-12-17 18:58:43 +01:00
Adrien Maston
e3302a4377
Use the correct css layers for Android and iOS
2025-12-17 17:47:28 +01:00
Adrien Maston
86ec2959fb
Move pins perma panel out of turbo frame
2025-12-17 12:55:58 +01:00
Adrien Maston
b040424e2f
Make search perma mobile friendly
2025-12-17 12:50:36 +01:00
Adrien Maston
92e63d80cc
Make my/pins perma mobile-friendly
2025-12-17 12:30:08 +01:00
Adrien Maston
12bc237665
Horizontal column picker
...
... in card perma
2025-12-17 11:34:31 +01:00
Adrien Maston
a4d0c2d6bb
Tweak card perma's body
2025-12-17 10:45:29 +01:00
Adrien Maston
0f26baee09
Hide elements
...
Menu, back buttons, bottom bar
2025-12-17 10:45:24 +01:00
Adrien Maston
3c9c4cafea
Use buttons above title layout
2025-12-17 10:45:17 +01:00
Adrien Maston
a936bc1c47
Make icon buttons bigger
2025-12-17 10:45:11 +01:00
Adrien Maston
60bbb31344
Add base files
2025-12-17 09:08:46 +01:00
Adrien Maston
5b7aa67bb3
Add platform attribute
2025-12-17 08:56:08 +01:00
Jeremy Daer
a5a0cda295
Fix tailscale serve: use localhost:PORT, helpful error on Linux
...
Tailscale serve only supports localhost or 127.0.0.1 as proxy targets.
On Linux, prompts user to run `sudo tailscale set --operator=$USER` if access denied.
2025-12-16 14:47:09 -08:00
David Heinemeier Hansson
a755ecdec9
Must be run as sudo
2025-12-16 14:36:51 -08:00
Jason Zimdars
79070f5cef
Merge pull request #2172 from basecamp/hide-when-singular-entry
...
Hide the 'Show history' button if there are no other entries to expand
2025-12-16 16:13:53 -06:00
Jason Zimdars
5949b421e9
Hide the 'Show history' button if there are no other entries to expand
2025-12-16 16:09:09 -06:00
Jeremy Daer
a2c69b4d1b
Merge pull request #2170 from basecamp/monosaas
...
Repatriate fizzy-saas
2025-12-16 12:45:54 -08:00
Jason Zimdars
d74f1535d6
Merge pull request #2171 from basecamp/collapse-system-comments
...
Collapse and expand system comments
2025-12-16 14:33:40 -06:00
Jeremy Daer
c691d39ecf
Integrate fizzy-saas as vendored gem at saas/
...
- Update Gemfile.saas to use path: "saas" instead of GitHub source
- Update config/database.yml to reference local saas/ directory
- Update bin/setup to source saas/bin/setup directly
- Remove redundant dotfiles (ruby-version, gitignore, rubocop, github workflows)
- Add saas/db exclusions to root rubocop config
2025-12-16 12:25:22 -08:00
Jason Zimdars
8659e19671
Collapse and expand system comments
2025-12-16 14:21:48 -06:00
Jeremy Daer
bf47dfde91
Merge fizzy-saas repository into saas/
...
Consolidates fizzy-saas back into the main repo as a vendored gem.
Full commit history preserved with files under saas/ prefix.
* saas-import/main: (131 commits)
Format
Remove nested if
Move presentation method to a regular view helper
Format
Rename to stripe_session to avoid confusions
Extract method
Make active_subscription a private method
More concise
Prefer if/else over early return
Rename param to remove redundant bit
This is needed for vat id collection
Enable tax id collection
Grab and show the next amount to pay from Stripe
Add system to comp accounts
Add record to track overridden limits
Enable automatic taxes and calculate based on mandatory billing address
Remove redundant condition
Don't prevent creating drafts, or you won't get to see the upgrade banner
Give this some padding
Show different things to non-admins
...
2025-12-16 12:02:48 -08:00
Jeremy Daer
bf6ddcb933
Add --tailscale flag to bin/dev for remote access ( #2168 )
...
Enables sharing dev sites over Tailscale serve. Uses port convention
4xxxx (prepending 4 to the dev port, echoing TLS 443) so multiple apps
can run simultaneously on different ports.
Usage: bin/dev --tailscale
2025-12-16 09:54:53 -08:00
Jeremy Daer
97ffe00672
My life for a trailing comma
2025-12-16 09:54:04 -08:00
Jeremy Daer
a68bd2775d
Fix Tailscale host match. Rails wraps the regexp in its own anchors and port-match.
2025-12-16 09:35:26 -08:00
Jorge Manrubia
212743fe3f
Merge pull request #2165 from basecamp/revert-css
...
Revert "Mobile app / Scoped stylesheets" (#1698 )
2025-12-16 17:35:19 +01:00
Jorge Manrubia
0278fe6ae4
Revert "Mobile app / Scoped stylesheets" ( #1698 )
...
This reverts commit 39c1906e67 .
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com >
2025-12-16 17:20:18 +01:00
Mike Dalessio
2b388dd241
Merge pull request #2164 from basecamp/flavorjones/user-validate-name
...
Validate User name presence and handle blank names gracefully
2025-12-16 10:49:13 -05:00
Jorge Manrubia
761cc8b6d5
Merge pull request #2050 from basecamp/billing
...
Add billing system (monthly subscriptions)
2025-12-16 16:47:16 +01:00
Jorge Manrubia
ee80b87c8c
Add billing system with Stripe
...
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Jason Zimdars <jz@37signals.com >
2025-12-16 16:44:20 +01:00
Mike Dalessio
b75d2ae6d8
Validate User name presence and handle blank names gracefully
...
Addresses an issue where User#familiar_name assumed `name` was always
present, potentially raising an exception during view rendering. Now
User validates name presence, and User#familiar_name handles blank
strings without error, in case any existing invalid records exist.
2025-12-16 10:44:10 -05:00
Jorge Manrubia
8382111ef2
Merge pull request #23 from basecamp/billing
...
Add monthly subscriptions
2025-12-16 16:27:41 +01:00
Kevin McConnell
76400765c1
Merge pull request #2159 from basecamp/upgrade-thruster
...
Update Thruster
2025-12-16 14:41:43 +00:00
Adrien Maston
39c1906e67
Merge pull request #1698 from basecamp/mobile-app/scoped-stylesheets
...
Mobile app / Scoped stylesheets
2025-12-16 15:34:37 +01:00
Adrien Maston
04332bc526
Merge branch 'main' into mobile-app/scoped-stylesheets
...
* main:
Use decimals for ordered lists
Update cached fragments
Revert "Merge pull request #1865 from basecamp/public-avatar-caching"
Show only public cards on public boards
Swap order of avatar links
Limit length of full name during signup
Make layout bulletproof
Serve own avatar from its own endpoint
2025-12-16 15:30:31 +01:00
Kevin McConnell
14f337739d
Update Thruster
2025-12-16 13:28:49 +00: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