Redesign beta: opt-in home page (Direction A)#77
Closed
Arie wants to merge 22 commits into
Closed
Conversation
Tailwind v4 output (escaped selectors, @layer, modern CSS) is not parseable by this app's sassc-rails pipeline, which broke render_views specs and would break assets:precompile. Move the Tailwind source out of app/assets (to config/tailwind/) and emit the bundle to public/builds/v2.css, linked via skip_pipeline with an mtime cache-bust. No longer a Sprockets asset.
The shared _actions and _zip_file_link partials are Bootstrap/FontAwesome styled and render unstyled inside the Bootstrap-free v2 layout. Add +v2 variants (auto- resolved under the :v2 request variant) using a v2-action utility, preserving all conditional action logic without FA icons.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implements the Direction A ("Command") redesign of the Home page behind an opt-in
/betacookie. The live site is unchanged for anyone who doesn't opt in.How it works
/beta, click "Try the new look" → sets aui_v2cookie. ABetaUiconcern reads it and, only for actions on a smallREDESIGNED_ACTIONSallow-list (pages#welcomefor now), switchesrequest.variant = :v2and theapplication_v2layout. Every other page (and every non-opted-in user) renders exactly as today — the default render path is untouched.tailwindcss-ruby(no Node) fromconfig/tailwind/v2.tailwind.csstopublic/builds/v2.css, served as a static file (see "Asset pipeline notes"). Linked only in the v2 layout, so Tailwind's Preflight reset never touches Bootstrap pages.public/fonts/v2/), no Google Fonts CSP/privacy dependency.pages#welcome) — hero + the three existing primary actions (Get server / 1-click / Cloud), live availability gauge (reusesServerForUserFinder+ docker host helpers), striped animated donation bar (Order.monthly_*), and the two reservation tables (@users_games/@users_reservations). All on existing data; flags reuse the existing sprite system.pages#welcome'scaches_actionkey now varies byui_v2(extracted to a testedwelcome_cache_path), so logged-out beta and non-beta visitors never share cached HTML.Asset pipeline notes (caught during verification)
config/tailwind/, notapp/assets/, because the app's*.cssprecompile glob + sassc-rails would otherwise try to compile@import "tailwindcss".v2.cssis served statically frompublic/(viaskip_pipeline+ an mtime cache-bust) rather than through Sprockets, because Tailwind v4 output (escaped selectors,@layer, modern CSS) is not parseable by this app's deprecated libsass/SassC. This bypass is the robust fix and keeps the bundle out of the asset pipeline entirely.Testing
/betatoggle, the variant routing, and the cache-key guard (which fails if the vary-by-cookie fix is reverted).script/test -agreen (RuboCop, Brakeman, RSpec, Cucumber, importmap, Tapioca/Sorbet, Swagger)./betaopt-in flow, v2 Home renders, classic site unchanged without the cookie, and non-allow-listed pages (e.g./faq) stay classic even with the cookie.Rollout
Deploy is a no-op for users until they visit
/beta.assets:precompilebuildsv2.cssautomatically. Next iterations (Book a server, Reservation detail) plug into the same mechanism.Design spec:
docs/superpowers/specs/2026-06-15-redesign-beta-design.md· Plan:docs/superpowers/plans/2026-06-15-redesign-beta-home.md🤖 Generated with Claude Code