fayzfayz sdk

O que é o Fayz

O Fayz é uma fábrica de SaaS. Em vez de escrever um produto multi-tenant do zero — autenticação, banco, isolamento por cliente, telas de CRUD, cobrança — você compõe plugins de capacidade sobre um motor compartilhado. Um salão, um restaurante e uma clínica são o mesmo motor com plugins diferentes ligados. O que muda entre um produto e outro é uma composição — config + plugins + tema — não uma base de código nova.

A ideia central: um app Fayz não bifurca a SDK. Ele fica sobre uma fronteira de propriedade estrita, então uma melhoria na SDK atravessa todos os apps como uma migração, não milhares de PRs. Você personaliza de um rótulo até uma página inteiramente sob medida sem nunca ejetar.

As quatro peças

Guarde estas quatro e o resto encaixa:

  • SDK — os pacotes @fayz-ai/*. O motor headless (@fayz-ai/core) define o contrato de plugin, o modelo de dados e o runtime; a camada SaaS (@fayz-ai/saas) traz multi-tenancy, permissões e o motor de CRUD; a UI (@fayz-ai/ui) traz o shell e os componentes. Você instala só o que usa.
  • Plugins — pacotes @fayz-ai/plugin-* que declaram capacidades: agenda, CRM, financeiro, menu, cursos, estoque. Cada plugin traz suas rotas, sua navegação, seus widgets e suas migrações de banco. Você liga os que precisa.
  • Supabase — o backend real por trás do app: Postgres com RLS multi-tenant, provisionado a partir dos pacotes que você instalou. Todo app nasce em modo mock (zero configuração) e você troca para Supabase quando estiver pronto.
  • Deploy — o app é um projeto web comum. Hoje você publica como site estático em qualquer host; amanhã, direto pela plataforma Fayz gerenciada.

O modelo mental

Um app Fayz se descreve como dados. Você declara a config, liga plugins, e isso vira um manifesto — a fonte única a partir da qual o runtime monta telas, rotas e acesso a dados:

  config do app
       │  (nome, tema, locale, backend, quais plugins)
       ▼
  plugins ligados ─────────────┐
   agenda · crm · financeiro …  │  cada um declara
                                │  rotas + navegação + widgets + migrações
       ▼                        ▼
  manifesto  ────────────────────────────────►  runtime
   (o app inteiro como dados)                     │
                                                  ├─► telas  (shell + páginas dos plugins)
                                                  ├─► rotas  (navegação gerada)
                                                  └─► dados  (providers → mock ou Supabase)

A mesma direção vale seja você escrevendo a config em JSON (app.manifest.json) ou em código (defineSaas): as duas viram o mesmo manifesto. Personalizar um app é, quase sempre, editar esses dados — não escrever telas novas.

Fayz e Faya Labs

Fayz é a tecnologia — a SDK, os plugins, a CLI. Faya Labs é a comunidade em volta dela: quem constrói produtos reais, compartilha plugins e ajuda quem está começando. Você usa o Fayz; você participa da Faya Labs.

Para quem é

Para o desenvolvedor que quer construir um produto de verdade — um SaaS que vai para produção com clientes pagantes — e não um protótipo descartável. Se você já sabe montar um app web e quer parar de reescrever o mesmo esqueleto multi-tenant a cada projeto, este é o seu lugar.

O Fayz está pré-1.0. Os pacotes são reais e usados no dia a dia, mas as APIs ainda podem mudar entre versões menores. Fixe versões exatas em produção e leia o changelog antes de atualizar. O contrato completo está em Conceitos → canais de versão.

Por onde seguir