Internal platform · Deployed for daily use

One interface for every GenAI capability.

The creative team was juggling separate tools for image generation, video processing, 3D modeling, and background removal. AI Studio replaced them all with a single modular platform — built on Replicate API, deployed and in daily use by the production team.

Video demo · in action

See it in action

A walkthrough of the platform — pick a capability, configure it, run it on Replicate, and get the asset back. All in one interface.

Watch demo
Reference

Design system

Dark navy surfaces, indigo–violet accents, Inter for precision — the full, code-truthful spec behind the platform's modular UI.

View system
Engineering

Under the hood

JavaScript · Replicate API · Node.js. Modular tool registration so any new AI capability plugs in with three steps.

See the build
The problem

Five tabs, five logins, five different UIs for work that belongs in one place.

The creative and production teams were running image generation in one browser tab, background removal in another, 3D model generation in a third. Every capability lived in its own tool, with its own API key management, its own queue UI, and its own way of handing back the result. The friction wasn't any single tool — it was the context-switching tax. Each handoff between tools broke the creative flow and slowed down the team's output.

The flow

Pick a capability, run it, get the asset. That's the whole loop.

The core flow is deliberately simple — the platform does the wiring so the team doesn't have to think about it.

one unified interface from "I need an asset" to "here it is"
1
pick a tool
image gen,
video, 3D,
bg removal
2
configure
prompt,
source file,
model
3
run
Replicate
handles the
compute
4
preview
live result
same panel,
no switching
5
get asset
download or
pass to next
step
all tools, same panel layout
no context switching. ever.
Three design bets

The decisions that shaped everything else.

"One interface" is easy to say and hard to build without making it feel cramped or confusing. Three early bets shaped what the platform actually became.

01

Modular registration, not monolithic routing.

Each tool is a self-contained component that registers itself — name, icon, category, API service, and UI — in a single call. Adding a new AI capability never requires touching the core app: create a file, register it, and it appears in the sidebar. The platform scales with the team's needs, not against them.

Add route + nav + wiring per tool  →  Register once, plug in anywhere
02

Replicate as the universal AI layer.

Rather than integrating each model provider separately, the platform routes everything through Replicate's API. Background removal, image generation, video processing, and 3D modeling all share one service interface. Switching models is a config change, not a code change — and the team gets access to 100+ models without the platform caring which one runs.

Per-provider integration  →  One API, all models
03

Panel layout as the interface primitive.

Every tool renders inside the same panel structure: a tools panel for inputs, an editor panel for the canvas, a settings panel for configuration, and a data panel for results. Users learn the layout once and it applies to every capability. Switching from image generation to 3D modeling is "choosing a different tool," not "learning a new one."

Custom UI per capability  →  Consistent panel grammar
UX choices that matter

Small calls that change how the whole thing feels.

A production platform lives or dies on the decisions that are invisible when they work. Here are the ones worth defending in a critique.

a.

The sidebar is the catalog, not the nav.

Tool categories (image, video, audio, text) are the organising principle — not pages or workflows. The sidebar shows what's available; you're always in "the platform," choosing a different capability.

b.

API key config is a one-time setup, not a recurring task.

Keys live in the environment file and surface in the settings panel — not entered before each run. The team shouldn't think about infrastructure during creative work. Authentication happens once, then disappears from the workflow.

c.

The panel canvas is resizable and draggable.

Different tools need different panel proportions. Panels are draggable and the layout saves per-tool, so the workspace adapts to the job rather than forcing the job to adapt to the workspace.

d.

Mobile gets a dedicated layout, not a squished desktop.

The platform detects breakpoints and switches to a MobileLayout component rather than reflowing the panel canvas. On mobile, tools are sequential — the right pattern for reviewing and triggering jobs on the go.

e.

The debug assistant is always one click away.

A floating debug assistant surfaces error context, model logs, and API response details inline — without leaving the tool. On an internal platform where the team is also the admin, fast debugging is a first-class UX concern, not an afterthought.

f.

Auth is gated but lightweight.

The platform uses an auth gate with email verification and an approval flow — because it calls real APIs with real costs. But once approved, you're in, and it remembers you. Security without the ceremony of a full SaaS onboarding.

Behind the design

A dark, confident system built for production.

AI Studio runs on a deep-navy + indigo/violet system — dark surfaces for long sessions, blue for primary action, violet for modular depth. Tokens are defined once in CSS custom properties. Here's the short version; the full spec lives on the Design page.

