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 install
pnpm 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:seed
Be sure that services and API Gateway are running first!
pnpm web:generate
pnpm dev
# Running a single app and its deps
pnpm dev:web
pnpm dev:mobile
pnpm dev
pnpm dev:services
# Run after services
pnpm dev:api
Storybook will be running on http://localhost:6006;
pnpm storybook:web
Storybook will be running on Expo Go.
pnpm storybook:mobile
pnpm build
pnpm 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:staged
pnpm format
# To fix format
pnpm format:fix
pnpm yeet