# Orbeon Forms: an open source web form builder with a runtime behind it

> Orbeon Forms CE is a Scala web form builder and runtime for creating, publishing and managing complex forms, with visual authoring, a responsive runner, PDF and Excel output and integration services. It is LGPL-2.1 licensed, ships as a Community Edition and a paid Professional Edition, and the repository layout shows both an XForms processor and a newer web stack.

**orbeon/orbeon-forms** — Orbeon Forms - Build, run, and manage web forms on-premises or in the cloud.

- Repository: https://github.com/orbeon/orbeon-forms
- Website: http://www.orbeon.com/
- Stars: 545 · Forks: 214
- Language: Scala
- License: LGPL-2.1
- Published: 2026-10-22 · Updated: 2026-10-22 · Language: en
- Canonical page: https://hysenlabs.com/projects/orbeon-orbeon-forms

## A platform, not a form component

Orbeon Forms CE is an open source web form builder and runtime for creating, publishing and managing complex forms, and the README is explicit about the audience. It helps you manage large numbers of forms, control access, collect data and attachments, generate PDF and Excel files, and integrate forms with existing systems, and it is used around the world in government, banking, healthcare, telecom and education. The design target is stated as teams that need secure, maintainable, compliant and integrated forms rather than one-off surveys. That distinction is the whole product decision. A one-off survey is a form page with a response store, and plenty of tools do that. What Orbeon Forms offers instead is a lifecycle, with the three capability areas being Form Builder as a browser-based form authoring tool, Form Runner for running responsive forms with validation, repeated sections, attachments, multi-page navigation and PDF output, and the management of the form lifecycle from design and testing through publishing, data capture, versioning and submission. The table of areas makes the scope concrete, with form authoring covering sections, grids, repeated data, validation rules, calculations, visibility rules and localization, and data capture covering the responsive runner, attachments, multi-page forms, accessibility, data validation and error summaries.

## Integration and output are the parts that pull it into an existing stack

The integration row of the capability table is what distinguishes a platform from a form builder, and it lists HTTP services, database services, actions, Java and JavaScript APIs, and React and Angular components. That is a claim about how the thing gets used, since a form that writes to your own database through a configured service, and that exposes the same form to a React or Angular front end, is a different proposition from a form that only posts to a vendor endpoint. The output row covers automatic PDF generation, PDF templates, Excel export and the submitted data with attachments, and PDF output in particular is the feature that a government or healthcare deployment is usually buying. The operations row covers access control, form definition versioning, data persistence, deployment on Java servlet containers and cloud or on-premises hosting, and the combination of form definition versioning with a form lifecycle is what allows a published form to change without losing the meaning of the data already collected against the previous version. Everything in that table points at the same architecture, a server-side runtime that holds the definitions and the data, rather than a client that posts to a service.

## Open core, and the line between the editions

Orbeon Forms is open-core and available in two editions, and the README is careful about where the line falls. The Community Edition is for open source use, evaluation, development and self-supported deployments. The Professional Edition is for production deployments requiring commercial support, subscriptions, regular maintenance releases, performance improvements and advanced enterprise features. Both editions include Form Builder, Form Runner and the Orbeon Forms XForms processor, which is the important qualifier, since the difference is not that the free edition cannot build or run forms. The licensing is LGPL-2.1, and the package manifest agrees, so the community edition carries the terms of the Lesser GNU Public License, which is a weak copyleft licence: linking it into your own application is allowed, and the obligation attaches to modifications of the library itself rather than to your proprietary code that uses it. The repository tree shows the third party software the product includes, with software developed by the Apache Software Foundation, other third party software listed in build.sbt, Silk Icons under the Creative Commons Attribution 2.5 licence, PixelMixer icons, and schemas for XSLT 2.0 and XForms 1.1 under the W3C Software Licence, with the third-party-licenses directory holding the details.

## Running it, locally or through the demo

The Quick Start section is short and offers a graduated set of options. The fastest way to see Orbeon Forms is the online demo, and the README warns that the demo is public so you should not enter private information, which is a sensible warning to repeat. For local use there are three routes. You can use Docker to try the Professional Edition with a free trial licence. You can download Orbeon Forms CE or PE and install it in a Java servlet container such as Apache Tomcat. And you can follow the installation documentation for system requirements, servlet container setup, databases and production configuration, with the main documentation linked separately. The build is the standard Orbeon route, and the README says you usually do not have to compile it yourself, pointing contributors to a building page for the cases where you want to. The deployment target is a servlet container, and the tree confirms it with orbeon-war/, authorizer-war/, embedding-war/, proxy-portlet-war/ and a servlet-container-initializer/ module, alongside the standalone support modules.