Color · navy surfaces · indigo/violet accents

Dark enough to focus, bright enough to act.

The palette derives from the AI Studio source: hsl(222 47% 11%) for the base, blue-500 for primary actions, violet-600 for modular depth. The deep navy reduces eye strain during long creative sessions; the blue reads clearly as "the interactive thing."

Primary
#3B82F6
Blue-500. Actions, links, focus
Violet
#7C3AED
Violet-600. Depth, third accent
Sky
#38BDF8
Sky-400. Secondary accent
Emerald
#34D399
Success, completion, done states
Card
#141D30
Panel surface, tool cards
Base
#0B1120
Page background, deep navy
Type · precision over personality

Inter: sharp, technical, always readable on dark.

Inter 700 Display · platform titles · headings
Generate image

Inter 700 is confident without being playful — the right register for a production tool. Its optical precision holds at every size on dark surfaces.

Inter 400–600 Body · labels · panel UI
Pick a model, set your prompt, and run. The result appears in the same panel.

One family across all weights. 400 for body copy, 600 for labels and UI strings — consistent voice whether you're reading a description or clicking a button.

JetBrains Mono Eyebrows · API labels · debug output
REPLICATE · IMAGE-GEN · v0.3.0

Only where the label needs to read as "system output" — section eyebrows, API version tags, the debug console.

Shape · 4 radii · clean geometry

Rounded enough to feel modern, sharp enough to mean business.

Four radii, from pill-shaped status badges down to tight chip corners. Consistent rounding signals coherence across all panels and components.

Pill Status badges, CTA buttons
999px
Card Tool panels, result containers
18px
Button Form controls, action triggers
12px
Chip Tags, category labels
8px
Identity · the icon

Four modules, one spark — the platform in one frame.

AI Studio logo — four modules around a central spark
AI Studio
Four capabilities, one platform

The logo mark is a 2×2 grid of rounded squares representing the four initial capabilities (image, video, 3D, background removal), with a central white circle as the unifying spark. The indigo-to-violet gradient mirrors the platform's color system. At small sizes it reads as a confident, modern symbol; at large sizes the modularity is clear.

Motion · 4 patterns

Motion communicates state, not style.

Tool launch 280ms ease-out, panel slides in
Running
Processing border pulses while API call is live
Result
Result load panel fades in from 0.96 scale
Error
Error state gentle shake — explicit without alarm
See the full design spec View on GitHub
What's deliberately missing

The cuts that keep it fast and focused.

An internal tool has to be ruthless about scope. Here's what was left out on purpose — and why each cut makes the platform better for the people who actually use it.

No model marketplace

The platform ships with the models the team needs — not a browsable catalog of hundreds. Replicate hosts thousands of models, but exposing all of them would turn a production tool into a toy box. The team registered the four capabilities they use; adding more is a deliberate decision, not a discovery problem.

No versioning UI

Outputs aren't versioned or stored inside the platform. The team already has an asset management workflow. Building a second one inside the tool would duplicate infrastructure and add maintenance burden. The platform is a generator, not a storage layer — it hands results to wherever the team keeps its assets.

No billing layer

API costs are visible in Replicate's own dashboard, not inside the platform. Adding usage tracking and cost attribution would require backend infrastructure and ongoing maintenance. For a small internal team, checking Replicate's dashboard directly is faster and more accurate than a reimplemented summary.

No batch jobs UI

The platform processes one job at a time, in the foreground. Creative workflows are interactive — you see the output, decide if it's right, and iterate. A background job queue would obscure that loop. Batch processing is available directly through Replicate's API for cases where it's genuinely needed.

Under the hood

Modular by design, deployed for daily use.

The architecture mirrors the UX — the same modularity that makes the interface simple makes the codebase extensible. Adding a new AI capability takes three steps and touches no core files.

Frontend

JavaScript · React · Vite

  • React with hooks-based state; no heavyweight store
  • Panel canvas with draggable, resizable layout
  • Breakpoint-aware: MobileLayout on small screens
  • Tailwind CSS for utility-first styling
AI Layer

Replicate API

  • Single replicateService.js wraps all model calls
  • Background removal, image generation, video, 3D
  • 100+ models accessible via one interface
  • ElevenLabs + Google APIs ready to integrate
Architecture

Modular Tool Registry

  • Each tool self-registers: id, name, icon, category, component
  • Core app has zero knowledge of individual tools
  • New capability = 1 component + 1 registration call
  • Auth gate with email verification + admin approval