Tudo o que o AppKit faz, onde cada coisa aparece, e um prompt pronto para colar no seu assistente de código. O que você não souber fazer, o agente faz por você.
Cole o texto abaixo no seu assistente de código, troque MINHA_CHAVE_PK_LIVE pela chave do seu painel, e ele faz a integração inteira — instalação, telas vazias e conclusão de passos — sem quebrar o seu produto.
Claude CodeAntigravityOpenAI / CodexCursor, Copilot…
prompt-appkit.txt
Você é meu assistente de código. Integre o AppKit (appkit.com.br) no meu produto web SEM quebrar nada. O AppKit injeta um checklist de onboarding, telas vazias e avisos, controlados por um painel externo. Faça exatamente:
1) INSTALAÇÃO
- Se o projeto usa bundler (React/Vue/Next/Svelte/etc.): instale o pacote
@tecaless/appkit-sdk
e, no ponto de entrada, DEPOIS que o usuário faz login (quando eu já tenho o id dele), chame:
import { init } from '@tecaless/appkit-sdk'
init({ apiKey: 'MINHA_CHAVE_PK_LIVE', userId: })
- Se for site estático / no-code: adicione ANTES de
:
- O userId/data-user DEVE ser o identificador estável do usuário logado. O AppKit o transforma em hash no servidor — NUNCA envie e-mail ou nome. Se não houver usuário logado, deixe sem userId.
2) TELAS VAZIAS
Para cada tela que nasce sem dados e onde eu quero um convite à ação (ex.: faturas, contatos, agenda), envolva o estado vazio atual em UM contêiner marcado, mantendo o conteúdo atual dentro como fallback:
...o "nenhum registro" atual...
Use um nome curto e estável por tela (ex.: faturas-vazio, contatos-vazio). NÃO use seletor de CSS gerado por build. Me devolva a lista dos nomes que você criou.
3) CONCLUSÃO DE PASSOS (importante para métrica real)
Para cada passo do onboarding que representa uma AÇÃO REAL do usuário (ex.: "emitir primeira fatura"), chame no momento EXATO em que a ação se concretiza de verdade — depois de salvar no servidor, não no clique do botão:
window.AppKit && window.AppKit.track('fatura_emitida')
Use um nome de evento por ação, em snake_case. Me devolva a lista de eventos que você criou.
4) NÃO QUEBRAR
- Carregue o SDK de forma assíncrona; ele é fail-open (se cair, some sozinho e não afeta o meu produto).
- A chave pk_live é pública por natureza (pode ficar no cliente). Não exponha nenhuma chave secreta.
- Não bloqueie renderização esperando o AppKit.
No fim, liste: (a) arquivos alterados, (b) nomes de data-appkit criados, (c) nomes de eventos criados — para eu configurar no painel do AppKit.
Depois que o agente terminar, use os nomes de data-appkit e os nomes de evento que ele te devolver para configurar as telas vazias e a conclusão dos passos no painel.
02Instalação
Duas formas. Se você usa um framework, comece pelo npm.
Com bundler (React, Vue, Next, Svelte…) — recomendado
terminal
npm i @tecaless/appkit-sdk
app.js — após o login
import { init, track } from '@tecaless/appkit-sdk'
init({ apiKey: 'MINHA_CHAVE_PK_LIVE', userId: usuario.id })
// quando uma ação real acontece:
track('fatura_emitida')
A sua chave pk_live_… está no painel, em Instalação. Ela é pública por natureza (só permite ler a sua configuração e enviar eventos).
03Onde cada coisa aparece
As três experiências funcionam em qualquer página do seu produto, dentro do domínio onde você instalou. Você controla tudo pelo painel, sem novo deploy.
Checklist
Cartão flutuante no canto. Aparece em qualquer página; some sozinho quando o usuário conclui tudo.
Aviso
Faixa no topo que empurra o conteúdo (não sobrepõe). Pode ter link. Você publica e retira quando quiser.
Tela vazia
Onde o seu produto mostra "nenhum registro" — sem você mexer no código (o seu agente cuida). Vira um convite à ação.
04Telas vazias: você não precisa mexer no código
A mágica da tela vazia é não ter que declarar nada. Clique em Copiar prompt e o seu
agente de IA cuida da parte técnica: ele aponta para um elemento que já existe no seu sistema
(via seletor, sem tocar no HTML) ou, se precisar, adiciona uma marcação estável — o AppKit
aceita os dois. Depois você só edita o texto pelo painel, para sempre, sem deploy.
O usuário clicou em "Copiar prompt" na função TELAS VAZIAS do AppKit (appkit.com.br). Ele quer que uma tela que nasce sem dados no produto dele vire um convite à ação, SEM mexer no código manualmente. Faça:
PRÉ-REQUISITO — o AppKit precisa estar instalado. Se ainda não estiver, instale antes:
npm i @tecaless/appkit-sdk
import { init } from '@tecaless/appkit-sdk'; init({ apiKey: 'MINHA_CHAVE_PK_LIVE', userId: })
(ou, no-code: antes de )
TELA VAZIA — encontre no código a tela que nasce vazia (ex.: lista de faturas/contatos) e escolha COMO o AppKit ancora ali (as duas formas são aceitas):
(a) aponte para um elemento que JÁ EXISTE, via seletor CSS estável (id ou classe semântica) — sem mexer no HTML; ou
(b) se só houver classe gerada por build, envolva o estado vazio em
…conteúdo atual…
.
Me devolva o seletor/nome de cada tela vazia (ex.: "#faturas-vazio" ou "faturas-vazio") para eu colar no painel → Telas vazias.
FUNÇÕES DISPONÍVEIS do AppKit (ative cada uma no painel https://appkit.com.br/painel): checklist de primeiros passos, telas vazias, avisos no topo, e conclusão de passos por evento (chame window.AppKit.track('acao_real') no instante da ação real). Guia completo: https://appkit.com.br/guia
NÃO quebre nada: carregue async, o SDK é fail-open, e a chave pk_live é pública (não exponha chave secreta). No fim, liste os arquivos alterados e os seletores/nomes criados.
Se a ancoragem sumir um dia, o AppKit avisa você (evento appkit_anchor_missing) e não renderiza nada — a sua tela continua normal.
05Como um passo se conclui
Três modos, escolhidos por passo no painel. Isto decide se o seu funil de ativação mede ação real ou só cliques.
verdade
Por evento
Seu código chama AppKit.track('acao') no instante da ação real. Não é falseável — é o que serve como métrica de tração.
proxy
Por rota
O usuário chega numa rota (ex.: /faturas/nova). Sinal real, mas "chegar" não é "fazer".
dispensável
Manual
O usuário clica no item para marcar. Serve para passos informativos ("leia isto"). É falseável de propósito.
Para o seu analytics de tração valer, os passos importantes devem ser por evento. Se forem manuais, você mede "o usuário clicou em concluir", não "o usuário fez".
06Garantias
Falha aberta: se o AppKit cair, o widget some e o seu produto continua idêntico. Nenhum erro nosso chega ao seu console.
Leve e isolado: ~10 KB, em Shadow DOM. Não toca no seu CSS nem disputa o carregamento da sua página.
Botão de desligar: um clique no painel remove o AppKit de todos os seus usuários em até 30 segundos, sem deploy.
LGPD por construção: o id do seu usuário vira hash irreversível (SHA-256 + salt por conta) antes de tocar o banco. Nunca envie e-mail ou nome.
Auditável: o SDK é servido em URL fixa e há pacote npm público.
07Erros comuns (e como evitar)
Widget não aparece
Confira a chave data-key e se a experiência está publicada (não rascunho) no painel.
Tela vazia não aparece
Falta o data-appkit="…" no HTML, ou o nome no painel não bate com o do código.
Passo não conclui sozinho
Regra "por rota" com rota vazia, ou "por evento" sem o track() no seu código no momento certo.
Nome do usuário aparecendo
Não coloque nome/e-mail no título das experiências nem no data-user — use um id estável.