## The repository holds two generations of the technology

The top level of the repository is where the most interesting information is, because the module names reveal the architecture and its history. There is a family of xforms modules, with xforms-analysis/, xforms-client-server/, xforms-common/, xforms-compiler/, xforms-filter-war/, xforms-filter/ and xforms-runtime/, which is the XForms processor that both editions include. Alongside it is a family of form-runner modules, with form-runner/, form-runner-client-server/, form-runner-common/ and form-runner-web/, and a form-builder/ directory. Then there is a set of web-facades/, web-support/, node-facades/ and content-filter/ directories, and an authorizer/ module for access control, and an embedding/ module. The other giveaway is the set of example directories, file-scan-example/ and file-scan-v2-example/, and the two shell scripts import-sample-data-into-demo.sc and import-sample-data-into-sqlite.sc, which are the classic form definitions loaded into a demo, and a demo-sqlite-database/ directory holding the sample database. The v1 and v2 examples sitting side by side are the clearest signal that the project has migrated from one rendering approach to another while keeping the old one alive, which is a maintenance commitment that a buyer should factor in.

## Where Orbeon Forms is the wrong choice

The first limit is the operational weight. A form builder that runs as a servlet application, with a database, a build.sbt, a Scala codebase spread across dozens of modules and an XForms processor, is a system to deploy, upgrade, back up and secure, and for a team whose actual need is a contact form or a survey, that is a large amount of surface for the problem. The second is the open core structure, which is not a flaw but a decision, and it means the features a large regulated deployment needs, the enterprise ones, are the ones behind the Professional Edition, so a team that starts on CE and then hits a requirement discovers a purchase. The third is the technology base, and the two generations of form engine in the tree, the XForms processor and the newer web stack, mean a deployment inherits a migration story that the README does not tell you about, so a team that inherits an Orbeon installation should establish which engine the forms in front of them actually use before planning any work. The fourth is that the project is a small company's product with a large surface, so the maintenance commitments of the Professional Edition are what make it viable for production, and the community edition's own recommendation is self-supported deployments. And the fifth is the scope of what it does not try to be, since it is a forms platform rather than a general application platform, so a workflow that needs approvals, task routing and a case model alongside the form is building the rest of the application themselves.

## Conclusion

Adopt Orbeon Forms CE if you need a form platform rather than a form page, because the value is in authoring, versioning, data capture and PDF output together, and because you need it to run on your own servlet container. Skip it if you need a form survey tool with no server component, or if your requirement is covered by a hosted service you would rather not run. Verify first which edition fits your use, since the Professional Edition adds commercial support, subscriptions and enterprise features, and that the XForms processor and the web stack modules in the repository are both still part of what you would deploy.

## FAQ

### What is Orbeon Forms CE and who is it for?

It is an open source web form builder and runtime in Scala for creating, publishing and managing complex forms, with a visual Form Builder, a responsive Form Runner and the Orbeon Forms XForms processor. It is aimed at teams that need secure, maintainable, compliant and integrated forms rather than one-off surveys, and is used in government, banking, healthcare, telecom and education.

### What is the difference between the Community Edition and the Professional Edition?

The project is open-core with two editions. The Community Edition is for open source use, evaluation, development and self-supported deployments, under the LGPL-2.1 licence. The Professional Edition is for production deployments requiring commercial support, subscriptions, regular maintenance releases, performance improvements and advanced enterprise features, and it is available under Docker with a free trial licence.

### How do I run Orbeon Forms locally?

The fastest option is the public online demo, where the README warns against entering private information. For a local run you can use Docker with a free trial licence of the Professional Edition, or download Orbeon Forms CE or PE and install it in a Java servlet container such as Apache Tomcat, following the installation documentation for system requirements, container setup, databases and production configuration. You usually do not have to compile the source yourself.

## Sources

- [License: LGPL-2.1](https://github.com/orbeon/orbeon-forms/blob/master/LICENSE)
- [orbeon/orbeon-forms on GitHub](https://github.com/orbeon/orbeon-forms)
- [Project website](http://www.orbeon.com/)
- [README](https://github.com/orbeon/orbeon-forms/blob/master/README.md)
- [Releases](https://github.com/orbeon/orbeon-forms/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/orbeon-orbeon-forms
