# lowcoder-org/lowcoder architecture

> Architecture diagram of the GitHub repository lowcoder-org/lowcoder, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/lowcoder-org/lowcoder
- Repository: https://github.com/lowcoder-org/lowcoder

## Overview

Lowcoder is a low-code platform for building and sharing internal or customer-facing applications. The principal workflow is to assemble a UI, connect it to data or APIs, run queries and JavaScript-backed behavior, then publish or embed the result. The repository tree and README also describe reusable modules and queries, custom components, meeting components, and native embedding. Sampled server files are mostly service interfaces, so the graph shows only broad documented flow and avoids claiming implementation details for unsampled services.

Main entry points: [`client/packages/lowcoder`](https://github.com/lowcoder-org/lowcoder/tree/main/client/packages/lowcoder) (Visual builder), [`client/packages/lowcoder-sdk`](https://github.com/lowcoder-org/lowcoder/tree/main/client/packages/lowcoder-sdk) (App SDK), [`server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/query/LibraryQueryApiService.java`](https://github.com/lowcoder-org/lowcoder/blob/main/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/query/LibraryQueryApiService.java) (Query library API), [`server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/service/AuthenticationApiService.java`](https://github.com/lowcoder-org/lowcoder/blob/main/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/service/AuthenticationApiService.java) (Authentication API)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_authoring["App authoring"]
  node_builder["Visual builder"]
  node_ui_components["UI components"]
  node_design_system["Design controls"]
  node_workspace_manager["Workspace management"]
end

subgraph group_runtime["App runtime"]
  node_app_core["App SDK"]
  node_evaluator["Expression evaluator"]
end

subgraph group_services["Platform services"]
  node_app_query_api["App query API"]
  node_query_execution["Query execution"]
  node_data_sources["Data sources"]
  node_library_query_api["Query library API"]
  node_library_query_service["Query library"]
  node_query_records[("Query history")]
  node_authentication_api["Authentication API"]
  node_authentication["Auth configuration"]
  node_sessions["User sessions"]
end

subgraph group_extensions["Extensions"]
  node_native_embed["Native embed SDK"]
  node_custom_components["Custom components"]
  node_meeting_components["Meeting components"]
  node_module_templates["Component modules"]
end

node_builder_user(("App builder"))
node_app_user(("App user"))
node_external_data[("Data services")]
node_website["Host website"]

node_builder_user -->|"authors in"| node_builder
node_builder -->|"configures"| node_ui_components
node_builder -->|"uses controls"| node_design_system
node_app_user -->|"uses app"| node_app_core
node_app_core -->|"renders"| node_ui_components
node_app_core -->|"evaluates expressions"| node_evaluator
node_app_core -->|"requests queries"| node_app_query_api
node_app_query_api -->|"executes queries"| node_query_execution
node_query_execution -->|"queries data"| node_external_data
node_app_core -->|"runs reusable queries"| node_library_query_api
node_library_query_api -->|"manages queries"| node_library_query_service
node_library_query_api -->|"records versions"| node_query_records
node_app_user -->|"authenticates"| node_authentication_api
node_authentication_api -->|"resolves auth config"| node_authentication
node_authentication_api -->|"creates sessions"| node_sessions
node_builder_user -->|"manages workspaces"| node_workspace_manager
node_website -->|"hosts app"| node_native_embed
node_builder -.->|"extends with"| node_custom_components
node_builder -->|"adds meeting UI"| node_meeting_components
node_builder -->|"reuses modules"| node_module_templates

click node_builder "https://github.com/lowcoder-org/lowcoder/tree/main/client/packages/lowcoder"
click node_ui_components "https://github.com/lowcoder-org/lowcoder/tree/main/client/packages/lowcoder-comps/src/comps"
click node_design_system "https://github.com/lowcoder-org/lowcoder/tree/main/client/packages/lowcoder-design/src/components"
click node_app_core "https://github.com/lowcoder-org/lowcoder/tree/main/client/packages/lowcoder-sdk"
click node_evaluator "https://github.com/lowcoder-org/lowcoder/tree/main/client/packages/lowcoder-core/src/eval"
click node_app_query_api "https://github.com/lowcoder-org/lowcoder/blob/main/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/query/ApplicationQueryApiService.java"
click node_query_execution "https://github.com/lowcoder-org/lowcoder/blob/main/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/query/service/QueryExecutionService.java"
click node_data_sources "https://github.com/lowcoder-org/lowcoder/tree/main/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/query/service"
click node_library_query_api "https://github.com/lowcoder-org/lowcoder/blob/main/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/query/LibraryQueryApiService.java"
click node_library_query_service "https://github.com/lowcoder-org/lowcoder/blob/main/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/query/service/LibraryQueryService.java"
click node_query_records "https://github.com/lowcoder-org/lowcoder/blob/main/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/query/service/LibraryQueryRecordService.java"
click node_authentication_api "https://github.com/lowcoder-org/lowcoder/blob/main/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/service/AuthenticationApiService.java"
click node_authentication "https://github.com/lowcoder-org/lowcoder/blob/main/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/authentication/AuthenticationService.java"
click node_sessions "https://github.com/lowcoder-org/lowcoder/blob/main/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/SessionUserService.java"
click node_workspace_manager "https://github.com/lowcoder-org/lowcoder/blob/main/client/packages/lowcoder/src/util/useWorkspaceManager.ts"
click node_native_embed "https://github.com/lowcoder-org/lowcoder/tree/main/client/packages/lowcoder-sdk"
click node_custom_components "https://github.com/lowcoder-org/lowcoder/tree/main/client/packages/lowcoder-plugin-demo/src"
click node_meeting_components "https://github.com/lowcoder-org/lowcoder/tree/main/client/packages/lowcoder-comps/src/comps/agoraMeetingComp"
click node_module_templates "https://github.com/lowcoder-org/lowcoder/tree/main/client/packages/lowcoder-cli-template-typescript/src"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_builder,node_ui_components,node_design_system,node_workspace_manager,node_app_user toneBlue
class node_app_core,node_evaluator,node_external_data toneAmber
class node_app_query_api,node_query_execution,node_data_sources,node_library_query_api,node_library_query_service,node_query_records,node_authentication_api,node_authentication,node_sessions toneMint
class node_native_embed,node_custom_components,node_meeting_components,node_module_templates toneRose
class node_builder_user,node_website toneIndigo
```

## Components

### App authoring

- [Visual builder](https://github.com/lowcoder-org/lowcoder/tree/main/client/packages/lowcoder): `client/packages/lowcoder`
- [UI components](https://github.com/lowcoder-org/lowcoder/tree/main/client/packages/lowcoder-comps/src/comps): `client/packages/lowcoder-comps/src/comps`
- [Design controls](https://github.com/lowcoder-org/lowcoder/tree/main/client/packages/lowcoder-design/src/components): `client/packages/lowcoder-design/src/components`
- [Workspace management](https://github.com/lowcoder-org/lowcoder/blob/main/client/packages/lowcoder/src/util/useWorkspaceManager.ts): `client/packages/lowcoder/src/util/useWorkspaceManager.ts`

### App runtime

- [App SDK](https://github.com/lowcoder-org/lowcoder/tree/main/client/packages/lowcoder-sdk): `client/packages/lowcoder-sdk`
- [Expression evaluator](https://github.com/lowcoder-org/lowcoder/tree/main/client/packages/lowcoder-core/src/eval): `client/packages/lowcoder-core/src/eval`

### Platform services

- [App query API](https://github.com/lowcoder-org/lowcoder/blob/main/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/query/ApplicationQueryApiService.java): `server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/query/ApplicationQueryApiService.java`
- [Query execution](https://github.com/lowcoder-org/lowcoder/blob/main/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/query/service/QueryExecutionService.java): `server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/query/service/QueryExecutionService.java`
- [Data sources](https://github.com/lowcoder-org/lowcoder/tree/main/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/query/service): `server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/query/service`
- [Query library API](https://github.com/lowcoder-org/lowcoder/blob/main/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/query/LibraryQueryApiService.java): `server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/query/LibraryQueryApiService.java`
- [Query library](https://github.com/lowcoder-org/lowcoder/blob/main/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/query/service/LibraryQueryService.java): `server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/query/service/LibraryQueryService.java`
- [Query history](https://github.com/lowcoder-org/lowcoder/blob/main/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/query/service/LibraryQueryRecordService.java): `server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/query/service/LibraryQueryRecordService.java`
- [Authentication API](https://github.com/lowcoder-org/lowcoder/blob/main/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/service/AuthenticationApiService.java): `server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/authentication/service/AuthenticationApiService.java`
- [Auth configuration](https://github.com/lowcoder-org/lowcoder/blob/main/server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/authentication/AuthenticationService.java): `server/api-service/lowcoder-domain/src/main/java/org/lowcoder/domain/authentication/AuthenticationService.java`
- [User sessions](https://github.com/lowcoder-org/lowcoder/blob/main/server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/SessionUserService.java): `server/api-service/lowcoder-server/src/main/java/org/lowcoder/api/home/SessionUserService.java`

### Extensions

- [Native embed SDK](https://github.com/lowcoder-org/lowcoder/tree/main/client/packages/lowcoder-sdk): `client/packages/lowcoder-sdk`
- [Custom components](https://github.com/lowcoder-org/lowcoder/tree/main/client/packages/lowcoder-plugin-demo/src): `client/packages/lowcoder-plugin-demo/src`
- [Meeting components](https://github.com/lowcoder-org/lowcoder/tree/main/client/packages/lowcoder-comps/src/comps/agoraMeetingComp): `client/packages/lowcoder-comps/src/comps/agoraMeetingComp`
- [Component modules](https://github.com/lowcoder-org/lowcoder/tree/main/client/packages/lowcoder-cli-template-typescript/src): `client/packages/lowcoder-cli-template-typescript/src`

### Other components

- **App builder**
- **App user**
- **Data services**
- **Host website**

## Connections

- App builder → Visual builder: authors in
- Visual builder → UI components: configures
- Visual builder → Design controls: uses controls
- App user → App SDK: uses app
- App SDK → UI components: renders
- App SDK → Expression evaluator: evaluates expressions
- App SDK → App query API: requests queries
- App query API → Query execution: executes queries
- Query execution → Data services: queries data
- App SDK → Query library API: runs reusable queries
- Query library API → Query library: manages queries
- Query library API → Query history: records versions
- App user → Authentication API: authenticates
- Authentication API → Auth configuration: resolves auth config
- Authentication API → User sessions: creates sessions
- App builder → Workspace management: manages workspaces
- Host website → Native embed SDK: hosts app
- Visual builder → Custom components: extends with
- Visual builder → Meeting components: adds meeting UI
- Visual builder → Component modules: reuses modules
