Always-on design intelligence
Always-on design intelligence
Design AI that works on your product around the clock. Connected to your knowledge, tools, and teams to help you build the right thing, faster.
Design AI that works on your product around the clock. Connected to your knowledge, tools, and teams to help you build the right thing, faster.




Built by designers and engineers from


Product
What your users need is scattered across your tools , tickets
, and data
. Now there's a design agent that can find it.
What your users need is scattered across your tools , tickets
, and data
. Now there's a design agent that can find it.

Start from context, not a blank page
Dawn reads your research, tickets, roadmap, and product data before it touches a screen. So the first draft is already informed by your product, not a guess you have to correct
Direct connections to Notion, Linear, PostHog, Pendo, and more.
True to your product and design system
Dawn works in your components, tokens, and patterns. What it makes looks like your product because it is built from your product, not a generic library bolted on after the fact.
Build on your real components and tokens from Figma, Storybook, internal libraries, and more.


People and agents in the same workspace
Designers, PMs, and engineers work alongside Dawn's agents in one space. People set direction, agents do the legwork, and everyone sees the same work as it takes shape.
Real-time multiplayer, with people and agents side by side in Dawn Studio
Production-ready code to hand off to any coding agent
Every screen, flow, and feature is production React and HTML. A human reviews it, then hands it straight to your coding agent over MCP or opens a PR.
Connects to Claude Code, Codex, Cursor, and any MCP-compatible agent.
1import React from 'react';2import Header from './Header';3import HabitGrid from './HabitGrid';4import DiscoveryCard from './DiscoveryCard';5import BottomNav from './BottomNav';6import RecommendationsFooter from './RecommendationsFooter';7export default function PageLayout() {8 return <div style={{9 width: '430px',10 minHeight: '932px',11 backgroundColor: '#FFFFFF',12 display: 'flex',13 flexDirection: 'column',14 fontFamily: "'Plus Jakarta Sans', sans-serif",15 paddingBottom: '150px',16 // Reserved space for BottomNav and RecommendationsFooter17 margin: '0 auto',18 position: 'relative'19 }}>20 21 <Header />22 23 <main style={{24 flex: 125 }}>26 <HabitGrid />27 <DiscoveryCard />28 </main>29 30 <RecommendationsFooter />31 <BottomNav activeTab="Today" />32 </div>;33}34 35// === src/components/Header.tsx ===36import { HiArrowLeft, HiOutlineAdjustmentsHorizontal } from 'react-icons/hi2';37export default function Header() {38 return <header style={{39 padding: '24px 24px 16px 24px',40 backgroundColor: '#FFFFFF'41 }}>42 43 <div style={{44 display: 'flex',45 justifyContent: 'space-between',46 alignItems: 'center',47 marginBottom: '16px'48 }}>49 50 <button onClick={() => console.log('Back')} style={{51 width: '40px',52 height: '40px',53 borderRadius: '50%',54 border: 'none',55 backgroundColor: 'transparent',56 display: 'flex',57 alignItems: 'center',58 justifyContent: 'center',59 cursor: 'pointer'60 }}>61 62 <HiArrowLeft size={20} color="#222222" />63 </button>64 <span style={{65 fontSize: '12px',66 fontWeight: 600,67 color: '#717171',68 textTransform: 'uppercase',69 letterSpacing: '0.05em'70 }}>71 72 Test Discovery73 </span>74 <button style={{75 width: '40px',76 height: '40px',77 borderRadius: '50%',78 border: '1px solid #E5E7EB',79 backgroundColor: '#FFFFFF',80 display: 'flex',81 alignItems: 'center',82 justifyContent: 'center',83 cursor: 'pointer'84 }}>85 86 <HiOutlineAdjustmentsHorizontal size={20} color="#222222" />87 </button>88 </div>89 90 <h1 style={{91 fontSize: '32px',92 fontWeight: 700,93 color: '#222222',94 letterSpacing: '-0.02em',95 margin: 096 }}>97 98 Habit Overview99 </h1>100 <p style={{101 fontSize: '16px',102 fontWeight: 500,103 color: '#717171',104 marginTop: '8px',105 lineHeight: '1.5'106 }}>107 108 Your daily habits directly impact your biomarkers. Track them here to see which tests are most relevant.109 </p>110 </header>;111}112 113// === src/components/HabitGrid.tsx ===114import { HiMoon, HiBolt, HiCheckCircle, HiExclamationCircle, HiFire, HiScale } from 'react-icons/hi2';115export default function HabitGrid() {116 const habits = [{117 id: 'sleep',118 name: 'Sleep',119 current_value: '6.2 hours',120 target_value: '7-9 hours',121 status: 'below target',122 trend: '-0.5 hours/week',123 icon: HiMoon,124 color: '#FF385C',125 isPrimary: true126 }, {127 id: 'exercise',128 name: 'Exercise',129 current_value: '3.2 sessions/week',130 target_value: '4-5 sessions/week',131 status: 'on track',132 trend: '+0.3 sessions/week',133 icon: HiFire,134 color: '#00A699'135 }, {136 id: 'nutrition',137 name: 'Nutrition',138 current_value: 'Moderate consistency',139 target_value: 'High consistency',140 status: 'needs improvement',141 trend: 'variable',142 icon: HiScale,143 color: '#FC642D'144 }, {145 id: 'stress',146 name: 'Stress',147 current_value: 'Elevated',148 target_value: 'Managed',149 status: 'elevated',150 trend: '+15% vs last month',151 icon: HiBolt,152 color: '#FC642D'153 }];154 return <section style={{155 padding: '0 24px'156 }}>157 <div style={{158 display: 'grid',159 gridTemplateColumns: 'repeat(2, 1fr)',160 gap: '16px',161 marginTop: '8px'162 }}>163 164 {habits.map((habit, index) => {165 const Icon = habit.icon;166 const statusColor = habit.status === 'on track' ? '#00A699' : habit.status === 'elevated' || habit.status === 'needs improvement' ? '#FC642D' : '#FF385C';167 return <div key={habit.id} data-nav-target={habit.isPrimary ? "habit-details" : undefined} style={sx(`habitgrid__card_${index}`, {168 backgroundColor: '#FFFFFF',169 borderRadius: '16px',170 padding: '16px',171 border: '1px solid #E5E7EB',172 boxShadow: '0 2px 8px rgba(0,0,0,0.04)',173 cursor: 'pointer',174 display: 'flex',175 flexDirection: 'column',176 gap: '8px',177 transition: 'transform 0.2s ease, box-shadow 0.2s ease'178 })} onClick={() => console.log(`Navigating to ${habit.name}`)}>179 180 <div style={sx(`habitgrid__div_${index}`, {181 display: 'flex',182 justifyContent: 'space-between',183 alignItems: 'flex-start'184 })}>185 <div style={sx(`habitgrid__div_1_${index}`, {186 width: '32px',187 height: '32px',188 borderRadius: '8px',189 backgroundColor: `${habit.color}15`,190 display: 'flex',191 alignItems: 'center',192 justifyContent: 'center'193 })}>194 195 <Icon size={20} color={habit.color} />196 </div>197 {habit.status === 'on track' ? <HiCheckCircle size={20} color="#00A699" /> : <HiExclamationCircle size={20} color={statusColor} />}198 </div>199 200 <div>201 <h3 style={sx(`habitgrid__card_${index}_name`, {202 fontSize: '14px',203 fontWeight: 700,204 color: '#222222',205 margin: 0206 })}>207 208 {habit.name}209 </h3>210 <p style={sx(`habitgrid__card_${index}_value`, {211 fontSize: '16px',212 fontWeight: 600,213 color: '#222222',214 margin: '4px 0 0 0'215 })}>216 217 {habit.current_value}218 </p>219 </div>220 221 <div style={sx(`habitgrid__div_2_${index}`, {222 marginTop: 'auto'223 })}>224 <div style={sx(`habitgrid__div_3_${index}`, {225 fontSize: '12px',226 fontWeight: 500,227 color: '#717171',228 display: 'flex',229 alignItems: 'center',230 gap: '4px'231 })}>232 233 Target: <span style={sx(`habitgrid__span_${index}`, {234 fontWeight: 600,235 color: '#222222'236 })}>{habit.target_value}</span>237 </div>238 <div style={sx(`habitgrid__div_4_${index}`, {239 fontSize: '10px',240 fontWeight: 600,241 color: statusColor,242 marginTop: '4px',243 textTransform: 'uppercase',244 letterSpacing: '0.02em'245 })}>246 247 {habit.trend}248 </div>249 </div>250 251 {/* Sparkline Mockup */}252 <div style={sx(`habitgrid__div_5_${index}`, {253 height: '24px',254 width: '100%',255 marginTop: '8px',256 backgroundColor: '#F7F7F7',257 borderRadius: '4px',258 position: 'relative',259 overflow: 'hidden'260 })}>261 262 <svg width="100%" height="100%" viewBox="0 0 100 24" preserveAspectRatio="none">263 <path d={index % 2 === 0 ? "M0 12 L20 18 L40 10 L60 14 L80 8 L100 20" : "M0 18 L25 12 L50 15 L75 8 L100 5"} fill="none" stroke={statusColor} strokeWidth="2" />264 265 </svg>266 </div>267 </div>;268 })}269 </div>270 </section>;271}272 273// === src/components/DiscoveryCard.tsx ===274import { useState } from 'react';275import { HiSparkles, HiChevronRight } from 'react-icons/hi2';276export default function DiscoveryCard() {277 const [hovered, setHovered] = useState(false);278 return <section style={{279 padding: '24px'280 }}>281 <div onMouseEnter={() => setHovered(true)} onMouseLeave={() => setHovered(false)} onClick={() => console.log('Proceeding to assessment')} style={{282 backgroundColor: '#222222',283 borderRadius: '16px',284 padding: '24px',285 display: 'flex',286 flexDirection: 'column',287 gap: '16px',288 cursor: 'pointer',289 position: 'relative',290 overflow: 'hidden',291 transition: 'transform 0.2s ease',292 transform: hovered ? 'scale(1.01)' : 'scale(1)',293 boxShadow: '0 4px 12px rgba(0,0,0,0.1)'294 }}>295 296 <div style={{297 position: 'relative',298 zIndex: 2299 }}>300 <div style={{301 display: 'inline-flex',302 alignItems: 'center',303 gap: '6px',304 backgroundColor: 'rgba(255, 56, 92, 0.15)',305 padding: '6px 12px',306 borderRadius: '9999px',307 border: '1px solid rgba(255, 56, 92, 0.3)'308 }}>309 310 <HiSparkles size={14} color="#FF385C" />311 <span style={{312 fontSize: '12px',313 fontWeight: 700,314 color: '#FF385C',315 textTransform: 'uppercase',316 letterSpacing: '0.05em'317 }}>318 Personalized Discovery319 </span>320 </div>321 322 <h2 style={{323 fontSize: '24px',324 fontWeight: 700,325 color: '#FFFFFF',326 margin: '12px 0 8px 0',327 lineHeight: '1.2'328 }}>329 330 See which tests fit your lifestyle331 </h2>332 333 <p style={{334 fontSize: '14px',335 fontWeight: 500,336 color: '#9CA3AF',337 margin: 0,338 lineHeight: '1.5'339 }}>340 341 Based on your sleep and stress trends, we've identified 3 priority health markers to investigate.342 </p>343 344 <button style={{345 marginTop: '20px',346 backgroundColor: '#FF385C',347 color: '#FFFFFF',348 border: 'none',349 borderRadius: '12px',350 padding: '14px 20px',351 fontSize: '16px',352 fontWeight: 600,353 display: 'flex',354 alignItems: 'center',355 gap: '8px',356 cursor: 'pointer'357 }}>358 359 Start Habit Assessment360 <HiChevronRight size={20} />361 </button>362 </div>363 364 {/* Decorative background circle */}365 <div style={{366 position: 'absolute',367 top: '-40px',368 right: '-40px',369 width: '180px',370 height: '180px',371 borderRadius: '50%',372 background: 'radial-gradient(circle, rgba(255, 56, 92, 0.2) 0%, transparent 70%)',373 zIndex: 1374 }} />375 376 </div>377 378 <div style={{379 marginTop: '24px',380 borderTop: '1px solid #E5E7EB',381 paddingTop: '24px'382 }}>383 <h3 style={{384 fontSize: '14px',385 fontWeight: 700,386 color: '#222222',387 marginBottom: '12px'388 }}>389 Recent Activity390 </h3>391 <div style={{392 display: 'flex',393 justifyContent: 'space-between',394 alignItems: 'center',395 padding: '12px 0'396 }}>397 398 <div style={{399 display: 'flex',400 gap: '12px',401 alignItems: 'center'402 }}>403 <div style={{404 width: '8px',405 height: '8px',406 borderRadius: '50%',407 backgroundColor: '#00A699'408 }} />409 <div>410 <div style={{411 fontSize: '14px',412 fontWeight: 600,413 color: '#222222'414 }}>Wearable Sync</div>415 <div style={{416 fontSize: '12px',417 fontWeight: 500,418 color: '#717171'419 }}>2 minutes ago</div>420 </div>421 </div>422 <div style={{423 fontSize: '12px',424 fontWeight: 600,425 color: '#00A699'426 }}>Healthy Trend</div>427 </div>428 </div>429 </section>;430}431 432// === src/components/BottomNav.tsx ===433import { HiCalendarDays, HiChartBarSquare, HiSparkles, HiBeaker } from 'react-icons/hi2';434interface BottomNavProps {435 activeTab: string;436}437const tabs = [{438 name: 'Today',439 icon: HiCalendarDays440}, {441 name: 'Picture',442 icon: HiChartBarSquare443}, {444 name: 'Plan',445 icon: HiSparkles446}, {447 name: 'Tests',448 icon: HiBeaker449}];450export default function BottomNav({451 activeTab452}: BottomNavProps) {453 const normalizedActive = activeTab.toLowerCase();454 return <div style={{455 position: 'fixed',456 bottom: 0,457 left: 0,458 right: 0,459 zIndex: 100,460 display: 'flex',461 justifyContent: 'space-around',462 alignItems: 'center',463 backgroundColor: '#FFFFFF',464 borderTop: '1px solid #E5E7EB',465 paddingBottom: 'max(8px, env(safe-area-inset-bottom))',466 paddingTop: '8px'467 }}>468 469 {tabs.map((tab, __idx) => {470 const isActive = tab.name.toLowerCase() === normalizedActive;471 const Icon = tab.icon;472 return <button key={tab.name} style={sx(`bottomnav__button_${__idx}`, {473 display: 'flex',474 flexDirection: 'column',475 alignItems: 'center',476 justifyContent: 'center',477 gap: '4px',478 padding: '8px 12px',479 backgroundColor: 'transparent',480 border: 'none',481 cursor: 'pointer',482 color: isActive ? '#FF385C' : '#9CA3AF',483 fontSize: '10px',484 fontWeight: isActive ? '600' : '500',485 transition: 'color 0.2s ease'486 })}>487 488 <Icon size={24} />489 <span>{tab.name}</span>490 </button>;491 })}492 </div>;493}494 495// === src/components/RecommendationsFooter.tsx ===496export default function RecommendationsFooter() {497 return <section style={{498 padding: '32px 24px',499 textAlign: 'center'500 }}>501 502 <button onClick={() => {}} style={{503 backgroundColor: 'transparent',504 border: 'none',505 color: '#717171',506 fontSize: '14px',507 fontWeight: 600,508 textDecoration: 'underline',509 cursor: 'pointer'510 }}>511 512 Browse all recommendations513 </button>514 </section>;515}Features
Everything it takes to shape better products
Everything it takes to shape better products
One agent that reads your product, designs in your system, and ships real code.
Tool connections
Designs from your tools and data
Decision memory
Remembers every decision you make
Team & agent collaboration
Your team and its agents, one canvas
Multi-screen flows
Generates whole journeys, not single screens
Parallel variants
Explores several directions at once
Your design system
Builds in your components and tokens
MCP
Work with any AI assistant or coding agent
Production code
Output production React and HTML
What people are saying
Loved by product leaders
"Finally, design AI that anticipates the next move, concierge-style."

Dave Killeen
Field-CPO at Pendo, former VP of Product & Design at Productboard
"It finally feels like I'm in control of the AI, not the other way around."

Dave O'Dwyer
Director of Product
"I had something I was genuinely proud of in an hour. That used to take days."

Lisa O'Brien
Head of Design, Primer. Former Head of Product & Design at Thriva
"Output quality outperforms anything I've tried"

Mateo R.
Product & Service Designer
"Refreshingly polished, with a clear point of view. More than you can say for most design AI."

Hugo Cornejo
Former VP of Design at Monzo and CPO at Packfleet
"Two hours in and I'd already prototyped my PRD"

Ethan R;
Entrepreneur
"Finally, design AI that anticipates the next move, concierge-style."

Dave Killeen
Field-CPO at Pendo, former VP of Product & Design at Productboard
"I had something I was genuinely proud of in an hour. That used to take days."

Lisa O'Brien
Head of Design, Primer. Former Head of Product & Design at Thriva
"Refreshingly polished, with a clear point of view. More than you can say for most design AI."

Hugo Cornejo
Former VP of Design at Monzo and CPO at Packfleet
"It finally feels like I'm in control of the AI, not the other way around."

Dave O'Dwyer
Director of Product
"Output quality outperforms anything I've tried"

Mateo R.
Product & Service Designer
"Two hours in and I'd already prototyped my PRD"

Ethan R;
Entrepreneur
"Finally, design AI that anticipates the next move, concierge-style."

Dave Killeen
Field-CPO at Pendo, former VP of Product & Design at Productboard
"Refreshingly polished, with a clear point of view. More than you can say for most design AI."

Hugo Cornejo
Former VP of Design at Monzo and CPO at Packfleet
"Output quality outperforms anything I've tried"

Mateo R.
Product & Service Designer
"I had something I was genuinely proud of in an hour. That used to take days."

Lisa O'Brien
Head of Design, Primer. Former Head of Product & Design at Thriva
"It finally feels like I'm in control of the AI, not the other way around."

Dave O'Dwyer
Director of Product
"Two hours in and I'd already prototyped my PRD"

Ethan R;
Entrepreneur
Design Agents
We're working closely with a small number of teams to introduce Design Agents. If you're curious about it, let's talk.