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.
devrels.xyz/a/156short linkEvery 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:
- Solana.com Quick Start — accounts, transactions, first program, PDAs, CPIs, all from the browser with no local install.
- Anchor docs: Solana Playground quickstart — create an Anchor project in SolPg, build, deploy, test, close the program account to reclaim rent.
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:
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
# 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-programstyle 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
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):
# 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 helpersClient-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 addfreely. - 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:
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 --buildRecommended 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
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 ActionsA 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
- beta.solpg.io — live IDE
- github.com/solana-playground/solana-playground — source, crate/package allowlists, Docker, CONTRIBUTING
- Solana Quick Start (official, SolPg-based)
- Anchor SolPg quickstart
- Maintainer: github.com/acheroncrypto / @acheroncrypto
- Related on devrels.xyz: clusters and faucets, Blueshift, Anchor / Pinocchio / Steel, LiteSVM
Keep reading
Solana Launch is not a token launchpad. It is the official hub for shipping apps faster: fee abstraction (Kora), enterprise private channels, commerce and Pay, attestations, wallet connector, signing keychain — with docs, GitHub, and recommended development shops. Here is the product map and how the pieces compose.
Solana runs three public clusters and beginners regularly deploy to the wrong one. Here's what devnet, testnet, and mainnet are actually for, plus the fastest way to get 20 devnet SOL (devnetfaucet.org) and 20 devnet USDC (Circle's faucet) into your wallet.
An audit report is worthless if you can't confirm the deployed bytecode is what was audited. Solana verified builds fix that: a Docker-pinned toolchain produces a deterministic .so, its hash is compared to the on-chain program data, and the result is written to a PDA anyone can read. Solana Explorer shows a verified badge. Here's the full workflow.
Get new articles in your inbox
Technical deep-dives on Solana tooling, infrastructure, and ecosystem. No noise.
