Evolve logic & UX | Rethink forms | become a must have asset to nextcloud core
Nobody has claimed this yet.
- Dominant language
- JavaScript
- Stars
- 382
- Forks
- 127
- Avg merge
- 19h 31m
- Merged PRs (30d)
- 75
Description
Evolve Nextcloud Forms to SurveyJS class with a schema and logic core and a creator UX
Summary
Forms is intentionally simple and works for quick polls. Many Nextcloud deployments (public sector, education, multi-section clubs, enterprises) need conditional logic, governance, and integrations. Without these, users build workarounds or move to external SaaS. A schema-first model with a small expression engine and a creator UI covers these needs while keeping existing simple use cases intact.
Target parity (functional, not 1:1)
- Runtime: JSON schema with conditional visibility (
visibleIf), computed values, answer piping, multi-page flow, dynamic or repeating groups, richer question types, i18n, accessible rendering. - Creator: drag-and-drop builder, property grid, live preview, theme editor. JSON round-trip identical to the runtime schema.
- Events and integration: stable REST plus signed webhooks on submission. First-class bridges to Flow, Tables, Deck, and external systems.
Why this helps maintainers
- Fewer one-off requests. An expression and visibility layer reduces long-tail “add setting X” tickets.
- Clearer boundaries. Definition, renderer, and submission or storage are separated, which improves tests and avoids UI or business-logic leaks.
- Easier contributions. A documented schema with a validator makes reviews contract based.
- Lower support load. A consistent model with draft or publish, versioning, and audit removes many state mismatch bugs.
Minimal architectural changes (incremental, backward compatible)
- Add FDS v1 (Form Definition Schema) and a validator on server and build time.
- Add a small expression engine (JSON-Logic-like) for visibility, validation, and computed defaults.
- Implement a Creator that edits FDS v1 (drag-and-drop, property grid, live preview).
- Emit submission events as signed webhooks and document Flow recipes.
- Provide a v0 to v1 converter for existing simple forms. Keep legacy rendering read compatible during transition.
Acceptance criteria for P0
- A form that uses conditional visibility, computed fields, and a repeating group renders correctly and validates on the server.
- The Creator can build the same form with JSON round-trip parity.
- Submissions trigger webhooks and work with Flow. The API remains stable.
- WCAG-compliant rendering and an audit log for schema publishes and changes.
Ecosystem impact
If Forms reaches SurveyJS class, many organizations can stay on Nextcloud instead of paying for Typeform, SurveyMonkey, or Qualtrics. Data remains on premises and within GDPR. Total cost of ownership drops for public sector, education, NGOs, and clubs. Cross-app value increases: submissions can start Flow automations, create Deck cards, populate Tables or Collectives, notify in Talk, or land in Files with auditability. Hosting partners get a clear upsell for self-hosted enterprise forms. A stable schema and API invite third-party validators, widgets, and connectors. This moves Nextcloud from a files-plus-collaboration hub toward a process platform used daily for business-critical work.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The issue does not name files, tests, or an entry point. Begin by breaking the proposal into the stated P0 areas—FDS v1 and validation, conditional logic, the Creator, webhooks and Flow integration—and use the acceptance criteria to define completion for each part.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- api, backend, frontend, full-stack
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100