Short version: If your customers are global, US-based, or you want the broadest payment-method coverage, already (Stripe, Vercel, PostHog) is the right choice. If your customers are Swiss or European and care where their data sits — or you need TWINT, CHF billing, and a built-in nFADP register — Already CH is the right choice. Same code quality, same module set. Different jurisdiction.
Stack comparison
| Layer | already (US) | Already CH (CH 🇨🇭) |
|---|---|---|
| Infrastructure | ||
| Hosting | Vercel (US) | Exoscale + Coolify (CH/EU) |
| Database | Supabase Cloud (US/EU) | Supabase self-hosted on Exoscale (CH) |
| Redis / rate limits | Upstash (US) | Exoscale Redis (CH) |
| CDN / edge | Vercel Edge (global) | Caddy + Exoscale (EU edge) |
| Billing | ||
| Payment processor | Stripe (US) | Payrexx (CH) |
| Default currency | USD | CHF |
| TWINT | — | ✓ |
| PostFinance | — | ✓ |
| Swiss VAT (8.1%) pre-wired | — | ✓ |
| Apple Pay / Google Pay | ✓ (Stripe) | ✓ (Payrexx) |
| Email + Auth | ||
| Transactional email | Resend (US) | Infomaniak SMTP (CH) |
| Supabase Auth | ✓ | ✓ |
| TOTP + Passkeys | ✓ | ✓ |
| Org-wide MFA mandate | ✓ | ✓ |
| Observability + Analytics | ||
| Analytics | PostHog (US) | Matomo self-hosted (CH) |
| Cookie-free analytics mode | — | ✓ (no consent banner) |
| Error tracking | Sentry (US) | GlitchTip self-hosted (CH) |
| Feature flags | PostHog flags (US) | Unleash self-hosted (CH) |
| Bot protection | Vercel BotID (US) | Friendly Captcha (DE) |
| AI integration | ||
| Primary AI provider | Anthropic / OpenAI (US) | Mistral AI (FR) |
| US fallbacks (optional) | ✓ default | ✓ opt-in |
| Compliance | ||
| nFADP data register UI | — | ✓ /admin/data-register |
| GDPR export + deletion endpoints | ✓ | ✓ |
| No US sub-processors (default) | — | ✓ (GitHub aside, for delivery) |
| Pre-written privacy policy | US/GDPR | nFADP + GDPR |
| Module count + pricing | ||
| Modules | 16 | 16 |
| Solo | USD 199 | CHF 199 |
| Team | USD 399 | CHF 399 |
| Enterprise add-on | USD 299 | CHF 299 |
| Student | USD 99 | CHF 99 |
Data residency
already (US)
Data lives wherever the underlying SaaS providers put it: Supabase Cloud picks a US or EU region per project; Vercel functions run on global edge; Stripe holds card data in the US; PostHog can be EU-hosted but defaults to US. For most SaaS buyers worldwide this is fine.
Already CH CH 🇨🇭
Every default service is Swiss or European. Supabase runs on Exoscale in Geneva or Zurich. Email goes through Infomaniak. Payments through Payrexx in Thun. Analytics on Matomo on your own Exoscale VM. If you ever need to prove to a Swiss customer where their bytes live, you can — with a screenshot.
Payment methods
already (US)
Stripe gives you the broadest global card network coverage, Klarna, Afterpay, and several European wallets via Stripe's local payment methods. No TWINT. No PostFinance.
Already CH + TWINT
Payrexx ships TWINT (the dominant Swiss mobile payment), PostFinance, Swiss credit cards, plus the usual Visa/Mastercard/AmEx and Apple Pay / Google Pay. Approximately 60% of Swiss SaaS customers expect TWINT at checkout. With Already CH you have it on day one.
Compliance
already (US)
Ships GDPR-compliant data export and deletion endpoints. Privacy policy template assumes US Merchant of Record (Polar.sh). Good enough for the global market — needs Swiss-specific work if you sell in CH.
Already CH nFADP
Ships an admin-panel nFADP data register at /admin/data-register, pre-aligned to Art. 12. Privacy policy template references nFADP Art. 19 (information obligation) and Art. 25 (right of access). Matomo runs cookie-free so no consent banner is needed. Designed to pass a Swiss DPO's audit without rewrites.
Pricing in CHF
If you're invoicing Swiss B2B customers, charging in USD via Stripe creates friction: customers get FX losses, Stripe charges currency conversion, and your accountant has to convert again for the Swiss VAT return. Payrexx settles in CHF directly into a Swiss bank account, with Swiss VAT pre-calculated at 8.1% in config/billing.ts.
Who should use what
Use already (US) when
- Your customers are global or US-based
- You're a global SaaS not selling primarily in CH/EU
- You want Stripe's specific feature set (e.g. Connect, Issuing)
- Vercel's deploy-from-git workflow matters to you
- You prefer Anthropic or OpenAI as default AI provider
- You don't have EU/CH data-residency obligations
Use Already CH when
- Your customers are Swiss or German-speaking and expect TWINT
- You need to prove data stays in Switzerland or the EU
- nFADP audit risk is a real concern
- You're a Swiss commercial entity needing 8.1% VAT pre-wired
- You want to avoid US sub-processors as a matter of principle
- Mistral AI as primary provider works for you
Can I switch later?
Yes. The codebases are siblings: same Next.js, same Supabase, same Drizzle, same shadcn/ui. Switching from already (US) to Already CH (or back) is a matter of swapping a handful of integrations — Stripe ↔ Payrexx, Resend ↔ Infomaniak, PostHog ↔ Matomo. The application code, routes, components, and database schema are unchanged.
The honest comparison
Already CH is not a "better" already. It's a sibling product for a different customer base. If you're building global SaaS, already is the correct choice — the US-stack defaults have the widest reach and the best documentation. If you're building for Switzerland or the EU and your customers care where their data lives, Already CH removes a week of integration work and a year of compliance uncertainty.
Same shop, same author, same code quality. Pick the stack your customers expect.