appkit
In-product onboarding & activation

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

AppKit editor
ready

Activation funnel · simulation

Installed100%
Took the 1st step48%
Activated27%

orbita.app/inicio

Good morning, Marina

Órbita dashboard — your example SaaS.

Live demo · the real SDK renders · nothing is saved

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
What AppKit does

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.

01

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 →
02

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 →
03

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 →
Empty states

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.

current state: the user reads "no invoices" and closes the tab
Targeting

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

The method

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:

Observe Spot friction Publish Measure Improve
Measurement

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

Sign-up100%
Opened the panel81%
Created project34%
Invited team19%

Created project — segment comparison

without experience34%
with empty state47%

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

For developers

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.

SDK size7,3 kB gzip
npm package@tecaless/appkit-sdk
FrameworksReact · Vue · Angular · HTML
Privacysalted hash per tenant
Versioningimmutable URL per version
Rollbackpoint to the previous version
Kill switchturns everything off in ≤ 30 s
npm · recommended
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.

index.html
<!-- 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>
with a bundler
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 →

For every team

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.

Real proof

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.

Pricing

While we validate, it's free.

Open beta · Free plan
$ 0

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 account

Prefer 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.

Security & trust

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

Straight answers

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.

Publish your user's next step today.