Nuxeo / DAM / PAM / ECM specialistsContact
Home/Insights/Nuxeo
Insights

Developing Nuxeo Without Studio (Because You Asked)

Jul 10, 20263 min read

Developing Nuxeo Without Studio (Because You Asked)

A few weeks ago, I wrote an article about Nuxeo Open Source and got some really great feedback! I still think that no matter how you're running Nuxeo-self-hosted or in the cloud-the best part about it being open source is that you (and now, all the AI models out there) have full access to the source code.

That means that any reasonably skilled dev team can learn and accomplish a lot by digging through the codebase, especially with the excellent JUnit test coverage that Nuxeo maintains.

But someone reached out with a great follow-up question: "What if I want to run Nuxeo Open Source... but how do I customize it without using Nuxeo Studio?"

✋ First things first: I am NOT saying "don't use Studio."

Nuxeo Studio is a fantastic tool that empowers teams to quickly configure things like schemas, document types, workflows, automation, and more. Behind the scenes, Studio generates the necessary configuration files and bundles them into a JAR and Marketplace package. While it doesn't produce Java code (so there's nothing to compile), it creates all the XML and resource files needed to deploy your customizations.

But in some cases, maybe you're:

  • Building a complex feature that Studio doesn't yet expose
  • On the open source version only
  • Just curious 😄

There's one major feature in Nuxeo that truly benefits from Studio for the initial setup: workflows. Studio's visual editor generates complex XML definitions that would be difficult (and tedious) to handcraft.

But don't worry-outside of Studio, you can still implement powerful workflow-like behavior using automation chains, custom operations, event listeners, and standalone task logic.

So let's look at how to build the rest of Nuxeo's features manually using the Nuxeo CLI, and a bit of XML and Java.

🛠 How to Get Started Without Studio

Here's what's in Studio's "Configuration" panel, and how you can build each of those manually:

📦 Project Bootstrapping

  • Install CLI: Nuxeo CLI Docs
  • Bootstrap Bundle & Package: nuxeo bootstrap multi-module → generates Maven project with nuxeo and marketplace modules
  • Create a Nuxeo Marketplace Package: Creating Nuxeo Packages

Feature-by-Feature: Customize Nuxeo Without Studio

  • Schemas, Document Types, and Facets - Define your data model by creating .xsd schemas, contributing document types, and attaching reusable facets via XML. Data Modeling
  • Life Cycles - Define lifecycle states and transitions in XML. Example: LifeCycleCoreExtensions.xml on GitHub
  • Structure Templates - Automate folder structures using content templates defined in XML. Example: content-template-contrib.xml on GitHub
  • Page Providers - Define listings with pagination, filtering, and custom queries via XML. Page Providers
  • Search Mapping (Elasticsearch) - Customize index settings, analyzers, and mappings. Configuring Elasticsearch Mapping
  • Automation Chains - Define reusable chains of operations via XML, and contribute your own custom operations in Java. Automation Chain Guide, Contributing an Operation
  • Automation Scripting - Write custom logic in JavaScript under resources/scripts/. (But if you're working outside Studio, it's probably better to write Java operations instead-more powerful, testable, and maintainable.) Automation Scripting, Contributing an Operation
  • Event Handlers - Trigger automation chains or scripts in response to platform events. Events and Messages
  • Mail Templates - Send custom emails using Freemarker .ftl templates in automation chains. Template Rendering Addon
  • Permissions - Configure access control using ACLs, permission inheritance, and security policies. Nuxeo Security System
  • Users & Groups - Data Lists and Directories
  • Vocabularies - Manage vocabularies using directory contributions. Same mechanism as users/groups. Data Lists and Directories
  • Web UI - Extend or build Polymer-based interfaces and components. Web UI Overview

💡 Pro Tip

A great idea is to look at the source code of nuxeo-retention. It includes:

  • Schemas, document types
  • Automation chains & scripting
  • Event listeners
  • A UI bundle
  • A full Marketplace package structure

It's a solid example of how to build and maintain a real Nuxeo plugin outside Studio.

Hope this helps! And, remember, while everything here is possible without it, Studio is generally the fastest way to customize Nuxeo.

← All insights

Keep reading

Related insights

Talk to a Maretha Consultant

Tell us what you're struggling with, and we'll tell you how we can help you.

Talk to us