Userkit

contas de cliente para SaaS

O cliente do seu SaaS.Um cliente, um lugar só.

Sessão, times, cobrança, suporte e métricas sobre a mesma ficha. A sua autenticação continua sua; o resto lê o mesmo cliente — sem manter quatro bancos em sincronia.

grátis até 50.000 contatos ativos por mês · ambiente de teste incluso

contato
livesessão verificada

Ana Rocha

ana@studiolume.com.br

id
ct_8f2a1c6b
identificado por
usr_8421
e-mail verificado
sim
primeira visita
12 mar 2026
quem lê este cliente
  • Identidade
  • Cobrança
  • Suporte
  • Métricas
  • Onboarding
  • NPS
  • Pontos
  • Termos
Um cliente, uma linha. O que vier depois lê a mesma em vez de inventar a própria.

no ar hoje

O que já está de pé

Tudo em volta da sua autenticação, com as decisões difíceis já tomadas — as que só aparecem depois que alguém tenta contornar.

  • identidade

    A sua autenticação continua sua

    O seu servidor assina o id do usuário com um HMAC e o boot identifica a pessoa. Uma assinatura errada é recusada, nunca rebaixada — e um e-mail só vira prova quando um link ou um código volta da caixa de entrada.

  • ambientes

    Live e test desde o primeiro dia

    Toda organização nasce com os dois, e a chave carrega o ambiente: uk_sk_live_… e uk_sk_test_…. Dado de teste nunca encosta no número que você olha.

  • jwt

    Cinco minutos, verificado por você

    O seu backend confere a sessão contra o JWKS do ambiente, sozinho. Nenhuma chamada ao UserKit no caminho do request.

  • times

    Uma pessoa, vários times

    Um contato pode estar em dois clientes com dois planos. A assinatura pertence ao CLIENTE, o papel dentro dele é vocabulário seu, e o time ativo viaja no X-Customer-Id — nunca num cursor guardado.

  • cobrança

    O gateway é o seu

    Catálogo, assinaturas e faturas espelhados do provedor que você já conectou. A UserKit nunca cobra ninguém em nome de ninguém.

  • engajamento

    Suporte, avisos, pontos e filas

    Conversas por e-mail e no widget, notificações in-app, checklists, pontos e filas de acesso antecipado — tudo movido por fatos que o seu produto já publica.

integração

Como entra no seu produto

Três passos, nesta ordem. Os pacotes estão em beta fechado; a conta já dá acesso ao painel e à API.

  1. 01

    Instale o pacote

    Um pacote, sem dependências. Existe o equivalente sem React, e um para quem quer o token num cookie httpOnly no próprio domínio.

    terminal
    npm install @userkit/react
  2. 02

    Diga quem está na página

    O seu backend assina o id do usuário com o segredo do ambiente e o boot identifica o contato. Sem hash a sessão fica marcada como não verificada; com hash errado ela é recusada.

    app.tsx
    import { useEffect } from "react";
    import {
      UserKitProvider, SignedIn, SignedOut, useUserKit,
    } from "@userkit/react";
    
    function Boot() {
      const client = useUserKit();
      useEffect(() => {
        // { external_id, hash } vem do seu servidor:
        // hash = HMAC-SHA256(identity_secret, external_id)
        fetch("/api/userkit-boot").then((r) => r.json())
          .then(({ external_id, hash }) =>
            client.boot({ externalId: external_id, hash }));
      }, [client]);
      return null;
    }
    
    export default function App() {
      return (
        <UserKitProvider publishableKey="uk_pk_live_…">
          <Boot />
          <SignedOut><SeuLogin /></SignedOut>
          <SignedIn><Painel /></SignedIn>
        </UserKitProvider>
      );
    }
  3. 03

    Confira no seu backend

    O JWT vale cinco minutos e é assinado em ES256 por ambiente. O SDK renova 30 segundos antes de expirar, então pedir o token a cada request está correto.

    api/rota.ts
    import { createRemoteJWKSet, jwtVerify } from "jose";
    
    const jwks = createRemoteJWKSet(
      new URL("https://api.userkit.dev/v1/jwks/uk_pk_live_…"),
    );
    
    const { payload } = await jwtVerify(token, jwks);
    payload.sub; // o id do contato

preço

Grátis até 50.000 contatos ativos por mês.

O teto é alto de propósito. Você paga quando já estiver sendo pago.

Ver os planos
contato ativo
Quem teve uma sessão autenticada no mês. Visitante anônimo não conta e ambiente de teste não conta — a exclusão está na consulta, não na boa vontade de quem escreve a próxima.
passar do teto
Avisa em 80% e em 100%, e para por aí. Nenhum caminho que cria sessão lê o medidor: estourar o limite nunca deixa o seu cliente do lado de fora.

Comece pelo ambiente de teste.

A conta nasce com os dois ambientes e as chaves de cada um. Nada do que você fizer em teste aparece no que é real.