Can a Conceptual Cloud IDE Close the DevOps Loop? Inside Uncode’s Design
The article introduces Uncode, a conceptual cloud‑native IDE that treats the entire software lifecycle as code, explains its DSL‑driven architecture, file‑based storage, blockchain‑style traceability, and the technical stack choices, while providing concrete code examples and design patterns.
Overview
Uncode is a proof‑of‑concept, cloud‑native IDE that stores every development artifact (requirements, designs, code) as files in a Git repository. Its source code is available at https://github.com/inherd/uncode. The project demonstrates a closed DevOps loop where the entire software creation process is expressed as code.
Core Design Principles
Process as Domain Language : Development processes are described with domain‑specific languages (DSLs). A feature file (Cucumber‑style) represents a user story and drives the IDE workflow.
Everything is DSL : Flows, models, UI definitions, and even API interactions are expressed as DSL files, enabling automatic code generation, mock objects, and binding.
Development Environment as Process : The IDE embeds the workflow, removing the need for separate DevOps portals.
IDE Modes and Artifacts
Designers write requirements in .feature files. Example:
# author: Phodal HUANG
# status: doing
# language: zh-CN
功能: 第一个用户故事
场景打开 Uncode
假如我在 Terminal 工具里
当输入 uncode
那么则能在 Uncode IDE 里打开当前项目During the design phase three DSL artifacts are created: flow – flow design model – data‑model design ui – UI layout design
These artifacts are bound together, allowing the IDE to generate source code and keep model‑code synchronization.
All‑as‑Files & Traceability
All artifacts are stored as version‑controlled files (Git). This provides immutability, full audit trails, traceability, transparency, and collective maintenance—effectively a lightweight blockchain for requirements.
Fill‑in / Choice Programming
The IDE can suggest method signatures based on indexed code, letting developers select the appropriate implementation. Example stub generated by the IDE:
@RequestMapping("/")
String home() {
return "Hello, World!";
}Technical Architecture
Uncode follows a “fluid” architecture that can evolve between monolithic and micro‑service styles. Four driving modules are defined:
Modularization – dynamic component splitting.
Management & Filters – DSL design and validation.
Sidecar pattern – language parsing runs in separate processes.
Container bridge – decouples UI from core logic.
Implementation stack:
Core written in Rust for performance and safety.
UI built with Tauri (WebView) + React .
UI logic coded in TypeScript .
Inter‑DSL communication via RPC .
Supporting Concepts
APIs are treated as first‑class citizens. Uncode provides an “API of APIs” where reusable snippets encapsulate internal and external services, eliminating boilerplate such as dependency management and logging.
Images
Architecture Details
The system adopts a “fluid” mode that allows unpredictable splitting of components during evolution. Physical design follows domain‑driven principles.
Key architectural modules:
Modularization – enables dynamic component boundaries.
Management & Filters – DSL parsing and validation.
Sidecar – language parsers run as independent processes, providing cross‑platform support.
Container Bridge – isolates UI rendering from core logic, making most IDE components UI‑agnostic.
Framework Choices
Rust for low‑level core development.
Tauri + React for the desktop UI container.
TypeScript for UI‑side logic.
RPC for communication between DSL components.
Repository
Source code and ongoing development can be followed at https://github.com/inherd/uncode.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
phodal
A prolific open-source contributor who constantly starts new projects. Passionate about sharing software development insights to help developers improve their KPIs. Currently active in IDEs, graphics engines, and compiler technologies.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
