Customizing the Studio.
How to modify and rebuild the VoxelSite Studio interface. Source files and build tools are included.
Customizing the Studio
VoxelSite ships with the full source code for the Studio admin panel. You can modify the interface — styles, icons, JavaScript behavior — and rebuild the compiled assets.
This page is for developers who want to customize the Studio itself. If you only want to customize the websites VoxelSite generates, you don't need any of this — just use the Chat, Visual Editor, or Code Editor.
What's included
The Studio source files are in _studio/ui/:
_studio/ui/
├── src/ # Source files you can edit
│ ├── studio.src.css # Tailwind CSS source (design tokens, components)
│ ├── icons.js # Inline SVG icon definitions
│ ├── entry.js # Build entry point
│ └── ... # Additional modules as the codebase evolves
├── app.js # Main application logic
├── state.js # State management
├── router.js # Client-side routing
├── api.js # API client
├── theme.js # Dark/light theme toggle
├── dist/ # Compiled output (don't edit these directly)
│ ├── studio.css # Compiled from src/studio.src.css
│ └── studio.js # Bundled from all JS modules
├── package.json # npm dependencies and build scripts
└── esbuild.config.js # JavaScript bundler configuration
The dist/ files are what the browser loads. They are compiled from the source files using two tools:
- Tailwind CSS (
@tailwindcss/cli) compilessrc/studio.src.css→dist/studio.css - esbuild bundles all JavaScript modules →
dist/studio.js
Prerequisites
You need Node.js 18+ installed on your development machine.
Node.js is only needed on your development machine for building. Your web server does not need Node.js — the compiled files in
dist/are what gets served to the browser.
Setup
Navigate to your VoxelSite installation root and install the build dependencies:
npm install
This installs @tailwindcss/cli and esbuild locally.
Building
To compile both CSS and JavaScript:
npm run build
This runs two commands:
npm run build:css— Compiles Tailwind CSSnpm run build:js— Bundles JavaScript with esbuild
Development mode
For live rebuilding while you work:
npm run watch
This watches for changes to both CSS and JavaScript files and rebuilds automatically. Reload the Studio in your browser to see changes.
Common customizations
Changing colors or design tokens
Edit _studio/ui/src/studio.src.css. The design system uses CSS custom properties with a --vs- prefix:
--vs-accent: #f59e0b; /* Primary accent color (amber) */
--vs-bg-base: #1a1a1a; /* Base background */
--vs-text-primary: #e5e5e5; /* Primary text color */
After editing, run npm run build:css (or npm run watch for auto-rebuild).
Adding or changing icons
Edit _studio/ui/src/icons.js. Each icon is an inline SVG string:
export const icons = {
box: `<svg ...>...</svg>`,
// Add your custom icons here
};
After editing, run npm run build:js.
Modifying JavaScript behavior
The Studio JavaScript is organized into focused modules:
app.js— Core application shell, routing, chat, event bindingsrc/views/editor.js— Monaco code editor, file tree, tab management, Inline AIsrc/views/settings.js— Settings page (identity, AI provider, email, system info)src/ui/modals.js— Confirm and prompt dialog utilitiessrc/ui/toasts.js— Toast notification systemsrc/helpers.js— Shared utilities (escapeHtml,getCodeLanguage)state.js,router.js,api.js,theme.js— Framework-level modules
After editing any .js file, run npm run build:js.
After updating VoxelSite
When you update VoxelSite to a new version, the source files in _studio/ui/ will be overwritten with the latest version. If you've made customizations:
- Back up your modified files before updating
- After updating, re-apply your changes to the new source files
- Run
npm run buildto recompile
Tip: Keep a diff or patch file of your customizations to make re-applying them easier after updates.