
Appsmith Project Structure
The open-source low-code platform for building internal tools. A complex Java/Spring Boot backend combined with a sophisticated React frontend.
Updated 2025-12-30
Project Directory
Repository Info
- Repository-appsmithorg/appsmith
- Stars-35k+
- License-Apache-2.0 / Commercial
- Last Analyzed-December 2025
Tech Stack
- Backend-Java (Spring WebFlux)
- Frontend-React + Redux Saga
- Database-MongoDB
- Cache-Redis
- Build Tool-Maven / Yarn
Architecture Notes
Appsmith uses a reactive stack on the backend with **Spring WebFlux** and **Reactor**, allowing it to handle high concurrency efficiently. The frontend is a heavy React application that manages a complex state (the widget tree and evaluation graph). The 'Plugin' system allows Appsmith to connect to any datasource (Postgres, Snowflake, REST APIs) in a modular way.
Key Directories
- app/server/appsmith-server/-The main API server. Handles user authentication, page rendering logic, and orchestrates actions.
- app/server/appsmith-plugins/-Contains individual Maven modules for each integration (e.g.,
postgres-plugin,restApi-plugin). This isolation prevents dependency conflicts between drivers. - app/client/src/widgets/-The library of UI components (Table, Input, Button) that users drag and drop onto the canvas.
Why This Structure?
Appsmith is a great example of a modern Enterprise Java application. It shows how to use Spring Boot in a non-blocking way (WebFlux) and how to structure a large monorepo that contains both a complex Java backend and a TypeScript frontend.