E EMBAN / Docs

Frequently Asked Questions

Short, opinionated answers to the questions that come up during first conversations. For depth on any topic, follow the link into the relevant concept or guide.

The product

What is Emban, in one sentence?

An embedded analytics platform for B2B SaaS — you send product events to our API, we show your customers a white-labeled dashboard inside your app.

Who is this for?

B2B SaaS teams that want to ship a "Usage" or "Analytics" tab to their customers without building it themselves. Typical profiles: LLM/API platforms showing token usage, document pipelines showing pages processed, SaaS tools surfacing per-seat activity, embedded payments showing transaction volume.

What's the stack under the hood?

Go + chi for the API, PostgreSQL for the control plane (users, dashboards, audit), ClickHouse for events, React + TypeScript + ECharts for the admin console, a standalone HTML runtime for customer-facing embeds. See How It Works.

How it compares

How is Emban different from Metabase?

Metabase is BYODB — it queries your own Snowflake, Postgres, BigQuery, or similar. You already have the data somewhere; Metabase visualizes it. Emban is ingestion-only — you POST events to our API and we store them in our ClickHouse. You don't need a data warehouse.

Practical consequence: Metabase is better if you already have a warehouse and want to embed dashboards on top of it. Emban is better if you don't have a warehouse and don't want to operate one — you want to send events and see charts.

How is Emban different from Luzmo (formerly Cumul.io)?

Same BYODB-vs-ingestion axis as Metabase. Luzmo connects to your existing database; Emban stores the events itself. Luzmo has a bigger chart library and more mature dashboarding UI; Emban is leaner, newer, and design-forward but less feature-complete.

How is Emban different from PostHog, Mixpanel, or Amplitude?

Those are product analytics tools — designed for your internal team to analyze your own users' behavior. Emban is embedded analytics — designed to show your customers a dashboard of their own usage inside your product.

You can build a basic "customer analytics tab" on top of PostHog/Mixpanel, but you'll fight their per-user pricing (embedded dashboards show a per-tenant view, not a per-user view), their UI (not meant to be white-labeled), and their embed story (usually a link to a hosted page, not an iframe into your product). Emban starts from "this renders in an iframe in your app" as the core use case.

Can I use my own data warehouse as the source?

Not today. Emban is ingestion-only — events go into our ClickHouse and stay there. BYODB (Snowflake/BigQuery/Postgres as source) is explicitly out of scope for alpha. If you need BYODB, look at Metabase, Luzmo, or Cube Cloud.

What about Cube Cloud?

Cube is a semantic layer + embedded analytics platform, also BYODB. Closer to Luzmo than to Emban on the architecture axis. Good choice if you want a defined metrics layer and already have a warehouse.

Data & schema

What shape does an event need to be?

One row with tenant_id, event_name, optional timestamp, user_id, string_props (dimensions) and numeric_props (measures). Send up to 1000 events per POST. Full schema at Events.

Do events need to arrive in real time?

No. Emban doesn't care whether you send events as they happen or in batches at the end of a job. Dashboards render whatever's ingested at query time. Most customers send from a background job or queue, not from the request path.

How fast are events available for query?

Seconds. ClickHouse ingests synchronously; a dashboard refresh immediately after a successful /v1/events call will see the new data.

How big can one event be?

There's no hard cap on body size in the ingestion validator, but the practical limit is whatever your HTTP stack passes through. Keep string_props and numeric_props under a dozen keys each; payloads over ~10 KB are a smell — probably something that belongs in your own database, not in an analytics event.

Can I delete or update events I've sent?

Not yet via the API. ClickHouse is append-only by design; we don't expose a delete endpoint. If you need to purge events (GDPR "right to be forgotten" by user_id, or correcting a bad batch), email support@emban.sidelabs.dev and we'll run it server-side. A self-serve endpoint is on the roadmap for GA.

Embedding

Can I embed in a mobile app?

Yes — mint a session on your backend and render it in a WKWebView (iOS) or WebView (Android) the same way you would an iframe. The postMessage bridge translates to WKScriptMessageHandler / Android's JavascriptInterface.

Can I white-label the embed?

Starting on the Starter plan, yes — the "Powered by Emban" footer is removed and you can pin a custom color palette. Typography and layout are fixed. Full visual custom-theming (font stack, radius, spacing system) is roadmap, not shipped.

Can I show my customers only their own data?

Yes — this is the central design point. Every embed session is minted with a tenant_id, and the dashboard rendered to that session can only read events tagged with that tenant. Enforcement is at the ClickHouse engine level, not at the UI — a bug in the dashboard can't leak cross-tenant data. See Tenants.

