// the find
NetEase/tango
A code driven low-code builder, develop low-code app on your codebase.
Tango is NetEase's source-code-based low-code builder: instead of inventing a private DSL/protocol, it manipulates your actual TypeScript/JSX via AST so what the designer produces is real, readable code you can check into git. It's aimed at teams building internal low-code platforms or drag-and-drop builders (dashboards, mobile, email templates) on top of an existing React codebase, not at end users wanting a no-code tool.
The AST-in/AST-out design is the one genuinely good idea here — most low-code tools trap you in a proprietary schema, and Tango avoids that by generating and consuming plain source files, so ejecting isn't a cliff. It's been running in production at NetEase Cloud Music across several different builder types (dashboard, mobile, RN, email), which is more real-world mileage than most low-code OSS gets. The monorepo is cleanly separated by concern — core (AST/codegen), designer (UI), sandbox (live preview via Sandpack), setting-form — so you can in principle pull out just the codegen layer without the whole designer. Full TypeScript with type defs throughout.
Last push was September 2024 — over a year stale as of now, so treat any 'production-ready' claims with caution before betting infrastructure on it. AST-based code generation is inherently fragile in ways the README doesn't address: round-tripping through an AST tends to mangle comments, custom formatting, and hand-written code that doesn't fit the designer's model, and there's no discussion of how merge conflicts or manual edits interacting with generated regions are handled. Test coverage is thin — a handful of spec files in core/helpers, but the designer package (the largest and most UI-stateful part) has none visible. The README ends with an unrelated plug for a different NetEase product (Seal D2C Figma plugin), which is a weird, slightly spammy signal for an open-source project's priorities. Primary docs/community skew Chinese-first (docs site, Discord secondary), so English support may lag.