Recipe R07
The AI Workspace
An AI application: conversations, a model choice, visible reasoning, cited answers and a composer.
Teams building an assistant, research tool or internal AI product.
The page, section by section
- 01
Conversations
Conversation SidebarHistory grouped by time; collapsing turns titles into initials rather than hiding them.
- 02
Model
Model PickerModels compared by speed and depth, so the choice is informed.
- 03
Reasoning
Thinking TraceWhat the assistant is doing, one line at a time, open for detail.
- 04
Answer
Cited AnswerEvery sentence carries its sources; hovering a citation lights the source card.
- 05
Answer actions
Message ActionsCopy, retry through versions, and feedback with a reason.
- 06
Composer
Prompt ComposerAttachments tuck into the composer's top edge like folder tabs; model and send stay in reach.
The build brief
Paste it into Claude, Cursor or ChatGPT with the component files, and ask for your own version: your name, your work, your product. It names each component and where to copy it from.
# Build brief: The AI Workspace An AI application: conversations, a model choice, visible reasoning, cited answers and a composer. For: Teams building an assistant, research tool or internal AI product. ## Direction - Paper palette: warm off-white (#f5f1e8) with ink text and a restrained serif for the assistant's answers. - Show the work: reasoning as a line you can open, answers with numbered sources that highlight on hover. - Chrome stays quiet so the conversation is the interface. - Everything works on a phone: the sidebar collapses to a rail or goes full width. ## Page map 1. Conversations: Conversation Sidebar. History grouped by time; collapsing turns titles into initials rather than hiding them. 2. Model: Model Picker. Models compared by speed and depth, so the choice is informed. 3. Reasoning: Thinking Trace. What the assistant is doing, one line at a time, open for detail. 4. Answer: Cited Answer. Every sentence carries its sources; hovering a citation lights the source card. 5. Answer actions: Message Actions. Copy, retry through versions, and feedback with a reason. 6. Composer: Prompt Composer. Attachments tuck into the composer's top edge like folder tabs; model and send stay in reach. ## Components Copy each component's files from its page (Code tab) into your project before you start, and use them as given: change props and content, not internals. - Conversation Sidebar: https://tryvitrine.dev/components/conversation-sidebar (A chat history sidebar grouped by when, not what — it collapses into a narrow rail where each conversation becomes its initials, and titles can be renamed in place.) - Model Picker: https://tryvitrine.dev/components/model-picker (A model switcher that tells you what you're trading: each model shows two quiet meters — speed and depth — and the selection mark slides between rows while the trigger's label rolls over.) - Thinking Trace: https://tryvitrine.dev/components/thinking-trace (A reasoning status that shows its work without shouting: the current step shimmers across its own words with a live timer, and the line expands into the steps already done, each with its duration.) - Cited Answer: https://tryvitrine.dev/components/cited-answer (An AI answer whose citations work both ways: point at a number and its source lifts out of the row above; point at a source and every sentence it supports is underlined.) - Message Actions: https://tryvitrine.dev/components/message-actions (The quiet row under an AI reply, where every action has its own honest micro-state: copy becomes a check, retry turns once and adds a version switcher, and a thumbs-down asks one short question.) - Prompt Composer: https://tryvitrine.dev/components/prompt-composer (A chat composer where attached files tuck into its top edge like tabs in a folder — they rise from behind it when added and sink back when removed.) ## Build - Next.js (App Router), TypeScript, Tailwind CSS. No extra UI libraries. - Write real content for this site: real names, dates, numbers and sentences. No lorem ipsum, no "Feature one". - Compose the sections in the order of the page map. Keep each component's own spacing; add page rhythm with consistent section padding. - Mobile first: every section must work at 375px wide without horizontal scrolling. - Respect prefers-reduced-motion everywhere; every Vitrine component already does. ## Before you ship - Run `/template-tells` (https://tryvitrine.dev/workshop/skills/template-tells) on everything you wrote yourself: copy, sections, styles. - Run `/responsive-audit` (https://tryvitrine.dev/workshop/skills/responsive-audit) at 375, 768 and 1280. - Run `/accessibility-pass` (https://tryvitrine.dev/workshop/skills/accessibility-pass). - Run `/performance-pass` (https://tryvitrine.dev/workshop/skills/performance-pass) on a production build. - Run `/technical-seo-audit` (https://tryvitrine.dev/workshop/skills/technical-seo-audit) and `/seo-auditor` (https://tryvitrine.dev/workshop/skills/seo-auditor) before launch.
Direction
- Paper palette: warm off-white (#f5f1e8) with ink text and a restrained serif for the assistant's answers.
- Show the work: reasoning as a line you can open, answers with numbered sources that highlight on hover.
- Chrome stays quiet so the conversation is the interface.
- Everything works on a phone: the sidebar collapses to a rail or goes full width.