Architecture

Multi-tenant CRM, explained

Ayidhu CRM is built multi-tenant from the ground up — one edge-deployed application serving every customer, with each organization's data strictly isolated from the rest.

Multi-tenant

One app, many isolated tenants

A single application and database serve every customer ("tenant"). Every table and every query is scoped by a tenant identifier, so one organization can never read or write another's records — even though the underlying infrastructure is shared. Updates, security patches, and new features ship to everyone at once.

Single-tenant

One dedicated instance per customer

Each customer gets their own copy of the application and database, physically separate from every other customer's. Isolation comes from separation rather than application logic, but every customer's instance has to be provisioned, patched, and scaled independently — which costs more and moves slower.

How Ayidhu CRM enforces tenant isolation

Every query is tenant-scoped

Every table carries a tenant_id column, and every read or write is filtered by it in the route handler — there is no code path that queries across tenants.

Edge-deployed globally

The application runs on Cloudflare Workers and is served from Cloudflare’s global edge network, so requests are handled close to your users rather than one central region.

Enterprise-grade options

Organizations with 20+ users can add SSO/SAML, audit logs, and custom data retention on top of the same tenant-isolated architecture.

Frequently asked questions

What does "multi-tenant" mean for a CRM?

A multi-tenant CRM runs one application and one codebase that serves many separate organizations ("tenants") at once, while keeping each tenant’s data isolated from every other tenant. The alternative — single-tenant — gives each customer their own dedicated copy of the app and database, which costs more to run and is slower to update.

How does Ayidhu CRM isolate my data from other tenants?

Every record in Ayidhu CRM carries a tenant_id, and every database query is scoped by it — enforced at the route-handler level for every read and write, on every module. Your organization only ever sees rows tagged with your tenant_id, regardless of what other organizations store on the same infrastructure.

Does multi-tenancy mean my data is slower or less secure than a dedicated instance?

No — Ayidhu CRM runs on Cloudflare’s global edge network, so requests are served from a location near your users rather than a single, centralized server. Enterprise plans (20+ users) can add SSO/SAML, audit logs, and custom data retention on top of the same tenant-isolated architecture.

Can I get a dedicated, single-tenant deployment instead?

Most teams don’t need to — tenant isolation is enforced in the application layer, not by physical separation, so there’s no security tradeoff for staying multi-tenant. If your organization has a specific compliance requirement for dedicated infrastructure, contact [email protected] to discuss Enterprise options.

See it running on your own data

14-day free trial. No credit card required.