O nome técnico para o que você está buscando é "tenant-specific subdomains" uma das features da arquitetura multi-tenant. Além de processos lógicos, esse tipo de arquitetura vem acompanhada de uma boa estrutura de modelagem de dados para individualizar os usuários/empresas. Eu diria que a aplicação exige um médio/alto esforço técnico a depender da linguagem e libs que você utiliza. Minhas recomendações:
- Software as a Service: Uma Arquitetura de Dados de um Sistema Multi-Tenant para Uso Comercial por Mário Santos Sousa e Guilherme Esmeraldo (Livro);
- Building Multi-Tenant Saas Architectures: Principles, Practices and Patterns Using Aws por Tod Golding (Livro);
- Building Multi Tenant Applications with Django (English Edition) por Shabda Raaj (E-Book).
Alguns artigos bem introdutórios que não representam a complexidade desse sistema:
- How to Design Tenant-Specific Subdomains in Your SaaS Application;
- Step by step: Multi-Tenant App with Next.js;
- How to Build a Multi-Tenant App with Custom Domains Using Next.js.
Já trabalhei com multi-tenant e alguns insights que posso compartilhar:
- Toda a modelagem de dados deve ser orientada a tenant, e a tenant deve ser proprietária do perfil do usuário;
- Você tem que configurar o DNS, o certificado SSL e o nGINX para subdomínios curingas;
- Geralmente você tem que ter uma plataforma intermediária (um proxy) que trata aquele subdomínio e já passa para os demais sistema, o perfil do usuário direto;
- Você pode fazer de forma monolita, mas é preferível com micro-serviços.