Packages Overview
Overview of all reusable packages in the httpjpg monorepo
Packages Overview
The httpjpg monorepo contains 9 reusable packages organized by functionality.
Design System
@httpjpg/ui
React component library with Panda CSS
30+ production-ready components including layouts, typography, media, and interactive elements.
@httpjpg/tokens
Design tokens for consistent styling
Centralized spacing, colors, typography, shadows, and border-radius tokens used across all packages.
Storyblok Integration
@httpjpg/storyblok-sync
Automated CMS synchronization
Sync design tokens to datasources and TypeScript interfaces to component schemas automatically.
@httpjpg/storyblok-ui
Storyblok component implementations
14 Storyblok-compatible components with token mapping and responsive design.
@httpjpg/storyblok-api
Storyblok API client
Type-safe client for Storyblok Content Delivery API with caching and error handling.
@httpjpg/storyblok-richtext
Rich text renderer
Render Storyblok rich text to React components with custom styling.
@httpjpg/storyblok-utils
Storyblok utilities
Helper functions for image processing, link resolution, asset handling, and slug generation.
Features
@httpjpg/now-playing
Spotify integration
Real-time "Now Playing" widget with album art, color extraction, and playback status.
Configuration
@httpjpg/env
Type-safe environment variables
Zod-based environment validation with TypeScript types for all env variables.
@httpjpg/tsconfig
Shared TypeScript configurations
Base TypeScript configs for Next.js apps and React libraries.
Package Dependencies
graph TD
A[apps/web] --> B[@httpjpg/ui]
A --> C[@httpjpg/storyblok-ui]
A --> D[@httpjpg/now-playing]
A --> E[@httpjpg/env]
B --> F[@httpjpg/tokens]
C --> B
C --> G[@httpjpg/storyblok-api]
C --> H[@httpjpg/storyblok-utils]
I[@httpjpg/storyblok-sync] --> F
I --> EInstallation
All packages are automatically installed when you clone the repository:
pnpm installUsing Packages
Import from any package in your app:
// UI Components
import { Button, Section, Container } from '@httpjpg/ui';
// Design Tokens
import { colors, spacing } from '@httpjpg/tokens';
// Storyblok Components
import { SbSection, SbHeadline } from '@httpjpg/storyblok-ui';
// Utilities
import { getStoryblokApi } from '@httpjpg/storyblok-api';Development
Build All Packages
pnpm build:packagesBuild Specific Package
pnpm --filter @httpjpg/ui buildWatch Mode
pnpm --filter @httpjpg/tokens devContributing
When adding a new package:
- Create folder in
/packages/<name> - Add
package.jsonwith workspace dependencies - Add to
pnpm-workspace.yaml - Update this documentation