Skip to content

[feat] Wesley Playground #349

@flyingrobots

Description

@flyingrobots

Problem Statement

User Story

As a Potential Wesley user
I want To try Wesley in the browser
So that There is zero friction to try it out

Summary

To reduce the friction for users to try Wesley, we'll provide a "Playground" on the Wesley Website, where users can run the full stack:

  • Compile GraphQL to Postgres DDL
  • Apply generated Postgres DDL to a real Postgres database
  • Edit GraphSQL schema and produce a Postgres migration file
  • Apply the migration to the live Postgres database using the full end-to-end Shadow REALM/SHA-lock HOLMES workflow.
  • User gets to live out the "Deploy on a Friday" UX, in-browser

Acceptance Criteria

  • Playground page exists
  • Ability to generate postgres DDL
  • Ability to generate postgres migration
  • Ability to use BLADE to run the ShadowREALM and SHA-lock to certify the migration

NOTE This is an umbrella task

Proposed Solution

  1. Build Playground webpage with:
  • editor-like UX for GraphQL
  • viewer/read-only UX for Wesley build output and build artifacts
  • "File tree" viewer
  • "Generate" button that actually runs Wesley in-browser
  • "Postgres" tab where you can query the database and view query results
  1. Postgres in-browser
  2. Shadow REALM runs in-browser, targeting local Postgres instance
  3. Workers to run Wesley and other background stuff
  4. All happens client-side, in the browser

NOTE Do not use actual Postgres backend/avoid doing anything server-side.

Alternatives Considered

  • Connect to Supabase
  • Not doing this feature at all

Impact Areas

  • CLI
  • Docs
  • API
  • Infra/CI
  • Other

Priority

None

Sub-issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    PlaygroundThe Playground lets users try Wesley in the browserWebsitefeatureNew feature or request

    Projects

    Status

    No status

    Status

    Todo

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions