All articles
solanadevtoolsideanchoreducationbeginnerseahorse

Solana Playground deep dive: the browser IDE that ships official first programs

SolPg (beta.solpg.io) is the browser IDE used by Solana and Anchor official quickstarts. Architecture, Native/Anchor/Seahorse workflows, crate allowlist lag, VS Code extension, Docker self-host, and when to leave for local tooling.

Share
devrels.xyz/a/156short link

Every serious Solana stack eventually wants rustup, Anchor, a validator, and a CI pipeline. The problem is the first hour: Windows path hell, wrong Agave version, faucet rate limits, and a half-finished anchor init before anyone has seen a transaction succeed. Solana Playground (SolPg) is the ecosystem's answer for that hour — a browser IDE that builds, deploys, and tests programs without a local toolchain. Official Solana docs and Anchor's own quickstart still route first-time builders through it for a reason.

This is a deep dive: what SolPg is, how the stack is put together, the end-to-end workflow, the curated crate and npm allowlists, the VS Code companion extension, self-hosting, and the hard line where you should stop and install tools for real. It pairs with our cluster guide, Anchor vs Pinocchio vs Steel, and LiteSVM coverage — different layers of the same journey.

What SolPg is (and is not)

Solana Playground is an open-source project under the solana-playground/solana-playground org on GitHub (~950 stars, actively maintained; primary contributor acheroncrypto). Live product: beta.solpg.io. The README is explicit: still in beta, everything subject to change.

In product terms it is closer to Remix for Solana programs than to a full local IDE:

  • File explorer + Monaco-style editor in the browser
  • Built-in Playground wallet (keypair in browser storage)
  • Integrated terminal with Solana-style commands (solana airdrop, balance, connection, help)
  • One-click Build and Deploy to a selected cluster
  • Client-side test runners using pre-bundled JS packages
  • Shareable project URLs so a workshop instructor can ship a broken lab and a fixed lab as links
  • Built-in tutorials and a programs explorer surface for learning material

It is not a replacement for a production monorepo, a mainnet release pipeline, or modern Anchor / Agave versions. Treat it as the on-ramp and the shareable sandbox.

Why official docs still send you here

Two first-party curricula run on SolPg end to end:

That is institutional endorsement of a specific DX tradeoff: time-to-first-transaction over toolchain fidelity. For DevRels and workshop hosts, SolPg is infrastructure. For someone shipping a protocol, it is a sandbox you outgrow.

Architecture: browser shell, remote build, WASM clients

The monorepo is not a single SPA. Rough layout:

text
solana-playground/
  client/     # browser app (TypeScript / React)
  server/     # build + project backend (api.solpg.io in prod)
  wasm/       # Rust → WebAssembly (solana-client-wasm, extras)
  vscode/     # VS Code extension (commands + snippets)
  supported-crates.json    # on-chain Rust crate allowlist
  supported-packages.json  # browser JS package allowlist
  compose.yaml             # Docker full stack (linux/amd64)

The important split: editing and wallet UX run in the browser; compiling Rust programs runs on the server. That is why you do not install a Solana toolchain locally — the build farm has it. WASM packages power Solana client operations inside the browser (signing, RPC helpers) without shipping a full Node Solana CLI. Public WASM libraries are Apache-2.0; most of the app is GPL-3.0.

Production client can talk to https://api.solpg.io. Self-hosters run client + server (+ DB) via Docker Compose; Agave/Solana binaries are linux/amd64 only, so ARM Macs use OrbStack or Docker Desktop's amd64 emulation.

End-to-end workflow

1. Wallet and cluster

Bottom-left of the UI: Not connected. Create a Playground wallet, save the keypair when prompted, continue. Status shows cluster (usually devnet), address, and SOL balance. Official docs warn clearly:

  • Key material lives in browser local storage — clear cache, lose the wallet (unless you exported it).
  • Dev and test only. Never fund a playground address with mainnet assets you care about.

2. Fund with devnet SOL

bash
# In the Playground terminal
solana airdrop 5

# If faucet rate-limits you, use the web faucet with your playground address
# https://faucet.solana.com/  or  https://devnetfaucet.org/

Cluster confusion is the classic failure mode — confirm the connection endpoint before you blame the program. See our devnet / testnet / mainnet piece if that keeps happening.

3. Create a project

New project flow offers frameworks. The three that matter:

  • Native — vanilla solana-program style Rust. Closest to understanding the runtime without macros.
  • Anchor — the path almost every workshop uses; IDL, accounts macros, client helpers.
  • Seahorse — Python that compiles toward Anchor-compatible programs. Useful for Python-first learners; ecosystem momentum has concentrated on Rust, so treat Seahorse as educational rather than production default.

4. Build, deploy, test, share

text
Edit src/lib.rs (or Seahorse sources)
    → Build   (server compiles against allowlisted crates)
    → Deploy  (program account on selected cluster)
    → Test    (client JS: web3.js / Anchor / mocha packages)
    → Share   (URL snapshot for reviewers / students)

