StoreCraft Studio
by NiL4gh
README.md
# StoreCraft Studio šØ
**Turn JSON into production-ready design assets ā by hand, or by AI agent.**
StoreCraft Studio is a deterministic design renderer + MCP server that generates high-resolution marketing images (banners, social posts, marketplace screenshots, covers) from plain JSON configs. No design skills. No API keys. No LLM guessing ā the same config always produces the same pixel-perfect PNG.
Designed for **AI agents** (via [Model Context Protocol](https://modelcontextprotocol.io)) and **humans** (via CLI).
```
"Make me a Gumroad hero banner for my product"
ā agent calls list_presets ā finds marketplace-hero-1080p
ā agent calls list_themes ā picks swiss-dark
ā agent composes a JSON config from your description
ā agent calls render_design ā returns output/gumroad-hero.png ā
```
---
## ⨠Why this is different
| Capability | StoreCraft Studio | Other MCP design servers |
|---|---|---|
| Generates **image files** (PNG) | ā
| ā (mostly emit HTML/CSS) |
| **Deterministic** ā no LLM at render time | ā
| ā (most require an AI provider key) |
| **No API keys / BYOK** | ā
| ā (several require external AI keys) |
| **35+ platform presets** out of the box | ā
| ā (generic renderers) |
| **8 curated color themes** | ā
| ā |
| **7 composable layouts** | ā
| ā |
| Works offline, fully local | ā
| ā |
The closest prior art is Vercel's `@json-render/image`, but that's a generic image renderer. StoreCraft Studio is purpose-built for **marketing asset creation** ā the kind of thing you'd otherwise open Canva or Photoshop for.
---
## š¼ļø What it produces

 

---
## š Quick Start (CLI)
```bash
npm install
npx playwright install chromium
# Start the render server (needed by both CLI and MCP)
npm run dev
```
Render a template:
```bash
npm run render -- templates/demo-banner.json --output output/demo.png
```
Render an inline config:
```bash
npm run render -- '{"preset":"marketplace-hero-1080p","theme":"swiss-dark","headline":"My Product","subtitle":"Ship faster"}'
```
List presets and themes:
```bash
npm run render -- presets
npm run render -- themes
```
---
## š¤ Quick Start (MCP ā for AI agents)
Add to your **Claude Desktop** config (`claude_desktop_config.json`):
```json
{
"mcpServers": {
"storecraft-studio": {
"command": "node",
"args": ["C:\\path\\to\\storecraft\\studio\\mcp-server.js"]
}
}
}
```
Or **Cursor** (`.cursor/mcp.json`):
```json
{
"mcpServers": {
"storecraft-studio": {
"command": "node",
"args": ["C:\\path\\to\\storecraft\\studio\\mcp-server.js"]
}
}
}
```
> Start `npm run dev` first ā both the CLI and MCP render via the local Vite server on `http://localhost:3100`.
### Available tools
| Tool | Description |
|---|---|
| `list_presets` | List all design presets (sizes/platforms) |
| `list_themes` | List all color themes |
| `render_design` | Render a JSON config to a high-res PNG |
| `save_template` | Save a config as a reusable JSON template |
| `load_template` | Load a saved template by name |
| `list_templates` | List all saved templates |
---
## š Presets (35+)
### Marketplace
`marketplace-hero-1080p` Ā· `marketplace-standard` Ā· `marketplace-hd` Ā· `square-thumbnail` Ā· `envato-banner`
### Chrome Web Store
`cws-screenshot` Ā· `cws-small-tile` Ā· `cws-marquee` Ā· `cws-icon`
### Social Media
`twitter-header` Ā· `twitter-post` Ā· `instagram-post` Ā· `instagram-story` Ā· `instagram-carousel` Ā· `linkedin-post` Ā· `linkedin-banner` Ā· `facebook-post` Ā· `facebook-cover` Ā· `youtube-thumbnail` Ā· `youtube-banner` Ā· `discord-banner` Ā· `tiktok-thumbnail` Ā· `pinterest-pin`
### OpenGraph
`opengraph-card`
### Banners
`blog-hero` Ā· `newsletter-header` Ā· `podcast-cover` Ā· `banner-leaderboard` Ā· `banner-medium` Ā· `banner-skyscraper`
### Presentations
`slides-16-9` Ā· `slides-4-3`
### Custom
`custom` ā any width Ć height
---
## šØ Themes (8)
`swiss-light` Ā· `warm-paper` Ā· `swiss-dark` Ā· `obsidian-indigo` Ā· `ocean-blue` Ā· `emerald-dark` Ā· `rose-dark` Ā· `minimal-white`
---
## š§© Layouts
`split-feature-right` (default) Ā· `split-feature-left` Ā· `hero-centered` Ā· `full-window` Ā· `three-card-gallery` Ā· `side-by-side-cards` Ā· `widescreen-showcase`
---
## š Config reference
```json
{
"preset": "marketplace-hero-1080p",
"theme": "swiss-dark",
"layout": "hero-centered",
"headline": "Your headline here",
"subtitle": "A short supporting subtitle",
"kicker": "NEW RELEASE",
"badges": [
{ "text": "MCP Native", "bg": "#10b981", "color": "#ffffff" }
],
"callouts": [
{ "icon": "ā”", "title": "Fast", "desc": "Renders in <1s" }
],
"screenshotUrl": "path/to/image.png",
"frameTitle": "product.com ā screenshot window title",
"gridEnabled": true
}
```
---
## šļø Project structure
```
studio/
āāā mcp-server.js # MCP server (6 tools for AI agents)
āāā cli.js # CLI wrapper (render / presets / themes)
āāā index.html # Canvas host + Google Fonts loader
āāā vite.config.js # Dev server on :3100
āāā src/
ā āāā canvas.js # Canvas 2D rendering engine (all layouts)
ā āāā presets.js # 35+ presets + 8 color themes
ā āāā renderer.js # window.StoreCraft browser API
āāā templates/ # Example JSON templates
āāā output/ # Rendered PNGs
āāā demo/ # Showcase images for the README
```
---
## š§ How it works
1. **You or an agent** write a JSON config (preset + theme + layout + text).
2. The config is passed to `window.StoreCraft` in a headless browser via **Playwright**.
3. The **Canvas 2D engine** draws the design pixel-by-pixel at high DPI.
4. The canvas is captured to a **high-res PNG** ā deterministic, reproducible, no server needed.
---
## š License
MIT Ā© Niloy Pal
This server cannot be deployed
Maintenance
ActivityMaintained
ResponsivenessNo issues