// the find
appsmithorg/appsmith
Platform to build admin panels, internal tools, and dashboards. Integrates with 25+ databases and any API.
Appsmith is a self-hostable low-code platform for building internal tools, admin panels, and dashboards by connecting widgets to databases and APIs through a drag-and-drop editor. It's aimed at engineering teams that need to ship internal tooling fast without building full-stack apps from scratch. The cloud version exists, but the self-hosted Docker deployment is the main draw for teams with data privacy concerns.
- Genuinely wide connector coverage: 25+ databases plus REST/GraphQL APIs, with native support for PostgreSQL, MySQL, MongoDB, Redis, S3, and others — most teams won't hit a gap for typical internal tools.
- The CI/CD setup is serious: separate workflows for client lint, unit tests, Cypress e2e, Playwright, Chromatic visual tests, and Helm chart validation. This is not a toy project with a single test job.
- Self-hosted path is first-class: Docker Compose single-container deployment works, Kubernetes Helm chart is maintained, and there are AMI/GCP marketplace options. The open-source tier isn't artificially crippled on deployment.
- Active development cadence with frequent commits and a large contributor base, reducing the risk that it goes stale or gets abandoned.
- The business model creates a real tension: RBAC, audit logs, Git sync for collaboration, and SSO are behind the commercial tier. For anything beyond a solo developer or tiny team, you'll hit paywalls quickly — the 'open-source' pitch loses its shine fast.
- Local development setup is painful. The frontend (React/Webpack), Java Spring Boot server, and RTS Node service all need to run simultaneously with specific env configs. The contributions guide acknowledges this but the cold-start time is genuinely high.
- The app's JSON-based DSL for storing application state in MongoDB can become a maintenance liability: schema migrations are opaque, and version controlling app definitions via Git is limited (and partially paywalled).
- Performance in complex apps degrades noticeably — a canvas with many widgets triggers expensive re-evaluations because the entire widget tree is evaluated on state changes. This is an architectural constraint, not a config issue you can tune away.