Optional: close program later to reclaim rent (Anchor quickstart covers this).

Share links are the underrated feature for DevRel: a single URL can be the lab, the solution key, or the minimal reproduction in a Discord support thread — no git clone && yarn && anchor build tax.

The allowlist problem (read this before you depend on SolPg)

SolPg does not pull arbitrary crates from crates.io at build time the way a local Cargo project does. It ships a supported crate set in supported-crates.json. As of the public README that file pins versions in this class (always re-check the repo — pins move when maintainers upgrade the build image):

text
# Illustrative pins from the public supported-crates.json / README
anchor-lang              0.29.0
anchor-spl               0.29.0
solana-program           1.16.24
spl-token                4.0.0
spl-token-2022           0.9.0
spl-associated-token-account  2.2.0
mpl-token-metadata       3.2.3
mpl-bubblegum            1.0.0
pyth-sdk-solana          0.8.0
switchboard-solana       0.29.79
# …plus borsh, bytemuck, thiserror, serde, compression/TLV helpers

Client-side, supported-packages.json allowlists browser packages such as @coral-xyz/anchor, @solana/web3.js, @solana/spl-token, Metaplex JS packages, mocha, bn.js, and borsh.

Practical consequences:

  • Copy-pasting a 2026 mainnet tutorial that wants Anchor 0.30+ or a newer Agave program crate may fail until SolPg upgrades the allowlist.
  • You can open an issue to request crates; you cannot cargo add freely.
  • That lag is the main reason SolPg is a teaching and prototyping environment, not a long-term home for production programs.

VS Code extension

The same monorepo ships a VS Code extension (solpg, publisher solana-playground). It does not require a full local Rust/Solana toolchain for basic commands. From the command palette (search solpg):

  • Create Solana (Native) / Anchor / Seahorse project templates
  • Address, Balance, Airdrop, Connection
  • Build, Deploy, Share
  • Anchor and Seahorse snippets sourced from Playground content

Think of it as a bridge for people who want editor keybindings and snippets without abandoning the SolPg mental model. Serious local work still means Anchor CLI, Agave, and a real test harness.

Self-host and contribute

For workshops that cannot depend on the public API, or for contributors:

bash
git clone https://github.com/solana-playground/solana-playground
cd solana-playground
cp .env.example .env

# Full stack (dev) — client :3000, server :8080
docker compose --profile dev up --build

# Client only against production API
docker compose --profile standalone up --build

Recommended local Node/Yarn versions are documented in the root README (Node 22-class, Yarn 1.22-class at time of writing). Contribution guide is unusually opinionated and useful: small PRs, present-tense commits, no emoji in source, prefer PgWeb3 over importing @solana/web3.js directly in client code. If you use LLMs on a PR, the project asks you to actually understand the diff — rare and correct.

Where SolPg sits in the Solana dev toolbox

text
Learning / first deploy     →  Solana Playground (this article)
Structured challenges       →  Blueshift (learn.blueshift.gg)
Fast local program tests    →  LiteSVM
Full framework + IDL        →  Anchor (local)
Minimal CU / no framework   →  Pinocchio / native
Mainnet-fork integration    →  Surfpool / similar
Production CI + monorepo    →  local toolchain + GitHub Actions

A sane progression for a new hire or hackathon team: land a counter/PDA lab on SolPg the morning of day one; by day two move the same design into local Anchor with LiteSVM tests; only then touch mainnet deploy keys. SolPg collapses the empty-setup tax; it should not own your release process.

Honest limitations checklist

  • Beta product — UI, APIs, and pins change.
  • Crate and package allowlists lag the bleeding edge of Anchor / Agave / Token-2022 ecosystems.
  • Wallet security model is browser storage — appropriate for throwaway devnet keys only.
  • No serious monorepo / workspace story compared to local Cargo workspaces and multi-program Anchor workspaces.
  • Build queue / rate limits can bite during large workshops when everyone hits Build at once — have a local fallback or self-hosted instance.
  • Seahorse is available but Rust remains the long-term path for most production teams.
  • Mainnet deploy from a browser IDE is possible in principle and almost always a bad idea for anything with real value — use proper key management and review.

Who should use it this week

  • Beginners following Solana or Anchor official quickstarts
  • DevRels and educators shipping link-based labs and office-hour repros
  • Hackathon mentors unblocking teams that are still stuck on install
  • Experienced eng who need a zero-install scratch pad for a tiny program or a shareable minimal example

If you already have Anchor, LiteSVM, and a cloud devbox, SolPg is optional. If you are writing the first program of your life on Solana, it is still the shortest honest path to a confirmed deploy.

Resources

Keep reading

Get new articles in your inbox

Technical deep-dives on Solana tooling, infrastructure, and ecosystem. No noise.

Solana Playground deep dive: the browser IDE that ships official first programs | devrels.xyz