Activate users without waiting for the next deploy.
Publish checklists, empty states and targeted announcements inside your SaaS — and see where each user gets stuck. A lightweight SDK, from install to your first experience in about five minutes.
No card · SDK < 14 kB · free in beta
Activation funnel · simulation
Good morning, Marina
Órbita dashboard — your example SaaS.
Quer ver dentro de um sistema de verdade? Abrir a demonstração completa (Contabiliza) →
- SDK 7.3 kB gzip
- install → first experience ~5 min
- kill switch ≤ 30 s
- privacy by design
- versioning & rollback
- React · Vue · Angular · plain HTML
Three jobs, not a feature list.
Each one runs inside your customer's product, is edited in a panel and published without joining the engineering queue.
Show the next step
Checklists and empty states lead new users to their first valuable action — instead of the blank screen where they give up.
checklist · empty state →Publish at the right moment
Condition each experience on profile, plan, stage and behavior. The right message appears for who needs it, and disappears for who already acted.
segment · context →Learn from every drop-off
Real events recorded in your database show exactly where users get stuck — so you fix and measure, not guess.
events · activation funnel →The blank screen is where users give up.
Empty states are permanent, contextual surfaces — not interruptions. Toggle below: the "with AppKit" state is rendered by the real SDK.
The action leads users to first value and fires a real event — which becomes a funnel metric.
Invoices
No invoices yet.
The right message, only for who needs it.
Build the condition and watch the audience change. Each experience appears for one segment — and disappears for those who already acted.
Show first-project checklist
Appears only for users who signed up, are on Pro and created nothing yet.
14%of active users
simulated audience
A short loop, repeated weekly.
Onboarding is not a project with an end date — it's a loop that runs inside AppKit, no spreadsheets, no guessing:
Analytics that end in a decision.
Not a pretty chart — the answer to a real question:
"At which step do new workspaces stop creating their first project?"
The funnel answers: the drop is between opening the panel and creating a project. That's where an empty state with the next action goes — and segment comparison shows whether it worked.
new workspaces · last 30 days
Created project — segment comparison
Recommendation: publish the "Create first project" action on the empty Projects screen and track the funnel change.
illustrative data · in the product, the funnel comes from YOUR real events
One line in your HTML. No deploy per tweak.
Loads async, isolated in Shadow DOM, fails open: if AppKit goes down, the widget disappears and your product stays identical.
npm i @tecaless/appkit-sdk
Install the package, initialize with your key and publish from the panel — the HTML tag remains as the no-code alternative.
<!-- install before </body> --> <script src="https://appkit.com.br/sdk/appkit@3.0.7.js" data-key="pk_live_your_key" data-user="logged_user_id" async></script>
import { init, track } from '@tecaless/appkit-sdk' init({ apiKey: 'pk_live_your_key', userId }) track('invoice_issued') // completes a step
Full walkthrough, anchors and prompts for your AI agent: open the install guide →
The same SDK, a different job.
Pick your side of the table:
Problem
New users sign up, stare at the empty screen and never reach first value.
Recommended flow
A 3-step checklist tied to real events — completing means doing, not clicking "next".
Key metric
activation — % of sign-ups that perform the first valuable action.
Problem
Sign-ups grow, but activation doesn't keep up — and every test becomes an engineering ticket.
Recommended flow
Segment by plan and stage, test copy and steps without deploys, compare funnels.
Key metric
sign-up → activated conversion by segment and variant.
Problem
Customers vanish before configuring the essentials — and churn is discovered too late.
Recommended flow
Targeted announcements and empty states that guide setup inside the product.
Key metric
key-feature adoption in the first 14 days of an account.
No invented case studies.
This space will hold the first real case from the beta — with verifiable baseline, intervention and result. Until then, the proof is the product: the demo above runs the real SDK.
Baseline
being collected in beta
Intervention
being collected in beta
Result
being collected in beta
Quer ser o primeiro estudo de caso? Fale com a gente.
While we validate, it's free.
No card, no automatic charges later. Publish your first experience today; when paid plans exist, active users get notice in advance and founder terms.
Create free accountPrefer to just follow along? Leave your email for news and pricing updates.
End-user IDs never touch our database in readable form (SHA-256 + salt)
No tricks: there is no billing configured in this product today.
Growth and Scale arrive once pricing is defined — no fictional prices on this page.
For companies: SSO and SCIM are on the roadmap — talk to product.
Built to earn your trust.
No decorative badges: every item below describes how the product works today — and what is still roadmap is labeled roadmap.
Pseudonymization by default
The end user's id becomes a salted SHA-256 hash per workspace before touching the database. Aligned with GDPR and LGPD.
Encryption at rest
Managed Postgres (Supabase) with encryption at rest and 100% HTTPS traffic.
Writes only through secure functions
The API never uses an admin credential: every write goes through SECURITY DEFINER functions with RLS enabled.
Kill switch ≤ 30 s
One button turns AppKit off for all your users. Publishes are versioned with 1-click rollback.
Fails open
If AppKit goes down, the widget disappears and your product stays identical. No error ever escapes into your code.
SOC 2 · SSO · SCIM roadmap
We don't have these yet — and we don't pretend to. Need them to buy? Talk to us.
Full technical details at appkit.com.br/seguranca · API status
Frequently asked questions
Do I need a deploy to install?
Once, to paste the SDK tag. After that, every change to texts, steps, segments or announcements is published from the panel and reaches your product within 30 seconds — no new deploy.
And after installation?
Engineering gets out of the way: editing steps, texts, segments and announcements is 100% panel. Code only returns if you want to instrument new completion events with AppKit.track().
Does AppKit slow my product down?
No. It's 7.3 kB loaded asynchronously, in requestIdleCallback, isolated in Shadow DOM. It doesn't compete with your page's critical load or touch your CSS.
What do you collect from my users?
Only product events. The end user's identifier is never stored raw: it becomes a salted SHA-256 hash per tenant before touching the database. Privacy by design.
How does data protection work in practice?
Minimal collection and pseudonymization by default: no sensitive personal data travels, the identifier becomes an irreversible hash and you remain the controller of your data. Details in the privacy policy.
Can I revert a published experience?
Yes. Each publish creates a version; going back is pointing to the previous one. There's also a button that turns AppKit off for all your users within 30 seconds.
Can I try it without a card?
Yes. The beta is free and asks for no card. There is no billing configured in the product today.
What happens when I exceed MAUs?
Today, nothing: the beta has no MAU limit and no billing. When paid plans exist, limits and overages will be explicit before any charge — nobody gets billed by surprise.
Can I use my design system?
The widget runs in Shadow DOM: it neither inherits nor leaks CSS, so it never breaks your styling. The primary color is configurable in the panel to match your brand; the rest is neutral by default.
Does it work in SPAs (React, Vue, Angular)?
Yes. The SDK observes DOM changes and re-anchors empty states when the target appears or disappears — without reloading. For React there's a wrapper in @tecaless/appkit-react.
What if AppKit goes down?
The SDK fails open: any error simply makes the widget not appear, and your product stays identical. No AppKit error ever escapes into your code.