Skip to content

Frontend Documentation

Welcome to our frontend documentation. This guide provides a structured path through our established patterns and practices.

Choose your path based on your experience level and immediate needs:

New to the project? Start here:

  1. Environment Setup - Get up and running locally
  2. Core Concepts - Understand our architecture
  3. First Contribution - Make your first change

Our documentation is organized by user journey and complexity:

SectionPurposeWhen to Use
Getting StartedOnboarding & setupFirst time setup, troubleshooting
FundamentalsCore conceptsBuilding components, understanding patterns
Development PatternsPractical implementationDaily development, complex features
Quality AssuranceTesting & accessibilityBefore shipping, maintaining quality
Performance MonitoringOptimization & monitoringPerformance issues, monitoring setup
ReferenceStandards & conventionsCode reviews, style questions, API schemas
  • Astro

    • Server-first architecture
    • Zero-JavaScript by default
    • Hybrid static/dynamic rendering
    • HTML streaming support
    • Islands architecture for interactivity
  • SolidJS

    • Fine-grained reactivity
    • Efficient updates
    • TypeScript support
    • Small bundle size
    • Perfect for Astro islands
  • TailwindCSS

    • Utility-first approach
    • Built-in responsive design
    • Performance optimized
    • Strong developer experience
    • Consistent design system
  • GraphQL

    • Type-safe queries
    • Efficient data loading
    • Flexible API design
    • Strong tooling support
    • Optimized data fetching

🚀 Getting Started (New Team Members)

  1. Environment SetupCore Concepts
  2. Component ArchitectureDesign Tokens
  3. Data FetchingGraphQL Patterns

⚡ Building Features (Interactive Development)

  1. Core ConceptsData Fetching
  2. Forms & ActionsState Management
  3. Testing Patterns

🎨 Design & Accessibility (UI/UX Focus)

  1. Design TokensComponent Architecture
  2. Accessibility Requirements

Building a New Component

  1. Component Architecture - Choose component type
  2. Design Tokens - Apply consistent styling
  3. Data Fetching - Add data if needed
  4. Testing Patterns - Ensure quality

Adding Interactivity

  1. State Management - Manage component state
  2. Forms & User Input - Handle user interactions
  3. Accessibility Requirements - Ensure accessibility

Performance Optimization

  1. Component Architecture - Review loading strategies
  2. Performance Optimization - Identify bottlenecks
  3. GraphQL Patterns - Optimize queries
TaskPrimary GuideSupporting Docs
Create ComponentComponent ArchitectureDesign Tokens, Code Conventions
Add Data FetchingData Fetching PatternsGraphQL Patterns
Handle FormsForms & User InputState Management
Fix Styling IssuesDesign TokensTroubleshooting
Add TestsTesting PatternsAccessibility Requirements
Debug ProblemsTroubleshooting GuideCode Conventions
  1. Before Starting: Check Environment Setup if issues arise
  2. During Development: Reference Component Architecture and Design Tokens
  3. Before Committing: Review Code Conventions and run tests
  4. Before Merging: Ensure Accessibility Requirements are met

Key principles across all patterns:

  1. Component Design

    • Static by default (Astro)
    • Interactive when needed (SolidJS)
    • Clear component boundaries
    • Proper error handling
  2. Data Management

    • Server-first approach
    • Colocated queries
    • Type safety
    • Error handling
  3. Testing

    • Colocated tests
    • Multiple testing types
    • Accessibility checks
    • Clear test organization
  4. Accessibility

    • WCAG 2.1 AA compliance
    • Semantic HTML
    • Keyboard navigation
    • Screen reader support

Each documentation page includes navigation aids to help you follow the recommended learning path:

  1. Header Section

    • Current section and page title
    • Prerequisites for the current page
  2. Footer Section

    • Links to previous and next pages in the learning path
    • Quick access to help resources

The navigation is automatically maintained using scripts in the docs/scripts directory:

Terminal window
# To update navigation across all documentation files:
cd docs/scripts
node add-navigation.js
  • 🆘 Issues? Check our Troubleshooting Guide
  • 📏 Standards? Review Code Conventions
  • 🎨 Components? Browse Storybook (when running locally)
  • 💬 Questions? Ask in #lp-frontend Slack channel
  • 👥 Complex problems? Request a pairing session

When adding to this documentation:

  1. Follow the established format
  2. Include real code examples
  3. Explain “Why This Pattern?”
  4. Add to this index when needed

Review existing guides in this documentation for examples of these principles in practice.