UI Specifications
User interface specifications for TVL Platform applications
Overview
This directory contains UI/UX specifications for all TVL Platform user-facing applications. UI specifications define WHAT screens, components, and user flows to build.
Who creates these: Design team (UX designers, product designers) When created: During design phase, before frontend implementation Format: Wireframes, mockups, Figma links, written specifications
⚠️ Important: Design-First Approach
UI specifications should be created by the design team, not backend engineers.
Why:
- ✅ Designers understand UX principles, accessibility, user research
- ✅ Designs iterate rapidly during prototyping (specs get stale if written too early)
- ✅ Visual tools (Figma, Sketch) are more effective than written specs alone
- ✅ Backend engineers writing UI specs often miss important UX considerations
When to Create UI Specs:
- After user research - Understanding user needs and pain points
- During design phase - Wireframes → Mockups → Prototype
- Before frontend implementation - Specs finalized and reviewed
- Not during planning phase - Too early, designs will change
Files in This Directory
| File | Purpose | Status | 
|---|---|---|
| v0-project-spec.md | v0.dev constraints and prompts | ✅ Ready for MVP.0 | 
| admin-ui-spec.md | Admin dashboard specification | 📝 Placeholder (to be redesigned) | 
v0-project-spec.md
Complete reference for using v0.dev to build TVL Platform UI.
This is the "source of truth" to feed v0.dev when generating components. Includes:
- Tech stack constraints (from ADRs 0015-0021)
- Database connection patterns (Supabase)
- Authentication flow (Google OIDC)
- Multi-tenancy patterns (org_id filtering)
- Standard prompts for common components
- Code review checklist
- Parallel development strategy
Use this when:
- Generating UI components with v0.dev
- Need to reference ADR-compliant patterns
- Want consistent Supabase integration
- Building admin dashboard (MVP.0)
Related: v0.dev Usage Guide
Current Status
| Application | Status | Owner | Timeline | 
|---|---|---|---|
| Admin Dashboard | 📝 Draft spec exists | Backend team (placeholder) | To be redesigned by design team | 
| Property Owner Portal | 🕐 Waiting for design | Design team (not hired) | MVP.1+ | 
| Guest Booking Flow | 🕐 Waiting for design | Design team (not hired) | V1.0+ | 
| Mobile App | 🕐 Waiting for design | Design team (not hired) | V2.0+ | 
Planned UI Specifications
1. Admin Dashboard (MVP.0)
Current: admin-ui-spec.md - Placeholder spec
Purpose: Internal admin interface for managing properties, bookings, and viewing Hostaway sync data
Scope (MVP.0):
- View synced properties from Hostaway
- View synced bookings
- Basic dashboard with key metrics
- Property list with filters
- Booking calendar view
Tech Stack:
- React 18 + Next.js 14 (ADR-0015, ADR-0016)
- Tailwind CSS (ADR-0017)
- Shadcn UI components (ADR-0018)
Design Status: ⚠️ Needs redesign by design team
Action Required:
- Hire UX designer
- Conduct user research (property managers, admins)
- Create wireframes in Figma
- Prototype and user testing
- Finalize design system
- Update specification
2. Property Owner Portal (MVP.1+)
Purpose: Self-service portal for property owners to manage their listings
Scope:
- Property CRUD (create, read, update, delete)
- Unit management (attach units to properties)
- Availability calendar management
- Booking overview
- Revenue dashboard
- Channel distribution settings (which channels to publish to)
User Personas:
- Property owner (manages 1-10 properties)
- Property manager (manages 10-100 properties)
- Vacation rental company (100+ properties)
Design Status: 🕐 Waiting for design team
Dependencies:
- Supply domain implementation (ADR-0009: Domain 03)
- Multi-tenancy implementation (ADR-0001, ADR-0002)
Action Required:
- User research with property owners
- Define user flows (property creation, unit management, etc.)
- Wireframe key screens
- Create specification
3. Guest Booking Flow (V1.0+)
Purpose: Public-facing booking interface for guests to search and book properties
Scope:
- Property search (filters: location, dates, guests, amenities)
- Property detail page (photos, description, availability, pricing)
- Booking flow (select dates → guest info → payment → confirmation)
- Guest account management
- Booking history
User Personas:
- Leisure traveler (booking vacation rental)
- Business traveler (extended stay)
- Event attendee (group bookings)
Design Status: 🕐 Waiting for design team
Dependencies:
- Booking domain (ADR-0009: Domain 06)
- Payment integration (Stripe - V1.0)
- Direct booking capability (V1.0 feature)
Action Required:
- Competitor analysis (Airbnb, VRBO UX patterns)
- User research with guests
- Define conversion funnel
- A/B testing strategy
- Create specification
4. Mobile App (V2.0+)
Purpose: Native mobile app for property owners and guests
Scope:
- Property owner: Booking notifications, calendar management, messaging
- Guests: Search, book, check-in, messaging
Platforms: iOS + Android (React Native or Flutter)
Design Status: 🕐 Waiting for design team
Dependencies:
- API maturity (RESTful API complete)
- Mobile-first design system
- Push notification infrastructure
Action Required:
- Mobile UX research
- Define mobile-specific features
- Choose mobile framework (React Native vs Flutter)
- Create specification
UI Specification Template
When the design team creates UI specs, they should follow this structure:
Structure:
# [Application Name] UI Specification
## Summary
Brief overview (1-2 paragraphs)
## User Personas
- Primary persona (with goals, pain points)
- Secondary personas
## User Flows
- Key user journeys (with diagrams)
- Happy path + edge cases
## Screens & Components
### Screen Name
**Route:** `/path/to/screen`
**Purpose:** What problem does this screen solve?
**User Story:** As a [user], I want to [action] so that [benefit]
**Layout:**
- Header: [components]
- Main content: [components]
- Sidebar: [components]
- Footer: [components]
**Components:**
1. Component Name
   - Props: [list]
   - States: [list]
   - Interactions: [list]
