See Alfresco Community Edition (LGPL v3): https://en.wikipedia.org/wiki/Alfresco_(software)

Specifically, I need something that will fulfill all of the following conditions:

  • manage multiple versions of documents (say, XML, .doc, .docx that are being translated, proofread, etc., with viewable modification trail, etc.)

  • have programmable business workflow

  • be extensible in the sense of being written well enough (code quality) that both core modification is practical and possibly by writing plugins for it

  • per subject, be written in Python or Haskell (preferable, although not strictly a must)

  • open source

  • preferably, have REST API for business processes (say, query if document has been updated; upload a doc; notify a project stakeholder, etc.)

Example usecase scenario

Suppose you have a translation agency. There are project stakeholders, such as Customer, Project Managers, Translators, QA.

A customer should be able to upload and receive documents in limited web interface. PM should be able to see the whole project and split a job (multiple files) among translators. Translator should be able to download & upload edited version. QA should be able to give go ahead/block translated document. Once everything is translated & greenlighted by QA, it should be possible to program the business workflow engine to either notify Customer his order is ready, or, on programmer or even PM modification (configuration) notify PM instead for final approval. Etc.

The business process engine should be programmable to provide for registering for events (such as Translator Jane Doe uploading a document into the project 5), creating them, etc.

  • Thanks for your update! But it's still a bit broad. "Manage documents:" If that's missing, it's not a DMS, right? ;) "Be extensible": in which way? Please check with similar questions, and especially see Simple open source document scan/tag/catalog more lightweight than Alfresco & Lightweight DMS with built in REST API (both asking for Alfresco alternatives).
    – Izzy
    Commented Feb 23, 2016 at 21:33
  • Maybe OwnCloud could be a starting point for you. OwnCloud is written in PHP but has an excellent REST-API and there are Python Client libraries available. Your workflow is not available out of the box, this you would have to do by your own, e.g. in Python.
    – WeSee
    Commented Feb 24, 2016 at 12:06
  • Just curious, why Python/Haskell? If it is for parallelism, would Scala or Erlang based solutions be OK too?
    – Nicolas Raoul
    Commented Feb 24, 2016 at 12:27
  • @NicolasRaoul: well that's my skillset (Python) or what I prefer improving on (Haskell) :-) Other languages would be OK too, but those are preferable personally to me. Commented Feb 24, 2016 at 16:20

1 Answer 1


CPS is the "old" python nuxeo code before the java rewrite: http://cps-cms.org/sections/index-en .

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.