Design JSON
Design JSON is Pixello's file format for storing designs. It's human-readable, version-controllable, and serves as the bridge between your visual canvas and generated code.
What Is Design JSON?
Design JSON is a structured JSON file that describes:
- Components: What elements make up your design
- Layout: How components are arranged
- Styles: Colors, typography, spacing, and other visual properties
- Content: Text, images, and other data
- Structure: Hierarchy and relationships between elements
Example
Here's a simplified example of what a design JSON file looks like:
{
"version": "1.0",
"name": "Landing Page",
"components": [
{
"type": "Hero",
"props": {
"title": "Welcome to Pixello",
"subtitle": "AI-native design ↔ code collaboration",
"cta": "Get Started"
},
"styles": {
"backgroundColor": "#ffffff",
"padding": "4rem 2rem"
}
},
{
"type": "Features",
"props": {
"items": [
{
"title": "Local-First",
"description": "All files live in your repo"
}
]
}
}
]
}
Why Design JSON?
Human-Readable
Unlike binary formats (like Figma files), Design JSON is plain text. You can:
- Read it in any text editor
- Understand what it represents
- Edit it directly if needed
- Review changes in Git diffs
Version-Controllable
Since it's text-based, Design JSON works perfectly with Git:
- See exactly what changed between versions
- Review design changes in pull requests
- Roll back to previous designs
- Merge design changes from different branches
No Vendor Lock-In
Design JSON is just JSON. You're not locked into Pixello:
- Export your designs to other tools
- Build custom tooling around the format
- Use the data in other contexts
- Own your designs completely
Enables Sync
Design JSON is the single source of truth that:
- The web canvas reads to render designs
- The code generator reads to create components
- Both update when you make changes
- Keeps everything in sync automatically
File Location
Design JSON files are typically stored in:
designs/directory in your project rootpixello/directory (alternative)- Or a custom location you configure
Each design typically has its own JSON file, named after the design (e.g., landing-page.json).
Structure
While the exact structure may evolve, Design JSON generally includes:
- Metadata: Version, name, created date, etc.
- Components: Array of component definitions
- Styles: Global styles and theme settings
- Assets: References to images, fonts, etc.
- Pages: For multi-page designs (see Multi-Page Apps)
Editing Design JSON
Via Canvas
The easiest way to edit Design JSON is through the web canvas. Visual edits automatically update the JSON file.
Directly
You can also edit Design JSON files directly in your editor. Changes will:
- Be reflected in the canvas (after refresh)
- Trigger code regeneration
- Work with Git normally
Programmatically
Since it's JSON, you can:
- Write scripts to modify designs
- Generate designs from data
- Transform designs between formats
- Integrate with other tools
Multi-Page Support
Design JSON supports multiple pages in a single file:
{
"pages": [
{
"name": "Home",
"components": [...]
},
{
"name": "About",
"components": [...]
}
]
}
👉 Learn more: Multi-Page Apps
Future Possibilities
Design JSON enables future features:
- Collaboration: Multiple developers can work on the same design
- Templates: Share and reuse design patterns
- Versioning: Track design evolution over time
- Integration: Connect with other design and development tools
Best Practices
- Commit to Git: Version control your design files
- Keep it readable: Don't minify or obfuscate the JSON
- Use meaningful names: Name your designs and components clearly
- Organize by feature: Group related designs together
What's Next?
Now that you understand Design JSON, learn about:
- MCP Server - How designs are generated
- Web Canvas - How designs are edited visually
- Multi-Page Apps - Building complex applications