An open-source development and runtime platform built on a graph database.
Structr is where you build your application and where it runs. One Java server on top of Neo4j gives you a visual schema editor, an instant REST API, server-side rendered pages, BPMN workflows, object-level security and server-side JavaScript – develop and operate on the same platform, without a separate build or deployment stack. Self-hosted on your own infrastructure or in the Structr Cloud. In active development since 2010.
- Types
- Data
- Screens
- Processes
- Permissions

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
One system instead of a stack of tools.
Get started with zero headache and zero dependencies: No database, ORM, framework, API, Auth tool needed - Structr has it all out of the box.
-
Install Structr
SetupStart a full instance with Neo4j in one command, or use a free cloud instance.
docker compose up -d -
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 your first page
ScreensServer-side rendering with template expressions, repeaters and event–action mappings straight to backend operations.
${report.title} -
Automate your first workflow
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 your business logic
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.
Screenshots
-

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 application platform is built this way.
MATCH (r:Report)-[:IN_STATE]->(s:State {name: 'open'}) RETURN r LIMIT 10 · 10 of 234
-
Faster development speed. Connected models need no denormalization, JOIN tuning or query optimization.
-
No overhead. No ORM mismatch: application objects are graph nodes and relationships, and Cypher is available in your business logic.
-
Enterprise-ready. Permissions follow organizational hierarchies and resolve efficiently at scale.
-
Maps real-world data flows. Supply chains, workflows, knowledge graphs and org charts: graph in, graph out.
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 application 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 to get started.
-
Try on Cloud
A free cloud-hosted instance managed by the Structr team. No installation, no credit card, ready in minutes.
https://structr.cloudTry it now -
Run on Docker
The Docker setup gets you a full instance with Neo4j for development.
docker compose up -dDocker Setup -
Deploy on Linux
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