A community-driven platform helping users switch from non-EU digital services to EU alternatives through clear, step-by-step migration guides.
9
stars
494
commits
TypeScript
primary language
Jun 1, 2026
updated
A community-driven platform helping users switch from non-EU digital services to EU alternatives through clear, step-by-step migration guides.
Live Site: switch-to.eu
Switch-to.eu empowers users to regain digital sovereignty by providing:
This is a pnpm workspace monorepo orchestrated by Turborepo.
apps/
website/ # Main switch-to.eu site
keepfocus/ # Pomodoro timer app
plotty/ # Privacy-focused poll/voting app (tRPC + Redis)
listy/ # Collaborative list/ranking tool (tRPC + Redis)
website-tool/ # Website analyzer tool
packages/
ui/ # Shared UI components (shadcn/ui, Radix primitives)
i18n/ # Shared i18n (next-intl v4, locales: en, nl)
blocks/ # Page-level shared components (Header, Footer)
content/ # Content system (Markdown, Zod schemas, Fuse.js search)
trpc/ # Shared tRPC v11 infrastructure
db/ # Shared database utilities (Redis)
eslint-config/ # Shared ESLint 9 flat configs
typescript-config/ # Shared tsconfig bases
All internal packages use the @switch-to-eu/ scope.
# Clone the repository (with content submodule)
git clone https://github.com/switch-to-eu/switch-to.eu.git
cd switch-to.eu
git submodule update --init
# Install dependencies
pnpm install
# Start all dev servers
pnpm dev
# Or run a specific app
pnpm --filter website dev
pnpm --filter @switch-to-eu/keepfocus dev
pnpm --filter @switch-to-eu/plotty dev
pnpm build # Build all apps/packages
pnpm lint # Lint all apps/packages
# E2E smoke tests
pnpm --filter website test:e2e
# Unit tests (keepfocus)
pnpm --filter @switch-to-eu/keepfocus test
We welcome contributions! See our Contribution Guidelines for details.
TypeScript
98.6%
A community-driven platform helping users switch from non-EU digital services to EU alternatives through clear, step-by-step migration guides.
9
stars
494
commits
TypeScript
primary language
Jun 1, 2026
updated
A community-driven platform helping users switch from non-EU digital services to EU alternatives through clear, step-by-step migration guides.
Live Site: switch-to.eu
Switch-to.eu empowers users to regain digital sovereignty by providing:
This is a pnpm workspace monorepo orchestrated by Turborepo.
apps/
website/ # Main switch-to.eu site
keepfocus/ # Pomodoro timer app
plotty/ # Privacy-focused poll/voting app (tRPC + Redis)
listy/ # Collaborative list/ranking tool (tRPC + Redis)
website-tool/ # Website analyzer tool
packages/
ui/ # Shared UI components (shadcn/ui, Radix primitives)
i18n/ # Shared i18n (next-intl v4, locales: en, nl)
blocks/ # Page-level shared components (Header, Footer)
content/ # Content system (Markdown, Zod schemas, Fuse.js search)
trpc/ # Shared tRPC v11 infrastructure
db/ # Shared database utilities (Redis)
eslint-config/ # Shared ESLint 9 flat configs
typescript-config/ # Shared tsconfig bases
All internal packages use the @switch-to-eu/ scope.
# Clone the repository (with content submodule)
git clone https://github.com/switch-to-eu/switch-to.eu.git
cd switch-to.eu
git submodule update --init
# Install dependencies
pnpm install
# Start all dev servers
pnpm dev
# Or run a specific app
pnpm --filter website dev
pnpm --filter @switch-to-eu/keepfocus dev
pnpm --filter @switch-to-eu/plotty dev
pnpm build # Build all apps/packages
pnpm lint # Lint all apps/packages
# E2E smoke tests
pnpm --filter website test:e2e
# Unit tests (keepfocus)
pnpm --filter @switch-to-eu/keepfocus test
We welcome contributions! See our Contribution Guidelines for details.
TypeScript
98.6%