**Figma Link:** https://figma.com/...
## Design System
- Colors, typography, spacing
- Component library
- Accessibility requirements (WCAG 2.1 AA)
## Responsive Design
- Desktop breakpoints
- Tablet breakpoints
- Mobile breakpoints
## Interactions & Animations
- Loading states
- Error states
- Success states
- Transitions
## Accessibility
- Keyboard navigation
- Screen reader support
- Color contrast
- Focus management
## Performance Requirements
- Time to Interactive (TTI)
- First Contentful Paint (FCP)
- Largest Contentful Paint (LCP)
## Browser Support
- Chrome, Firefox, Safari, Edge
- iOS Safari, Android Chrome
## References
- Related ADRs
- Design system documentation
- User research findings
Design Tools & Assets
Design System (To Be Created)
Tool: Figma (recommended) Repository: Link to Figma workspace (when created)
Components:
- Buttons, inputs, dropdowns
- Cards, modals, toasts
- Navigation, headers, footers
- Tables, lists, calendars
- Charts, graphs, dashboards
Design Tokens:
- Color palette (primary, secondary, neutral, semantic)
- Typography scale
- Spacing scale
- Border radius, shadows
Prototyping
Tools:
- Figma (interactive prototypes)
- v0.dev (rapid prototyping with Shadcn UI - ADR-0018)
User Testing
Tools:
- UserTesting.com
- Maze (for prototype testing)
- Hotjar (heatmaps, session recordings)
Related Documentation
- Frontend ADRs - React 18, Next.js 14, Tailwind, Shadcn UI (ADR-0015 to ADR-0021)
- Domain Specifications - Business logic and data models
- API Specifications - Backend API contracts
- Implementation Guides - How to build frontend features
Tech Stack (Per ADRs)
All UI applications must follow these architectural decisions:
| Technology | ADR | Notes | 
|---|---|---|
| React 18 | ADR-0015 | UI library | 
| Next.js 14 App Router | ADR-0016 | SSR framework | 
| Tailwind CSS | ADR-0017 | Styling | 
| Shadcn UI | ADR-0018 | Component library | 
| Zustand | ADR-0019 | State management | 
| TanStack Query | ADR-0020 | Server state | 
| React Hook Form + Zod | ADR-0021 | Forms + validation | 
Design Principles (To Be Defined)
When the design team is onboarded, define:
- Accessibility First - WCAG 2.1 AA compliance minimum
- Mobile Responsive - Mobile-first design approach
- Performance - Core Web Vitals targets
- Consistency - Shared component library
- User-Centered - User research drives design decisions
FAQ
Q: Can backend engineers write UI specs?
A: For early prototyping only (like the current admin-ui-spec.md). All production UI specs should come from the design team after user research and prototyping.
Q: When should we hire a designer?
A: Before MVP.1. MVP.0 can use basic Shadcn UI components without custom design, but MVP.1+ requires professional UX design for the property owner portal.
Q: Should we use a design system?
A: Yes. Start with Shadcn UI (ADR-0018) as the foundation, then customize as needed. A design system ensures consistency and speeds up development.
Q: Do we need Figma specs if we're using Shadcn UI?
A: Yes. Shadcn provides components, but you still need to design:
- Page layouts
- User flows
- Custom components
- Responsive behavior
- Interactions and animations
Q: How detailed should UI specs be?
A: Just enough detail. Include:
- ✅ Wireframes or mockups
- ✅ Component list and hierarchy
- ✅ User flows
- ✅ Interaction states
- ❌ Don't include: Pixel-perfect measurements (Tailwind handles this)
- ❌ Don't include: CSS code (frontend devs write this)
Q: Who approves UI specs?
A: Product owner + frontend lead + UX designer (collaborative review)
Roadmap
Phase 1: MVP.0 (Weeks 1-10)
- ✅ Use existing admin-ui-spec.md as placeholder
- ✅ Build with Shadcn UI default components
- ✅ Focus on functionality over design
- ⏳ No custom design work required
Phase 2: MVP.1 (Weeks 11-16)
- 🎯 Hire UX designer (before week 11)
- 🎯 User research with property owners
- 🎯 Design property owner portal
- 🎯 Create design system foundation
Phase 3: MVP.2 (Weeks 17-24)
- 🎯 Refine design system
- 🎯 User testing and iteration
- 🎯 Accessibility audit
Phase 4: V1.0 (Months 7-12)
- 🎯 Design guest booking flow
- 🎯 A/B testing framework
- 🎯 Conversion optimization
Phase 5: V2.0+ (Months 13+)
- 🎯 Mobile app design
- 🎯 Advanced features (events, experiences)
Summary
Current State:
- 1 placeholder UI spec (admin dashboard)
- No design team hired
- Using Shadcn UI defaults for MVP.0
Next Steps:
- ✅ Move UI specs to /docs/specifications/ui/(done)
- ⏳ Complete MVP.0 with basic UI (no design needed)
- 🎯 Hire UX designer before MVP.1 (Week 10)
- 🎯 Design team creates proper UI specs for MVP.1+
Principle: Don't over-design before you have users. Build, learn, iterate.
Last Updated: 2025-01-26 Status: Framework ready, waiting for design team Maintained By: Product + Design Team (when hired)