
multi-tenant-platform-architecture
Provides architecture guidance for multi-tenant platforms on Cloudflare or Vercel. Use when defining domain strategy, tenant identification, isolation, routing, custom domains, and plan/limit mapping.
- Installs
- 85
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/mblode/agent-skills --skill multi-tenant-platform-architecture- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads multi-tenant-platform-architecture automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Multi-Tenant Platform Architecture (Cloudflare · Vercel)
Workflow (order matters)
- Choose platform
- Cloudflare: Workers for Platforms + dispatch namespaces for per-tenant code isolation; best when tenants run untrusted code or you need edge-first compute with D1/KV/DO primitives.
- Vercel: Next.js App Router + Middleware for shared-app multi-tenancy; best when tenants share one codebase and you need ISR, React Server Components, and managed deployment.
- Pick one; do not mix hosting. The remaining steps apply to both with platform-specific guidance in reference files.
- After choosing, load only the references for that platform unless you are explicitly comparing Cloudflare vs Vercel.
- Choose domain strategy
- Use a dedicated tenant domain (separate from the brand domain) for all subdomains/custom hostnames. Reputation does not isolate; a phishing site on
random.acme.comdamages the whole domain. - Register a separate TLD for tenant workloads (e.g.
acme.appfor tenants,acme.comfor brand). - Consider PSL for browser cookie isolation; it does not protect reputation. See psl.md.
- Start PSL submission early; review can take weeks.
- Choose tenant identification strategy
- Subdomain-based:
tenant.yourdomain.com. Requires wildcard DNS. Simplest for many tenants. - Custom domain: Tenant brings own domain, CNAMEs to your platform. Best for serious/paying tenants.
- Path-based:
yourdomain.com/tenant-slug. No DNS/SSL per tenant, but limits branding and complicates cookie isolation. - Pick one primary strategy; offer custom domain as an upgrade path.
- Define isolation model
- Cloudflare: Prefer per-tenant Workers for untrusted code (Workers for Platforms dispatch namespaces). Avoid shared-tenant branching unless you fully control code and data.
- Vercel: Single shared Next.js app with
tenant_idscoping. Middleware resolves tenant from hostname; all data queries include tenant context. Use Postgres RLS for defence-in-depth.
- Route traffic deterministically
- Cloudflare: Platform Worker owns routing; hostname -> tenant id -> dispatch namespace -> tenant Worker. 404 when no mapping exists.
- Vercel: Next.js Middleware extracts hostname, rewrites URL to
/domains/[domain]dynamic segment. Edge Config for sub-millisecond tenant lookups. 404 when no mapping exists. - Tenants never control routing or see each other on either platform.
- Pass tenant context through the stack
- Cloudflare: Platform Worker resolves tenant and injects headers or bindings before dispatching to tenant Worker.
- Vercel: Middleware sets
x-tenant-id,x-tenant-slug,x-tenant-planon forwarded request headers. Server Components read viaheaders(); API routes read from request headers. - Middleware/platform Worker is the single authority; never trust client-supplied tenant identity.
- Bind only what is needed
- Cloudflare: Least-privilege bindings per tenant (DB/storage/limited platform API), no shared global state. Treat new bindings as explicit changes; redeploy to grant access.
- Vercel: Edge Config for tenant config (domain mappings, feature flags, plan info). Vercel SDK (
@vercel/sdk) for domain management. Database connection scoped bytenant_idor database-per-tenant (Neon).
- Support custom domains
- Provide DNS target, verify ownership, store mapping, and route by hostname.
- Cloudflare: Cloudflare for SaaS custom hostnames + managed certs. See cloudflare-platform.md.
- Vercel: Vercel Domains API via
@vercel/sdkfor programmatic domain CRUD + automatic Let's Encrypt SSL. Wildcard subdomains require Vercel nameservers. See vercel-domains.md. - Custom domains shift reputation to the tenant and create natural user segments (casual on platform domain, serious on own domain).
- Serve per-tenant static files
robots.txt,sitemap.xml,llms.txtmust vary by tenant; do not serve from/public.- Cloudflare: Generate per-tenant responses in the tenant Worker.
- Vercel: Use route handlers per domain segment. See vercel-platform.md.
- Surface limits as plans
- Map platform limits to pricing tiers; expose in API + UI.
- Do not run long jobs in requests; use queues/workflows.
- See limits-and-quotas.md for limits snapshots and source links.
- Re-check limits in official docs before final architecture or pricing decisions.
- Make the API the product
- Everything works over HTTP; UI is for ops/incident/billing.
- Platform logic stays in the routing layer (dispatch Worker or Middleware); tenant content serves requests.
- If it only works in the UI, the platform is leaking.
- Extend without breaking boundaries
- Add queues/workflows/containers as optional modes.
- Keep routing explicit and isolation intact.
Deliverables
- Platform choice rationale: Cloudflare vs Vercel with justification
- Tenant identification strategy: subdomain, custom domain, or path-based
- Domain map: brand vs tenant domain, PSL plan, custom domain flow
- Isolation plan: per-tenant Workers or shared-app with tenant scoping
- Routing plan: hostname lookup, dispatch/rewrite logic, fallback behavior
- Tenant context flow: how tenant identity propagates through middleware/headers/DB
- Binding/config matrix: per-tenant capabilities and data access
- Limits-to-pricing map: CPU/memory/request/domain budgets per tier
- API surface + ops UI scope
References to load
- Always load PSL submission and cookie isolation guidance: psl.md
- If platform is Cloudflare, load platform primitives and routing: cloudflare-platform.md
- If platform is Vercel, load platform primitives and routing: vercel-platform.md
- If platform is Vercel, load domain management and SSL: vercel-domains.md
- Load platform limits and plan mapping last: limits-and-quotas.md
Pre-commit checklist
- Platform chosen with clear rationale documented
- Tenant workloads off the brand domain; PSL decision + timeline set
- Tenant identification strategy chosen; custom domain upgrade path defined
- Isolation model defined: per-tenant Workers (Cloudflare) or shared-app + RLS (Vercel)
- Routing authoritative and tenant-blind; dispatch or middleware handles all traffic
- Tenant context flows through middleware/platform Worker only; no client-supplied identity trusted
- Custom domain onboarding defined with DNS target, verification, and cert provisioning
- Per-tenant static files (robots.txt, sitemap.xml) served dynamically
- Limits tied to billing; API parity with UI
- Limits snapshot refreshed from official docs and dated in planning notes
FAQ
What does the multi-tenant-platform-architecture skill do?
Provides architecture guidance for multi-tenant platforms on Cloudflare or Vercel. Use when defining domain strategy, tenant identification, isolation, routing, custom domains, and plan/limit mapping.
How do I install multi-tenant-platform-architecture?
Run npx skills add https://github.com/mblode/agent-skills --skill multi-tenant-platform-architecture in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/multi-tenant-platform-architecture/ (personal) or .claude/skills/multi-tenant-platform-architecture/ (project).
Which AI agents can use multi-tenant-platform-architecture?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is multi-tenant-platform-architecture safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains multi-tenant-platform-architecture?
It is published by mblode in mblode/agent-skills. It has 85 recorded installs.
More from mblode/agent-skills
ui-animation
mblode/agent-skills
Builds, reviews, and measures UI motion, including springs, gestures, scroll effects, curve fitting from recordings, and sparse interface sound. Use when asked to "add animation", "match this easing", "reverse engineer this motion", "add a click sound", or find animation opportunities.
multi-tenant-architecture
mblode/agent-skills
Designs tenant isolation, hostname routing, custom-domain lifecycle, and plan limits on Cloudflare or Vercel. Use when asked to "isolate tenant data", "support custom domains", "build a white-label platform", or assess PSL registration. For general module structure use codebase-architecture; for SEO content use seo.
ui-design
mblode/agent-skills
Designs and builds React/Next/Tailwind UI, audits visual and interaction defects, and stress-tests components with worst-case data. Use when asked to "build a landing page", "extract our design system", "add dark mode", "make this responsive", "remove UI slop", "audit this component", "stress-test this component", "break this UI", or "show me the worst case".
typography-audit
mblode/agent-skills
Audits font loading, type scales, measure, spacing, OpenType, and rendered punctuation with 78 scoped rules. Use when asked to "audit typography", "fix the fonts", or "review my type system". For a new visual direction use ui-design Direction; for general UI defects use ui-design Audit.
agent-skills-creator
mblode/agent-skills
Creates and improves portable Agent Skills with a validator, routing scenarios, and evidence-based keep, cut, merge, or retire decisions. Use when asked to "write a skill", "update all skills", "audit my SKILL.md", "remove redundant instructions", or fix skill triggering.
docs-writing
mblode/agent-skills
Writes and audits technical docs with Diataxis type gating, runnable examples, and 51 documentation rules. Use when asked to "review my docs", "write an API reference", or improve a documentation page. For a whole README use readme-creator; for agent instructions use agents-md.
Popular code quality & workflow skills
grill-me
mattpocock/skills
A relentless interview to sharpen a plan or design.
improve-codebase-architecture
mattpocock/skills
Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.
handoff
mattpocock/skills
Compact the current conversation into a handoff document for another agent to pick up.
domain-modeling
mattpocock/skills
Build and sharpen a project's domain model. Use when discussing codebase terminology, writing or editing a GLOSSARY.md, or recording or editing an ADR.
codebase-design
mattpocock/skills
Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.
diagnosing-bugs
mattpocock/skills
Diagnosis loop for hard bugs and performance regressions. Use when the user says "diagnose"/"debug this", or reports something broken/throwing/failing/slow.