The open-source low-code platform built on a graph.
Data model, REST API, pages, business logic, workflows and security – one coherent system on Neo4j, running on your own infrastructure. In active development for over 15 years.
- Types
- Data
- Screens
- Processes
- Permissions

One system instead of a stack of tools.
No separate database, ORM, backend framework, API layer, auth library, frontend framework or migration tool. Every part of the platform is one territory of the same graph.
-
Types, properties, relationships and constraints – modeled in the visual schema editor and enforced at database level.
Report → HAS_STATE → State -
Every type is a CRUD endpoint with filtering, sorting and pagination. JSON views control what each context sees.
GET /structr/rest/Report?state=open -
Build pages visually
ScreensServer-side rendering with template expressions, repeaters and event–action mappings straight to backend operations.
${report.title} -
Automate workflows
ProcessesDraw BPMN processes in the visual process editor: user tasks, decision gateways, timers and messages – bound to your types and assigned to the right people.
Submit → Review → Decision? → Publish -
Write logic in JavaScript
Power ToolsWhen the visual tools stop, server-side JavaScript on GraalVM and StructrScript continue. Methods, lifecycle callbacks, cron jobs.
$.find("Report", { state: "open" })
The schema is graph data itself. Modifications apply in milliseconds while the system is running – no migration scripts, no deployment cycle.
-

Schema Editor. Types, properties and relationships – changes take effect in milliseconds.
-

Process Editor.Model BPMN processes with user tasks, gateways and events – and run them on your own data.
-

UI Builder.Build pages in the page tree and see the App Graph: elements, repeaters, components and wired actions at a glance.
Relationships are stored, not reconstructed.
Relational platforms rebuild every relationship at query time through JOINs – and the cost multiplies as your model grows. In Neo4j a relationship is a direct pointer: one hop costs the same whether you hold a thousand records or a hundred million. No other major low-code platform is built this way.
MATCH (r:Report)-[:IN_STATE]->(s:State {name: 'open'}) RETURN r LIMIT 10 · 10 of 234
-
Connected models stay fast. Deep, relationship-heavy data performs without denormalization or query tuning.
-
Permissions follow hierarchies. Access structures that mirror your organization resolve efficiently.
-
Real-world networks map directly. Supply chains, workflows, knowledge graphs, org charts – graph in, graph out.
-
No ORM mismatch. Application objects are graph nodes and relationships. Cypher is available in your business logic.
A general-purpose application platform.
Plus multi-site hosting, file management, localization, mail templates, spatial indexing and Server-Sent Events.
- Internal business apps
- CRM & ticketing
- Asset tracking
- Customer portals
- Data platforms with complex access control
- Document & content management
- Multi-source integrations (JDBC, MongoDB, Kafka, MQTT, REST)
- Workflow automation
- Prototypes that grow into production
Build the 20% that is yours. The platform carries the other 80%.
- vs.
Traditional stacks
React + Node + Postgres, Django, Spring, Rails: one platform replaces the whole assembly, and its maintenance surface.
- vs.
Other low-code platforms
Self-hosted, standard JavaScript instead of proprietary languages, no tier limits on users, apps or API calls – and a graph underneath.
- vs.
Off-the-shelf software
Model your own processes instead of bending them to a vendor’s assumptions. Change the schema when requirements change.
- vs.
Fully custom development
Persistence, APIs, auth, users, files and rendering exist on day one. Your team builds the domain-specific part.
- vs.
Closed-source platforms
Audit it, extend it, fix it. For regulated industries this is risk management, not philosophy.
- vs.
US-owned platforms
GDPR and data residency without CLOUD-Act exposure. Developed and maintained under German and EU law.
Data residency. Self-hosted means your data stays exactly where you deploy it. No telemetry, no cloud dependencies.
Legal certainty. No Schrems-II uncertainty around transatlantic transfers – the vendor sits under EU jurisdiction.
Geopolitical independence. Unaffected by sanctions, export restrictions or policy changes abroad.
Long-term alignment. 15+ years as an independent German Mittelstand company – no VC pressure to pivot or exit.
Standard parts. Nothing proprietary in the way.
Your data sits in a standard Neo4j database you can query, back up and migrate independently of Structr.
RuntimeJava on GraalVM – Java, JavaScript, Python, Ruby and moreDatabaseNeo4j (primary); experimental: Memgraph, Amazon NeptuneDeploymentDocker, Debian packages, manual install on any Linux serverAPIsREST, OpenAPI, Server-Sent Events, WebSocketIntegrationsJDBC, MongoDB, MQTT, Kafka, Apache Pulsar, FTP, Email/IMAP, RSSSecurityOAuth 2.0, JWT, JWKS, 2FA, object-level permissions, SSL/TLSScriptingServer-side JavaScript (GraalVM), StructrScript, CypherAdmin UIDashboard, Schema, Pages, Data, Code, Graph, Flows, ProcessesRequiresJava 25+, Neo4j 5.x or 2026.x
Three ways in. Pick your altitude.
- App altitude
Try it now
A free cloud-hosted instance managed by the Structr team. No installation, no credit card, ready in minutes.
https://structr.cloudTry it now - Territory altitude
Run it locally
The Docker setup gets you a full instance with Neo4j for development.
docker compose up -dDocker Setup - Node altitude
Deploy to production
Structr installs as a standard Debian package on any Linux server. Then build your first application with the tutorial.
Debian package · any Linux serverBuild Your First Application