A data visualization engine and dashboard workspace purpose-built for the modern Web and IoT.
中文 · Documentation · Widget Development Guide
ThingsVis is a data visualization engine and dashboard workspace for modern Web and IoT scenarios. It is designed for industrial dashboards, monitoring screens, digital twin pages, device control panels, and embeddable visualization modules. Unlike traditional BI tools that focus more on reporting and business analysis, ThingsVis emphasizes complex visual interfaces, real-time interaction, engineering extensibility, and seamless integration into business systems.
ThingsVis advantages:
- AI-friendly: a unified Schema contract built on Zod makes views structured, validated, and naturally suitable for AI generation, editing, and replay.
- Flexible extension: Widget sandboxing plus CLI/SDK tooling lets developers build and publish business components as independently as regular React packages.
- Lightweight integration: the core capability is distilled into a frontend runtime Kernel that can be embedded into existing Web systems and SaaS products through SDKs, components, or iframes.
- Interaction-first: beyond real-time display, ThingsVis supports subscriptions, linkage, action triggers, and device control for IoT scenarios that require operational feedback loops.
- Engineering-ready: the Monorepo architecture cleanly separates Studio, Kernel, Schema, and tooling for secondary development, maintenance, and continuous delivery.
ThingsVis is suitable for:
- real-time large-screen scenarios such as industrial monitoring, production dashboards, and operation centers;
- energy, building, and IoT device management scenarios that require state linkage and control loops;
- integration scenarios where SaaS products, low-code platforms, or industry systems need embedded visualization capabilities;
- intelligent scenarios where visualization pages need to be generated, adjusted, and orchestrated by AI.
- Node.js
>= 20.10.0 - pnpm
>= 9.0.0
Get an isolated frontend developer sandbox, including the Studio canvas and Kernel engine, in just three steps:
pnpm install
pnpm build:widgets
pnpm devIf you need the full-stack workflow with real authentication and project management:
pnpm dev:apppnpm dev:app starts Studio, Kernel, and Server together, but it does not create the first administrator in your local PostgreSQL database. Before first use, complete the following steps:
- Copy
apps/server/.env.exampletoapps/server/.env, then fill in required variables such asDATABASE_URLandAUTH_SECRET. - Make sure PostgreSQL is running locally and that
DATABASE_URLpoints to a writable database. - Run the schema push and seed scripts in
apps/server:
cd apps/server
pnpm db:push
pnpm seedThe default admin account is:
- Email:
admin@thingsvis.io - Password:
admin123
To customize the seeded account, override the following variables in apps/server/.env and run pnpm seed again:
SEED_ADMIN_EMAIL=admin@thingsvis.io
SEED_ADMIN_PASSWORD=admin123
SEED_ADMIN_NAME=AdminThen return to the repository root and start the full development environment:
pnpm dev:appIf the login page shows "Server error, please try again later", the usual causes are that
apps/serverfailed to start,pnpm db:pushwas not executed, orpnpm seedhas not created the initial administrator yet.
Useful commands:
pnpm docs:dev: run the documentation site locally.pnpm typecheckandpnpm lint: run workspace-wide TypeScript checks and lint rules.pnpm test: run the unit test suites.
We redefine the experience of extending a visualization platform. Creating an independent Widget is as straightforward as bootstrapping a basic React project:
pnpm vis-cli create <YourCategory> <YourWidgetName>The scaffold gives you a clear three-step development path:
- Schema contract: define strict data property validation in
schema.tswith Zod. - Visual panel: register and mount the interactive properties panel in
controls.ts. - Render view: implement the actual content logic and styles in
index.tsxwith ReactdefineWidget.
To explore this isolation and plug-in mechanism in depth, see the CLI Guide or the Widget SDK Guide.
ThingsVis is a modern Monorepo built on Turborepo, with clear separation between the core state machine, shared contracts, and runtimes:
apps/studio/: the entry and main view of the visual Studio canvas editor.packages/thingsvis-kernel/: the highly decoupled headless runtime and its state management core.packages/thingsvis-schema/: the global contracts and types that define platform lifecycle and cross-component communication.tools/cli/: the built-in developer toolchain, including thevis-cliscaffolding tool.
Further references:
ThingsVis welcomes ideas and contributions from open-source developers. Before submitting your first PR, please read our Contributing Guide.
- 🐞 Report bugs: use the standard bug report template.
- ✨ Request features: discuss new ideas through the feature request template.
- 📝 Commit convention: we follow Conventional Commits. If your PR changes user-facing UI or interactions, include screenshots or recordings.
For any potential security issue related to the framework design, please follow our Security Policy.
ThingsVis is released under the Apache-2.0 License.



