Skip to content

feat(e2e-ui): framework home + How it’s built slide-out - #169

Merged
patrickleet merged 18 commits into
tasks--graphql-qs-epicfrom
feat/e2e-ui-how-its-built
Aug 1, 2026
Merged

feat(e2e-ui): framework home + How it’s built slide-out#169
patrickleet merged 18 commits into
tasks--graphql-qs-epicfrom
feat/e2e-ui-how-its-built

Conversation

@patrickleet

Copy link
Copy Markdown
Collaborator

Summary

  • Home leads with Distributed principles and DX layers; demos are compact links, not the main story.
  • How it’s built fixed pill (bottom-right) on todos, chat, blob, admin, session, and public opens a right slide-out drawer.
  • Tabs walk domain → command → projection → client (and authz/surface where relevant), each with a principle callout and honest code samples.
  • Aesthetic matches the existing field-note wireframe (paper + ink + mono), not a generic purple “docs site.”

How to try

  1. cd tests/e2e-ui && source e2e-ui.env && make run
  2. Open http://localhost:5180 — framework home
  3. Open /todos (or chat/blob/…) → How it’s built bottom-right → browse tabs

Test plan

  • npm run check (0 errors)
  • Local stack: UI :5180 / API :8791
  • Click through each demo drawer + Escape/scrim close

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.
@coderabbitai

coderabbitai Bot commented Jul 31, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 1a4e9537-528f-459e-9fbc-81fe88cde88b

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

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.
@patrickleet
patrickleet merged commit dac4da7 into tasks--graphql-qs-epic Aug 1, 2026
19 of 20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant