Skip to content

feat(contribs): import playground in the monorepo#5371

Closed
moul wants to merge 21 commits intomasterfrom
contribs/playground
Closed

feat(contribs): import playground in the monorepo#5371
moul wants to merge 21 commits intomasterfrom
contribs/playground

Conversation

@moul
Copy link
Copy Markdown
Member

@moul moul commented Mar 26, 2026

Summary

Migrate the play.gno.land playground from gnostudio/studio into the gnolang/gno monorepo as contribs/playground.

Goal: Make the playground self-contained in the gno repo so gnostudio/studio can be archived.

What's included

  • contribs/playground/ — Full playground app (React + Vite + pnpm workspace)
    • app/ — Main playground React application
    • packages/ — wasm runtime, core config, editor, React components, CodeMirror LSP
    • tools/data/ — Build artifacts (gno.wasm + root.zip, gitignored)
    • Makefile — Build targets: dev, build, build-release, build-wasm
  • misc/deployments/playground/ — Deployment configs and scripts

Key changes from studio

  • Chain config: gnoland1.0 as default chain (removed test9.1, staging)
  • WASM loading: Bundled at build time from local ../../gnovm (no runtime GCS fetch)
  • Build modes: make dev builds from source, make build-release TAG=chain/gnoland1.0 from GH release
  • Faucet/session APIs: Stubbed out (no gnostudio backend dependency)
  • Self-contained: pnpm workspace with pinned deps (no turbo/monorepo dependencies)

Build status

  • TypeScript: compiles clean (tsc --noEmit passes)
  • Vite: transforms ~2900 modules successfully; worker build has a browserfs CJS compat issue (same as studio — requires package pre-build step, will fix in follow-up)
  • pnpm install: works

Follow-up work

  • Fix worker build (browserfs CJS → ESM compat in worker context)
  • Add CI workflow for playground build
  • Set up Netlify/deployment pipeline
  • Wire up faucet when available for gnoland1.0
  • Remove unused studio-specific code (further cleanup)

This PR is part of the effort to consolidate gno tooling. Once merged and verified, gnostudio/studio will be archived.

AI agent assisted with the migration. See commit message for details.

Migrate the play.gno.land playground from gnostudio/studio into the
gnolang/gno monorepo as contribs/playground.

Structure:
- app/ — main React application (from studio apps/play)
- packages/ — wasm runtime, core config, editor, React components
- tools/data/ — build artifacts (gno.wasm + root.zip, gitignored)
- Makefile — build-wasm from local gnovm, dev, build, build-release

Key changes from studio:
- Chain config: gnoland1.0 as default (removed test9.1, staging)
- WASM loading: bundled at build time (no runtime GCS fetch)
- Faucet/session APIs: stubbed (no gnostudio backend dependency)
- Self-contained pnpm workspace (no turbo/monorepo deps)

Build modes:
- make dev/build — builds WASM from ../../gnovm
- make build-release TAG=chain/gnoland1.0 — downloads from GH release

Deployment configs in misc/deployments/playground/.
@Gno2D2
Copy link
Copy Markdown
Collaborator

Gno2D2 commented Mar 26, 2026

🛠 PR Checks Summary

All Automated Checks passed. ✅

Manual Checks (for Reviewers):
  • IGNORE the bot requirements for this PR (force green CI check)
  • Determine if infra needs to be updated before merging
Read More

🤖 This bot helps streamline PR reviews by verifying automated checks and providing guidance for contributors and reviewers.

✅ Automated Checks (for Contributors):

No automated checks match this pull request.

☑️ Contributor Actions:
  1. Fix any issues flagged by automated checks.
  2. Follow the Contributor Checklist to ensure your PR is ready for review.
    • Add new tests, or document why they are unnecessary.
    • Provide clear examples/screenshots, if necessary.
    • Update documentation, if required.
    • Ensure no breaking changes, or include BREAKING CHANGE notes.
    • Link related issues/PRs, where applicable.
☑️ Reviewer Actions:
  1. Complete manual checks for the PR, including the guidelines and additional checks if applicable.
📚 Resources:
Debug
Manual Checks
**IGNORE** the bot requirements for this PR (force green CI check)

If

🟢 Condition met
└── 🟢 On every pull request

Can be checked by

  • Any user with comment edit permission
Determine if infra needs to be updated before merging

If

🟢 Condition met
└── 🟢 And
    ├── 🟢 The base branch matches this pattern: ^master$
    └── 🟢 Or
        ├── 🔴 A changed file matches this pattern: Dockerfile
        ├── 🟢 A changed file matches this pattern: ^misc/deployments (filename: misc/deployments/playground/README.md)
        ├── 🔴 A changed file matches this pattern: ^misc/docker-
        ├── 🔴 A changed file matches this pattern: ^.github/workflows/releaser.*\.yml$
        └── 🔴 A changed file matches this pattern: ^.github/workflows/staging\.yml$

Can be checked by

  • team devops

This file must include the standard library, tests standar library and
also the examples.

Test standard library is required for running tests, the examples dir is
required to be able to import the packages and realms defined there
within the browser gno REPL.
@moul moul changed the title feat(contribs): add playground — web IDE for Gno feat(contribs): import playground in the monorepo Mar 27, 2026
Also updated workspace catalog with the package dependencies.
@codecov
Copy link
Copy Markdown

codecov Bot commented Mar 27, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@jaekwon
Copy link
Copy Markdown
Contributor

jaekwon commented Mar 27, 2026

I get the sentiment but we shouldn't copy/import entire pre-existing projects from other people and lose its history.
eventually we should split the monorepo up without losing history.

@jaekwon jaekwon closed this Mar 27, 2026
@github-project-automation github-project-automation Bot moved this from 📥 Inbox to ✅ Done in 😎 Manfred's Board Mar 27, 2026
@moul moul mentioned this pull request Apr 3, 2026
13 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Done
Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

4 participants