Pular para o conteúdo
supastack
Explorar a documentação

For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /pt/docs/desktop/internals.md (or send Accept: text/markdown).

Por dentro do shell desktop

Página de arranque, portão de navegação, stack de plugins e referência de configuração.

A página de arranque

A janela carrega primeiro a página embebida em apps/desktop/ui: ela lê o __SUPASTACK_APP_URL__ injetado, sonda o backend com um timeout de dez segundos e reencaminha para ele quando alcançável. Um backend inalcançável renderiza um estado Can't reach host com um Retry que também dispara na recuperação da rede, por isso um arranque a frio nunca mostra uma janela em branco. Um parâmetro de query ?target= exercita a página num browser simples.

As funcionalidades nativas são plugins, não IPC

O shell não regista comandos personalizados — cada capacidade nativa chega através de plugins Tauri: single-instance com a feature deep-link (que encaminha argumentos de segundo lançamento no Windows e Linux), deep-link, window-state (só geometria — zoom e canal mantêm os seus próprios sidecars), opener, dialog, process (reinício após update), updater, autostart e global-shortcut, mais a feature tray-icon. Estender o shell significa adicionar um plugin e uma permissão, não fazer fork de UI da webview.

O portão de navegação

A navegação fica para as páginas do shell embebidas, a origem do dev server e a origem exata de app configurada. Links HTTP(S) sem credenciais, mailto: e tel: saem pelo browser do sistema via plugin opener; qualquer outro esquema é cancelado. Um deep link que chega antes de a janela existir fica em buffer no estado gerido e é aplicado assim que ela existe.

Referência de configuração e capacidades

tauri.conf.json define productName, version (incrementa antes de uma release — o workflow consegue sobrepor), o identifier (check:release-config exige mudá-lo de com.supastack.desktop), o scheme de deep link supastack, o bloco sentinela do updater, os alvos de bundle e os ícones placeholder. capabilities/default.json concede core:default mais opener:allow-open-url — alarga-o só quando um plugin novo precisar de mais.

Como o shell é testado

corepack pnpm --filter @supastack/desktop test faz syntax-check à página de arranque e corre a suite de unidades Rust cobrindo resolução de URL, deep links, zoom e lógica de canal; typecheck corre cargo check. Os scripts de release em JavaScript estão cobertos pelas suites vitest do repositório, e o pipeline de CI constrói instaladores reais nos três sistemas operativos para cada mudança.

corepack pnpm --filter @supastack/desktop typecheck
corepack pnpm --filter @supastack/desktop test
corepack pnpm --filter @supastack/desktop check:release-config

Verificação e resolução de problemas

Corre a suite do pacote depois de mexer em src-tauri e depois verifica o comportamento nativo à mão em cada SO alvo — os checks de unidade provam as regras, não a janela. Mantém comportamento novo do shell dentro de plugins e itens de menu para que a webview continue uma app web simples.

Perguntas frequentes

14 perguntas

O que é o supastack?

O supastack é uma base modular para construir produtos SaaS com IA. Reúne a infraestrutura comum para que possas concentrar-te nas funcionalidades próprias do teu produto.

Suporta web e mobile?

Sim. O supastack inclui apps Next.js e Expo como pontos de partida para experiências web e mobile.

Que autenticação está incluída?

O Better Auth cobre email/palavra-passe, OTP e login social. Os workspaces pessoais são aprovisionados com a conta para que os registos fiquem delimitados desde o primeiro dia.

Como é suportada a IA?

O supastack inclui IA multi-fornecedor configurável, registo de utilização, orçamentos e suporte encriptado de chaves próprias (BYOK).

Como são geridas as subscrições?

Para produtos construídos sobre o kit, a faturação Stripe, as subscrições e as permissões formam a base do acesso pago. Os segredos de fornecedor ficam no servidor.

Onde vive o código próprio do meu produto?

As funcionalidades próprias do produto ficam num codebase separado, enquanto o produto configura e integra os módulos base do supastack.

Como funciona o preço do supastack?

O kit é uma compra única com atualizações vitalícias: Stack único por 249 $ — à escolha entre os repositórios Next.js (web), Expo (iOS e Android) ou Tauri (macOS e Windows) —, Stack duplo por 398 $ com dois repositórios à escolha, ou Pacote completo por 399 $ com os três repositórios e o monorepo completo, mais 75 $ por lugar de programador adicional. Sem subscrição do kit. O checkout neste site entrega a tua chave de licença por email, com acesso ao repo por convite GitHub.

Como é que os workspaces delimitam os meus dados?

Os registos do utilizador são delimitados por workspaceId. Identidade, permissões, utilização de IA, eventos de faturação e entradas de auditoria ficam dentro do limite do workspace pessoal.

Como funcionam os jobs em segundo plano?

O Trigger.dev é o runtime de jobs explícito. O contrato JobRunner só promete enqueue, status e cancel — a semântica de workflow permanece específica e explícita do Trigger.dev.

Como difere o email da divulgação?

O email transacional cobre fluxos de produto como avisos de conclusão de tarefas. A divulgação fria e as campanhas pertencem ao próprio produto, fora do módulo de email deste kit.

Como funcionam as compras no aplicativo móvel?

O aplicativo móvel inclui compras nativas e restauração via RevenueCat, com acesso verificado pelo servidor. Configure as contas das lojas e conclua os testes em dispositivos antes de publicar. A cobrança web permanece separada.

Onde residem as chaves dos fornecedores de IA?

As credenciais BYOK são encriptadas e ficam no servidor. As chaves são higienizadas nos logs; a utilização e os orçamentos ficam visíveis ao nível do workspace.

Quais métodos de pagamento o checkout aceita?

O checkout hospedado na Stripe aceita cartões e também pode oferecer Alipay e WeChat Pay quando essas carteiras estiverem ativadas na conta Stripe — útil para compradores na China. As autorizações de carteira são confirmadas de forma assíncrona, então a página da licença é atualizada assim que o pagamento é liquidado.

Posso solicitar um reembolso?

Depois de obter acesso ao repositório, o supastack é seu para sempre, portanto não pode ser reembolsado. Mas fique tranquilo: você recebe o código-fonte completo com atualizações vitalícias para criar e lançar produtos ilimitados para você ou seus clientes. Você apenas não pode revender o código nem redistribuir o repositório como starter kit ou modelo.

PT
Tema