JDS

September 29, 2026

TypeSide project
RoleDesigner & engineer
StackBase UI, Tailwind, Motion, WebGL, shadcn registry
Linksusejds.dev · GitHub

JDS is my design system for AI agent and voice products. It covers the general UI primitives plus the surfaces most systems skip: voice orbs, agent side panels, prompt inputs, tool calls, approvals, reasoning and live transcripts.

Why I built it

Most of my recent work is AI agent and voice UX, and every project started from the same gap. General design systems cover buttons, forms and tables well, but an agent product lives in the states between them: listening, thinking, calling a tool, waiting for approval, streaming an answer. I kept rebuilding those surfaces from scratch, so I turned them into one system with opinions baked in.

How it's built

JDS is built on Base UI for accessible primitives, with Tailwind for styling, Motion for micro-interactions and WebGL for the heavier orb styles. Every component takes the same set of states, so an orb, a side panel and a composer stay in sync inside one experience.

It ships as source through a shadcn registry, so every component lands in your repo and stays yours to edit.

pnpm dlx shadcn@latest add @jds/style @jds/prompt-input

The Studio

The main value is the Studio. Instead of reading props in the docs, you design a voice agent, a side panel copilot or a chat surface visually: tweak it live, preview every state, then copy the code, or a short spec to hand to a teammate or a coding agent. "Build an experience" goes one step further and exports a whole app from one flow.

The JDS Studio index: Build an experience, Voice orb with glass, liquid and particle styles, a voice call, an agent side panel and a prompt input
Design visually, preview every state, then copy the code or a spec.

Open the Studio →

Below are the main pieces.

Voice orb

Ten orb styles, from particle spheres to WebGL plasma, liquid and glass. Every variant takes the same states (idle, connecting, listening, thinking, speaking, error) and reacts to mic level. The studio previews each one in context: on stage, in a side panel, in a call and compact.

Voice orb studio with presets, style, color and size controls, and the state switcher under the preview
Presets, shape, material and palette on the left. The generated code matches the preview.

Open the voice orb studio →

Agent side panel

The copilot pattern: docked or floating, left or right, card, page or glass surface, and slide, fade or spring entrances. Chat and voice live in the same panel, with voice reachable from the composer, the header, or both.

Side panel studio showing a docked agent panel with a page-context composer next to a skeleton app

Open the side panel studio →

Prompt input

One composer, configured for chat, research, coding, copilot or workspace use: context header, scope picker, tools, model picker, dictation and send behaviour. Previewed in a new chat, a conversation and a side panel, across ready, submitted, streaming and error states.

Prompt input studio with presets and a composer showing model picker, dictation and web search tools

Open the prompt input studio →

Recipes

Complete experiences composed from the components, installable as one block. The voice agent pairs the orb, captions and call controls with the agent's tool calls and transcript. Recipes that talk to a backend read a session interface, so a simulated session can be swapped for a real one without touching the UI.

Voice agent recipe: a connected call with the orb, live caption and call controls, with actions and transcript on the right
Recipes index filtered by voice, side panel, chat and operations
Voice agent, agent run, side panel, chat app, inbox, settings, onboarding and run history.

Browse the recipes →

LinkedIn
GitHub