A sports sponsorship platform connecting athletes with sponsors across multiple action sports disciplines including cycling, BMX, skateboarding, surfing, snowboarding, and motocross.
Kascad is built as a modern monorepo using Turborepo and pnpm workspaces, providing a scalable architecture for managing shared libraries and applications. The platform facilitates partnerships between riders and sponsors through various contract types including UGC, Ambassador, Product Placement, and Affiliation agreements.
apps/playground: Next.js development app for testing and showcasing componentspackages/shared-types: Core TypeScript interfaces and enums defining the platform's domain modelpackages/requester: HTTP client library for API communicationspackages/ui-kit: React component library for consistent UI across applicationspackages/eslint-config: Shared ESLint configurationspackages/prettier-config: Shared code formatting rulespackages/ts-config: Shared TypeScript configurations
- Framework: Next.js 14 with React 18 (App Router)
- Language: TypeScript 5.x with strict configuration
- Build System: Turborepo with pnpm workspaces
- Package Building: Preconstruct for library bundling
- Code Quality: ESLint + Prettier
- Package Registry: GitHub Package Registry
- Node.js >= 18
- pnpm >= 9.4.0
# Clone the repository
git clone <repository-url>
cd kascad-app
# Install dependencies
pnpm install# Start all packages and apps in development mode
pnpm dev
# Start only the playground app
cd apps/playground && pnpm dev
# Develop packages with watch mode
pnpm dev:packages# Build all packages and apps
pnpm build
# Build only packages
pnpm build:packages# Lint all code
pnpm lint
# Format all code
pnpm formatThe platform centers around key entities:
- Riders: Athletes across various sports disciplines
- Sponsors: Brands looking to partner with athletes
- Contracts: Partnership agreements with different types and terms
- Offers: Sponsorship opportunities and proposals
- Sports: Cycling, BMX, Skateboarding, Surfing, Snowboarding, Motocross
- Social Networks: Integration with Instagram, TikTok, YouTube, Strava, and more
The project uses Changesets for version management:
# Create a changeset
pnpm changeset
# Apply version changes
pnpm version
# Publish packages
pnpm release- Packages are built using Preconstruct for optimal bundling
- Development changes are automatically reflected in consuming applications
- The
shared-typespackage serves as the single source of truth for TypeScript definitions - All packages follow consistent configuration patterns
- Create a feature branch
- Make your changes
- Run
pnpm lintandpnpm format - Create a changeset if needed:
pnpm changeset - Submit a pull request
[Add your license information here]