A modern, high-performance React application starter with Next.js 15, React 19, Tailwind CSS v4, and advanced WebGL capabilities. SatΕ«s means "start" or "beginning" in Latin, serving as a foundation for new projects.
Note: This README is for developers working on the SatΕ«s template. For client/team handoff documentation, see PROD-README.md (replace this README in production projects).
# Install dependencies
bun install
# Create .env.local (see Environment Variables below)
# touch .env.local
# Start development server with Turbopack
bun dev
# Build for production
bun build
# Start production server
bun start- Next.js - React framework with App Router and Turbopack
 - React 19.2.0 - Latest React with 
<Activity />,useEffectEvent, andcacheSignal - TypeScript - Type-safe development
 - Tailwind CSS - CSS-first configuration
 - React Three Fiber - React renderer for Three.js
 - GSAP - Timeline-based animations
 - Biome - Fast formatter and linter
 - Bun - All-in-one JavaScript runtime
 
Manages off-screen component visibility and defers updates for better performance:
import { Activity } from 'react'
<Activity mode={isVisible ? 'visible' : 'hidden'}>
  <ExpensiveComponent />
</Activity>Use Cases: Tab systems, accordions, off-screen WebGL scenes
Separates event logic from effect dependencies to prevent unnecessary re-runs:
import { useEffect, useEffectEvent } from 'react'
const onConnected = useEffectEvent(() => {
  showNotification('Connected!', theme) // Theme changes won't trigger reconnect
})
useEffect(() => {
  // Only reconnect when url changes
}, [url])Provides automatic request cleanup when cache scope expires:
import { cacheSignal } from 'react'
async function fetchUserData(id: string) {
  const signal = cacheSignal() // Auto-aborts on cache expiry
  const response = await fetch(`/api/users/${id}`, { signal })
  return response.json()
}satus/
βββ app/                    # Next.js App Router pages and layouts
βββ components/             # Reusable UI components
βββ hooks/                  # Custom React hooks
βββ integrations/           # Third-party service integrations
β   βββ hubspot/           # HubSpot forms integration
β   βββ shopify/           # E-commerce functionality
β   βββ sanity/            # Headless CMS
βββ libs/                   # Utility functions and helpers
βββ orchestra/              # Debug and development tools
β   βββ grid/              # Grid overlay
β   βββ minimap/           # Page minimap
β   βββ stats/             # Performance stats
β   βββ theatre/           # Animation tools
βββ styles/                 # Global styles and configuration
βββ webgl/                  # 3D graphics and WebGL components
βββ public/                 # Static assets
- Turbopack for lightning-fast HMR in development
 - React Server Components by default
 - React 19.2 
<Activity />for off-screen component optimization - Dynamic imports for code splitting
 - Image optimization with a custom thin wrapper around Next.js Image
 - Font optimization with Next.js Font
 
- Tailwind CSS v4 with CSS-first configuration
 - CSS Modules for component styles
 - Custom viewport units (
mobile-vw,desktop-vw) - Theme support with CSS variables
 
- WebGL/Three.js integration with React Three Fiber
 - Post-processing effects pipeline
 - Shader support with GLSL
 - Theatre.js for animation debugging
 - Optimized 3D performance
 
- TypeScript with strict mode
 - Biome for consistent code style
 - Hot Module Replacement with Turbopack
 - React 19.2 Performance Tracks in Chrome DevTools
 - Git hooks with Lefthook
 - Debug tools accessible with 
CMD+O 
- Sanity - Headless CMS with visual editing
 - Shopify - E-commerce with cart functionality
 - HubSpot - Forms and marketing automation
 
Check which integrations are configured:
bun validate:env              # Check environment setup
bun cleanup:integrations      # List unused integrationsRemove unused integrations to reduce bundle size (~250-400KB potential savings). See Integrations Documentation for detailed removal instructions.
Components use CSS modules with the s import convention:
import s from './component.module.css'
function Component() {
  return <div className={s.wrapper} />
}Custom viewport functions for responsive sizing:
.element {
  width: mobile-vw(150);    /* 150px at mobile viewport */
  height: desktop-vh(100);  /* 100px at desktop viewport */
}CSS variables for consistent theming:
.element {
  color: var(--color-text);
  background-color: var(--color-background);
}- Theatre.js Studio - Visual animation editor
 - FPS Meter - Performance monitoring
 - Grid Overlay - Layout debugging
 - Minimap - Page overview
 
# Development
bun dev                     # Start dev server with Turbopack
bun build                   # Production build
bun start                   # Start production server
# Code Quality
bun lint                    # Run Biome linter
bun lint:fix                # Fix linting issues
bun typecheck               # TypeScript validation
# Utilities
bun setup:styles            # Generate style files
bun validate:env            # Check environment variables
bun cleanup:integrations    # List unused integrations
bun analyze                 # Bundle analysisCreate a .env.local file with:
# Sanity CMS
NEXT_PUBLIC_SANITY_PROJECT_ID="your-project-id"
NEXT_PUBLIC_SANITY_DATASET="production"
NEXT_PUBLIC_SANITY_STUDIO_URL="http://localhost:3000/studio"
SANITY_API_WRITE_TOKEN="your-write-token"
# Shopify
SHOPIFY_STORE_DOMAIN="your-store.myshopify.com"
SHOPIFY_STOREFRONT_ACCESS_TOKEN="your-storefront-token"
SHOPIFY_REVALIDATION_SECRET="your-random-secret"
# HubSpot
HUBSPOT_ACCESS_TOKEN="your-access-token"
NEXT_PUBLIC_HUBSPOT_PORTAL_ID="your-portal-id"
# App Base URL
NEXT_PUBLIC_BASE_URL="http://localhost:3000"- App - Next.js structure and routing
 - Integrations - Third-party integrations
 - Components - UI components
 - Hooks - Custom React hooks
 - Libs - Utility libraries
 - Styles - Styling system
- Scripts - Style generation
 
 - WebGL - 3D graphics
 - Orchestra - Debug tools
 
Deploy to Vercel (recommended):
vercel- Environment variables configured
 - Sanity webhooks set up
 - GSAP license valid (if using premium)
 - SSL certificates configured
 - Performance metrics validated
 
Supports any Next.js-compatible platform: Vercel, Netlify, AWS Amplify, Google Cloud Run, or self-hosted.
Images & Links
- β
 Always use 
~/components/link(auto-detects external, smart prefetch) - β
 Always use 
~/components/imagefor DOM (nevernext/image) - β
 Use 
~/webgl/components/imagein WebGL contexts 
GSAP & Animation
- Add 
<GSAPRuntime />inapp/layout.tsxfor ScrollTrigger + Lenis - No manual ticker setup needed
 
Sanity
- Requires draft mode routes: 
/api/draft-mode/enableand/api/draft-mode/disable - Must set 
NEXT_PUBLIC_BASE_URLfor preview resolution 
Orchestra
- Toggle debug tools with 
Cmd/Ctrl + O - State persists in 
localStorageand syncs across tabs - Automatically excluded from production builds
 
Shopify
- Use exact env var names: 
SHOPIFY_STORE_DOMAIN,SHOPIFY_STOREFRONT_ACCESS_TOKEN 
- Fork the repository
 - Create your feature branch (
git checkout -b feature/fix-everything) - Commit your changes (
git commit -m 'Add fix everything feature') - Push to the branch (
git push origin feature/fix-everything) - Open a Pull Request
 
This project is licensed under the MIT License - see the LICENSE file for details.
- Built by darkroom.engineering
 - Inspired by modern web development best practices
 - Community contributions and feedback
 
