Customer-facing positioning. For the engineering vision see design.md; for
the commercialization model see commercialization.md.
iotta is the self-hosted server that turns an embedded device into a voice assistant — and the workshop where your team builds, tests, and ships that assistant, from the first simulated prototype to a fleet in the field.
The reference point is xiaozhi (xinnan-tech/xiaozhi-esp32-server), the open-source
platform iotta replaces. The xiaozhi column is grounded in
xinnan-tech/xiaozhi-esp32-server, including its own §15 "Known
Limitations".
| Capability | iotta | xiaozhi |
|---|---|---|
| Stack to operate | One Python service + SQLite | Python + Java/Spring + MySQL + Redis + NGINX + separate ASR process |
| Deploy | docker compose up, one host |
Multi-service; Redis cache-flush footguns (§15.3) |
| Stability under load | Stateless app, clean session drain | Daily container restart to work around a socket leak (§15.2) |
| Auth / transport | Per-device tokens, TLS by default, constant-time compares | Auth often disabled; default DB creds; "not security-assessed" (§15.8) |
| Real device liveness | True connect/disconnect state | last_connected_at = OTA poll, not sessions (§15.6) |
| Safe OTA | Signed, staged %, min-version gate, rollback + health-gated auto-rollback | Flat ai_ota table; infinite-retry bug when empty (§15.4) |
| Session tracing + replay | Yes (structured, replayable) | No (only a perf tester + a test-audio page) |
| Eval / regression | Yes (scored suites) | No |
| Tool / prompt versioning | Yes (draft → staged → active) |
Runtime plugins; no versioned contract |
| 3rd-party API visibility | Call inspector + per-turn tokens, TTFT, per-stage/multi-hop timing | Per-component latency only |
| Web dev simulator | Browser client on the real protocol (visible traffic, tool calls, errors) | Browser audio test page only |
| Audio input debugging | Lossless PCM uplink capture + mid-session mode switch + trace playback | Browser test page only |
| Provider-agnostic | Yes (config swap) | Yes (very large adapter list) |
| Runtime shape | Multi-step pipeline or all-in-one speech-to-speech, A/B-testable with one eval suite | Multi-step pipeline (ASR → LLM → TTS) |
| AI pipeline | ASR → LLM → TTS + tools; memory/RAG/vision extend behind the same provider interfaces | + VAD, voiceprint, memory, RAG, vision today |
| Multi-user / RBAC | Roles + audit log (commercial tier) | Users + super-admin/standard today |
| Production posture | TLS, backup, preflight built in | "Not suitable for production without hardening" (§15.8) |
The trade in plain terms: iotta's bet is operational simplicity, update safety, and visibility — the exact axes where xiaozhi tends to burn a team trying to ship a product. xiaozhi carries more AI-pipeline breadth (memory/RAG/voiceprint/vision) today; in iotta those pieces sit behind the same clean provider interfaces, so they extend the platform rather than rewrite it.
iotta is offered open-core, self-hosted:
The core always runs with no required cloud dependency. See
commercialization.md for the model, the enforcement design, and a
pricing/packaging sketch.