A data-driven and cloud-aware document authoring engine
JavaScript CoffeeScript
Pull request Compare This branch is 883 commits ahead, 548 commits behind substance:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
couch
db
layouts
lib
public
src
styles
templates
test
.gitignore
.gitmodules
Cakefile
LICENSE
README.md
config.json.example
package.json
server.js
settings.json

README.md

Substance

Substance is a fully web-based document authoring and publishing platform.

Substance

With Substance, writers, journalists, scientists and everyone else who's interested in publishing can use an open platform for writing and sharing articles. Document authoring used to take place in word processors on the Desktop like MS Word or Open Office. We believe that today this can all be be done in the browser, in a simpler, more collaborative way.

Semantic Editing

Unlike traditional word-processors, Substance focuses on content, by leaving the layout part to the system, not the user. Because of the absence of formatting utilities, it suggests structured, content-oriented writing.

Create once, publish everywhere

By considering content as data, documents can be shared in many ways. On websites, Tablets, eBook Readers.

Collaboration

Substance targets open collaboration. Readers can participate and comment on certain text passages. In future they'll even be able to submit patches, that can be applied by the owner.

Integration

Substance exposes documents as data, ready to be compiled into arbitrary output formats ( HTML, PDF,ePub, ...) or integrated with other applications (like websites).

Future

We are more focussing on pushing forward Substance as an open source technology stack (rather than a product). It turned out enabling developers to contribute is key to push a platform forward.

That being said, we're working on an all new architecture for Substance, to solve the issues with the current implementation and to turn it into a flexible toolset anyone can use and customize.

Our new take will feature a generic document format including a protocol for document manipulation, realtime synchronization based on Operational Transformation, a scaleable flexible storage and messaging mechanism, as well as a framework for building content composition tools for the browser.

Substance Architecture

Many people got excited about the idea of Substance, luckily there are a lot of developers among them, passionate about helping with making it happen. It's exciting to see such a huge amount of support for a project you initiated 1.5 years ago.

Contributors

  • Michael Aufreiter (AT)

    That's me, I started working on Substance in late 2010.

  • Samo Korosec (AT)

    Samo helps me out in all visual regards. He came up with nice colors and UI designs for Substance initially and helps me out when UX decisions need to be made.

  • Oliver Buchtala (DE)

    Oliver is my former room-mate, and extraordinaire software developer and scientist. He got me excited about graphs, parsers and much more.

  • Tim Baumann (DE)

    He joined Substance last summer, when he basically rewrote the Substance Letterpress Service in order to use PanDoc. He's also working on a javascript library that provides Operational Transformation.

  • Forbes Lindesay (UK)

    He'll dedicate some time to Substance during the summer. Welcome! :)

  • Pier Paolo Ramon (IT)

    Our newest collaborator. But see for yourself how he got excited about the project.

  • Victor Saiz (SWE)

    And an even newer one. Welcome Victor!

Support us

Implementing Substance is a tough mission. We are a team of passionate developers working on fixing digital publishing. We don't do it for profit but we need any support we can get. If you are a developer and you feel like you could be of help, let us know. If you're not on the technical side, consider sponsering some work so we can move faster. Thanks everyone!

Get in touch using our mailing list, join the conversation Freenode IRC in the #_substance channel, or send tweets to @_substance.

References

  • Substance.io — Start using it

  • Introduction — Learn more

  • Internals — Technical Documentation & Installation Instructions

  • Data.js — Data Manipulation and Graph Persistence for Node.js and the Browser

  • PROPER — A Semantic Rich Text Editor

  • Letterpress — Cross Media Publishing for Substance Documents