feat(e2e-ui): framework home + How it’s built slide-out - #169
Merged
Conversation
Reframe the home page around Distributed principles and link demos as destinations. Each demo route gets a right-hand drawer with tabbed walkthroughs (domain → command → projection → client) and a principle callout per tab — a Distributed lens on the “code tabs next to the app” teaching pattern. Implements teaching UX for the e2e-ui template.
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Lead the home hero with the end-to-end story: event-sourced CQRS, TypeScript clients, first-class OIDC, and SvelteKit SSR/live — not CQRS alone.
Drawer only shadows when open, width ~46rem, and lightweight syntax tint for walkthrough samples (keywords, strings, types, attrs, comments).
Reorder every demo walkthrough: (1) query/live (2) commands + client cache optimism vs Projected atomic (3) handlers/repo (4) domain macros (5) domain events + projections. Match the teaching path from UI inward.
Allow /chat without a session so the anonymous privilege pack is visible in the UI: e2e-ui-public client for guests, sign-in CTA instead of the composer, require_auth=false for empty OIDC identity, and AuthUsers read for public author joins.
Each demo walkthrough now includes short ModelPermissions / command.roles samples on tabs 1 and 2 so read grants and mutation roles sit next to the browser query and command story.
Walkthrough panels now paste actual handler, domain, projection, RBAC, and generated-client snippets from the fixture instead of comment stubs.
Frame the site as the framework homepage — full-stack CQRS pitch, pillars, domain→service→client flow, compact playground cards, and local run. Demos stay destinations; ops/hosting only noted as roadmap.
Drop Meteor comparisons. Pitch Distributed as the next step after live GraphQL/query engines: keep the realtime client feel, add event-sourced commands, projections, OIDC surfaces, and generated TS clients.
Position Distributed around event-sourced commands, projections, and an honest client replica. GraphQL and SvelteKit are how the playground speaks, not the product definition.
Rename header/footer e2e-ui → distributed. Hero states Distributed as a cloud-native Rust and TypeScript framework for simple realtime, performant, scalable apps on distributed-systems foundations.
Rebuild home Features as the owner product story (two models, event-sourced aggregates, SQL+RBAC, inferred query edge, projections, browser replica, SvelteKit @load/@LiVe, OIDC) with playground code samples and syntax highlighting matching How-it's-built panels.
Public event→mutation authoring is now projection! (and compile_projection / ProjectionHandler). Matches CQRS product language and ProjectionDescriptor. Call sites use distributed::projection! so the macro does not clash with the projection module path. Legacy absence tests now assert the declarative macro is public while the old event-owning proc-macro stays gone.
Replace apply/as and on_deleted with multi-arm on blocks that bind event body or aggregate_id into mutation inputs. Align todos/chat/blob, home Features (mutation IR + lifetime highlighting), and demos with the new surface. Drop mutation_projector and on_state authoring.
Prefer query = Op.use() over list, and todos/games/pageMessages over generic rows, in app pages, home samples, and How-it's-built demos.
Expand the product home with a Brunson-style arc: claim band, backend/Rust/frontend SOTA as general industry bar (not product hooks), handoff to Distributed, then backstory and how it delivers. Teach unidirectional + event-driven as one path; tighten CAP wording; claim/band styles on home.css.
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.
Summary
How to try
cd tests/e2e-ui && source e2e-ui.env && make run/todos(or chat/blob/…) → How it’s built bottom-right → browse tabsTest plan
npm run check(0 errors)