Example monorepo to use Apollo Federation in a Turborepo codebase.
See the docs, for list of features, guides, explanations.
Made with love by Fabien Roy.
apps/web: Next.js web app
services/api-gateway: GraphQL Apollo gateway for producing supergraphservices/reviews: GraphQL Apollo server for reviews serviceservices/contents: GraphQL Apollo server for reviews service
packages/theme: Theme definitionpackages/db/contents: Prisma client and models definitions for contents datapackages/db/reviews: Prisma client and models definitions for reviews datapackages/web/ui: React components for web apppackages/web/forms: React form-specific components for forms apppackages/web/locales: Locale translations for web apppackages/web/storage: Storage utilities for web apppackages/config/eslint/: Shared eslint configpackages/confgi/stylelint: Shared stylelint configpackages/config/tsconfig: Shared tsconfig
pnpm installpnpm prepare# Copy env file
pnpm env:local
# Run databases
docker compose up
# Generate Prisma client
pnpm db:generate
# Apply migrations
pnpm db:migrate:dev
# If wanted, generate example data
pnpm db:seedBe sure that services and API Gateway are running first!
pnpm web:generatepnpm dev
# Running a single app and its deps
pnpm dev:web
pnpm dev:mobilepnpm dev
pnpm dev:services
# Run after services
pnpm dev:apiStorybook will be running on http://localhost:6006;
pnpm storybook:webStorybook will be running on Expo Go.
pnpm storybook:mobilepnpm buildpnpm lint
# To fix lint
pnpm lint:fix
# For file names
pnpm lint:ls
# To only apply to root
pnpm lint:root
pnpm lint:root:fix
# Fix lint on staged files
pnpm lint:stagedpnpm format
# To fix format
pnpm format:fixpnpm yeet