skills/developer-sandbox/SKILL.md
Design and build interactive playgrounds that let developers experience your product without commitment. This skill covers playground architecture, pre-populated examples, embedding strategies, gating decisions, and converting playground users to signups. Trigger phrases: "developer sandbox", "API playground", "interactive playground", "try it now", "demo environment", "code playground", "live examples", "embedded playground", "developer trial", "sandbox conversion", "playground design"
npx skillsauth add jonathimer/devmarketing-skills developer-sandboxInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Let developers experience your product before they commit. A great playground removes the biggest barrier to adoption: uncertainty about whether your product solves their problem.
Developer playgrounds serve multiple purposes:
This skill covers designing playgrounds that convert curious visitors into active users.
Review the developer-audience-context skill to understand:
Your playground should answer the questions developers have when evaluating.
Developers should see something meaningful within 10 seconds of landing.
Good: Page loads with a working example already running Bad: Empty editor with "Type your code here" placeholder
<!-- Good: Pre-loaded, running example -->
<div class="playground">
<div class="editor">
<pre><code>// Analyze sentiment of this text
const result = await api.analyze("I love this product!");
console.log(result.sentiment); // "positive"</code></pre>
</div>
<div class="output">
<pre>{ "sentiment": "positive", "confidence": 0.94 }</pre>
</div>
<button class="run-btn">Run ▶️</button>
</div>
Start simple, let developers go deeper as curiosity grows.
Level 1: One-Click Demo
[Analyze Text] → See result immediately
Level 2: Editable Input
[Edit the text] → [Run] → See result
Level 3: Full API Access
Edit code → Modify parameters → See raw request/response
Level 4: Full Playground
Multiple files → Import SDK → Build mini-app
Never fake the results. Use your actual API with sandbox credentials.
Why real matters:
No signup required for basic playground. No installation. No configuration.
❌ Bad: "Sign up to try the playground"
❌ Bad: "Install our CLI to continue"
❌ Bad: "Configure your environment..."
✅ Good: Works immediately in browser
Choose examples that:
"Hello World" Example
// Example: Text Analysis API
const result = await api.analyze("Hello, world!");
// Output: { words: 2, characters: 13 }
"Aha Moment" Example
// Example: Shows AI doing something impressive
const result = await api.summarize(longArticle);
// Output: A perfect 3-sentence summary
"Real Use Case" Examples
// Example 1: E-commerce - Analyze product reviews
// Example 2: Support - Classify incoming tickets
// Example 3: Social - Detect spam comments
"Integration" Examples
// Example: Integration with Express.js
app.post('/analyze', async (req, res) => {
const result = await api.analyze(req.body.text);
res.json(result);
});
Enable developers to share their playground state:
https://playground.example.com/?code=BASE64_ENCODED_CODE
https://playground.example.com/share/abc123 (stored state)
Use Cases:
Let developers embed playgrounds in their own content:
<!-- Embed in documentation -->
<iframe
src="https://playground.example.com/embed/quickstart"
width="100%"
height="400px"
></iframe>
<!-- Or via script tag -->
<div class="example-playground" data-example="quickstart"></div>
<script src="https://playground.example.com/embed.js"></script>
Size and Performance:
Customization:
Attribution:
Ungated (no signup required) when:
Gated (require signup) when:
┌─────────────────────────────────────────────────────────┐
│ UNGATED │
│ • Run pre-built examples │
│ • Edit and re-run examples │
│ • Share playground URLs │
├─────────────────────────────────────────────────────────┤
│ FREE SIGNUP │
│ • Save playgrounds │
│ • Get API key for external use │
│ • Access more examples │
│ • Higher rate limits │
├─────────────────────────────────────────────────────────┤
│ PAID │
│ • Production API access │
│ • Team features │
│ • Premium models/features │
└─────────────────────────────────────────────────────────┘
When you do gate, minimize friction:
<!-- Good: Non-blocking gate -->
<div class="save-prompt">
<p>Want to save this playground?</p>
<button onclick="signup()">Create free account</button>
<button onclick="dismiss()">Continue without saving</button>
</div>
<!-- Bad: Blocking gate -->
<div class="modal">
<p>Sign up to continue using the playground</p>
<form><!-- required fields --></form>
</div>
Playground Visit
↓
Runs First Example (Time to first interaction)
↓
Modifies Example (Engagement)
↓
Explores More Examples (Interest)
↓
Hits Limitation (Trigger)
↓
Signs Up (Conversion)
Natural limitations that encourage signup:
// Rate limit message
"You've used 10/10 free playground requests today.
Sign up for 1,000 free requests/month."
// Feature tease
"This example uses our Pro model.
Sign up to try it free."
// Save prompt
"Your playground session will expire in 30 minutes.
Create an account to save your work."
Avoid artificial friction:
// Bad: Arbitrary block
"Sign up to run more than 3 examples"
// Bad: Feature that should be free
"Sign up to see request/response details"
Clear value proposition:
┌─────────────────────────────────────────┐
│ Create a free account │
│ │
│ ✓ Get your own API key │
│ ✓ Save and share playgrounds │
│ ✓ 1,000 free API calls/month │
│ │
│ [Sign up with GitHub] │
│ [Sign up with Google] │
│ [Sign up with email] │
└─────────────────────────────────────────┘
Preserve context:
Measure the funnel:
analytics.track('playground_visit');
analytics.track('playground_first_run');
analytics.track('playground_code_edit');
analytics.track('playground_signup_prompt_shown');
analytics.track('playground_signup_started');
analytics.track('playground_signup_completed');
Best for:
Architecture:
┌──────────────────────────────────────────┐
│ Browser │
│ ┌─────────────┐ ┌────────────────┐ │
│ │ Monaco │ │ Preview/Output │ │
│ │ Editor │ → │ Iframe │ │
│ └─────────────┘ └────────────────┘ │
│ ↓ ↓ │
│ Bundler (esbuild-wasm) → Execute │
│ ↓ │
│ Your API │
└──────────────────────────────────────────┘
Best for:
Architecture:
┌────────────────────────────────────────────────┐
│ Browser │
│ ┌─────────────┐ ┌────────────────────┐ │
│ │ Editor │ │ Output │ │
│ └─────────────┘ └────────────────────┘ │
│ ↓ ↑ │
└─────────│────────────────────│────────────────┘
│ │
↓ │
┌──────────────────────────────────────┐
│ Backend │
│ ┌────────────┐ ┌─────────────┐ │
│ │ Code │ → │ Sandbox │ │
│ │ Receiver │ │ Container │ │
│ └────────────┘ └─────────────┘ │
└──────────────────────────────────────┘
Sandbox isolation:
API protection:
Content safety:
┌─────────────────────────────────────────────────────────────┐
│ [Examples ▼] [Docs] [Share] [Sign Up] │
├───────────────────────────────┬─────────────────────────────┤
│ │ │
│ // Your code here │ Output │
│ const result = await │ { │
│ api.analyze("Hello"); │ "sentiment": "neutral" │
│ │ } │
│ │ │
│ │ │
├───────────────────────────────┴─────────────────────────────┤
│ [▶ Run] [Reset] [Copy Code] [Copy as cURL] │
└─────────────────────────────────────────────────────────────┘
development
When the user wants to create developer YouTube content, technical screencasts, or video tutorials. Trigger phrases include "YouTube," "developer video," "screencast," "video tutorial," "live coding," "YouTube for developers," "tech YouTube," or "YouTube thumbnails."
development
When the user wants to build a developer following on Twitter/X, write technical threads, or understand what works for dev audiences on X. Trigger phrases include "Twitter," "X," "developer Twitter," "tech Twitter," "technical threads," "building dev following," or "Twitter for developers."
development
Design pricing models that developers understand, accept, and can predict. Trigger phrases: usage-based pricing, API pricing, metered billing, developer pricing, pricing page, cost calculator, pay as you go, pricing transparency, competitive pricing, developer billing
development
When the user wants to create step-by-step technical tutorials, quickstarts, or code walkthroughs. Trigger phrases include "tutorial," "quickstart," "getting started guide," "walkthrough," "step by step," "how to guide," "hands-on guide," or "code tutorial."