Can customers interact with the dashboard?

Yes — change period, click a bar/slice to drill, adjust filters. You can disable specific interactions per widget (locked) or hide widgets entirely from customer view (hidden). Locked filters on the embed session pin specific values (e.g. environment=production) that the customer can't override. See Permissions.

How long does an embed session live?

Between 1 hour and 24 hours, you pick at mint time (default 1h). Short-lived by design — a leaked token has a small blast radius. For a typical "customer logs into our app, sees usage" flow, 1 hour is fine and you re-mint on page load.

Ops & reliability

Where does Emban run?

Primary deployment is on a managed cloud in the EU today. Multi-region and self-host are enterprise-tier options.

Can I self-host?

Not self-serve. For enterprises with a self-host requirement, we ship a signed license that allows running the same binary on your infrastructure. See Pricing → Enterprise.

What happens if Emban goes down?

Ingestion is the most critical path. Today /v1/events writes directly to ClickHouse and returns an error if ClickHouse is unavailable; there is no durable disk-backed ingest buffer yet. The customer-facing embed degrades to "data unavailable" while the API is down. We're pre-SLA during alpha; post-GA there's a paid-tier uptime commitment.

Is there a status page?

Scoped for next month. Until then, check the Runbook for how to diagnose "is Emban up?" questions.

Compliance

Are you SOC 2 / ISO 27001 / HIPAA compliant?

Not today. We're structured to support these (RBAC, audit log, secrets hygiene, encryption at rest) but the formal audits haven't been completed. If compliance is a hard gate for you, let us know during the alpha conversation — it shapes the GA roadmap.

Is Emban GDPR-ready?

Controller/processor: you are the controller of your customers' data, Emban is the processor. Data is stored in the EU. Individual-subject deletion is currently operator-assisted (email support); a self-serve endpoint is on the roadmap. DPA template available on request.

Can you sign a BAA (HIPAA)?

Not today. HIPAA is explicitly out of scope for alpha.

Billing

Is there a free tier?

Yes. Free plan: $0/mo, 250k events/mo, 2.5k queries/mo, 1 published dashboard, Emban branding. Meant for prototyping and pilots, not production customer-facing embeds. See Pricing.

Do you charge for overages?

No auto-billing. When you hit a limit, the relevant endpoint returns 402 with the plan's limit and a recommended upgrade target. Usage counters reset at the start of each UTC month. No surprise invoices.

Annual or monthly?

Both. Alpha customers typically go annual-first for a discount and price lock; monthly is available self-serve post-GA.

What payment methods do you accept?

During alpha, paid plans are handled manually by invoice or annual contract. Self-serve card checkout and invoice history are not wired into the product yet.

What happens if I cancel?

Account downgrades to Free limits at the end of the paid period. Data stays intact; feature flags like custom theme, audit log access, and embed permissions reset to Free defaults. You can export before canceling; we don't hold data hostage.

Development

Is there an npm SDK?

Yes. The alpha packages are @emban/sdk for trusted backends, @emban/embed-helper for signed iframe embeds, and @emban/react for native React rendering. See the React guide and Node.js Backend guide.

Is there an API reference?

Yes, at API Reference. Covers /v1/events, /v1/embed-sessions, /v1/dashboards/*, /v1/widgets/*, /v1/alerts/*, /v1/reports/*, /v1/saved-queries/*, and /v1/query/adhoc.

Is the dashboard renderer open source?

Not today. The admin and customer-facing runtime are closed-source during alpha. The embed protocol (postMessage shape, JWT claims) is fully documented, so you could theoretically build a custom renderer against the same data API — most customers don't want to.

Can I use my own charting library instead of yours?

Yes — call /v1/widgets/preview/data or /v1/query/adhoc yourself and render the returned data with D3, Chart.js, or whatever you prefer. You skip the embed runtime and do the charting in your own stack. See the curl guide for the endpoints.

Roadmap

What's missing that I might expect?

Honest list:

Can I request a feature?

Yes — email hello@emban.sidelabs.dev with what you need and how it fits into your rollout. Alpha customers' feature requests drive the priority order. The smaller the request and the closer to an existing primitive, the faster it ships.

Still unsure? The fastest way to evaluate Emban is to spend 15 minutes with the Quickstart — post 20 events through curl, mint a session, paste the iframe into a page. If that shape fits your product, the rest follows. If it doesn't, one of the comparison links above probably does.