DashForDevsDocs
DocsNewsAPI v1
dashfordevs.comSign in

© 2026 DashForDevs

DocsNewsdashfordevs.comLegalStatus
DocsStorefront ArchitectureServer vs Client
Introduction
Getting Started
Authentication
Products
Categories
Cart
Checkout
Blog
Reviews
Webhooks
Customers
Orders
Inventory
Shipping
Discounts
Affiliates
Email
Media & Files
Analytics & Tracking
Locations
Tax
Global Data
SEO
Error Handling
Geography
Finance
Automations
Page Types
Surveys
Billing & Subscriptions
Storefront Payments
SDK Reference
REST API
Storefront Architecture
Project StructureServer vs ClientData FetchingCaching StrategiesSEO Best PracticesPerformanceCategory URL Structure
Notifications
Security
Team & Permissions
Migrations & Import
Calendar & Appointments
Contact Forms
AI Bots
Dashboard API
Deployment
Changelog
Troubleshooting
Recipes
CLI & Deployment
Image Pipeline
White-label Platforms
Records Engine
Platform Modules
Platform Security
Site Keys & Client Sites
Use Cases
Operations

Server vs Client

When to use server components vs client components.

Updated March 29, 2026

On this page
  • Server Components
  • Client Components
  • Rule of Thumb
  • Next Steps

Server Components

Use for: product pages, category pages, blog posts, layouts, SEO metadata.

typescript
// app/products/page.tsx — Server Component (default in Next.js App Router)
import dash from "@/lib/dash"

export default async function Products() {
  const { products } = await dash.products.list()
  return products.map(p => <ProductCard key={p.id} product={p} />)
}

Client Components

Use for: cart operations, authentication, form submissions, real-time UI.

typescript
"use client"
import dash from "@/lib/dash"

export function AddToCart({ productId, sizeId }) {
  const handleAdd = async () => {
    await dash.cart.add({ productId, sizeId, quantity: 1 })
  }
  return <button onClick={handleAdd}>Add to Cart</button>
}

Rule of Thumb

FeatureComponent TypeWhy
Product listingServerSEO, fast initial load
Variation pickerClientInteractive state
Cart drawerClientReal-time updates
Blog postServerSEO, static content
Login formClientForm state, auth flow
FooterServerStatic, uses global data

Next Steps

  • Data Fetching — Advanced patterns
  • Common Patterns — Best practices
PreviousProject StructureNextData Fetching

On this page

  • Server Components
  • Client Components
  • Rule of Thumb
  • Next Steps