About DADI

1. What does "DADI" mean?

DADI is an acronym for Decentralised Architecture for a Democratic Internet.

2. There are a lot of platform choices. Why choose DADI?

DADI does things differently. It is a web services framework with data at its heart, enabling the creation of real time, individually targeted experiences driven by machine learning. No other technology stack, framework or content management system provides this functionality.

It’s Open Source; and it powers some of the largest and most popular products on the Web.

With DADI you can easily create versatile, content centric products. To see why others have chosen DADI, check out our success stories.

3. How can I help and contribute to DADI?

Contributing guidelines for all of the apps in our stack can be found at the top level of their respective repositories in Git:

4. Why does DADI have some features but not others?

We value innovation and stability. We are careful about sacrificing one for the other, so we work on balance. Because DADI is used widely in production, every single line of code that goes into DADI’s core is meticulously scrutinized. Most changes to core go through dozens, if not hundreds, of revisions before being included.

We’re also aware of the time great software design, development, translation, and testing takes. Because DADI is built around a microservices architecture, and because our focus is on keeping the core app set to essential functionality, encouraging contributed modules to extend it, our version release cycle happens a far greater pace than alternative solutions.

5. When and how are new versions released?

DADI’s release cycle schedule uses Semantic Versioning 2.0.0:

Given a version number MAJOR.MINOR.PATCH, increment the:

  • MAJOR version when you make incompatible API changes,
  • MINOR version when you add functionality in a backwards-compatible manner, and
  • PATCH version when you make backwards-compatible bug fixes.

Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.

Working with DADI

1. Can I migrate a WordPress/Drupal/whatever site to DADI?

Yes. And given the development pace achievable with DADI, doing so does not usually represent a significant amount of work. Data mappings to import your content into DADI API will be required and your templates will need to be moved to DADI Web (which supports multiple template languages, meaning that you probably need to redevelop them). And that’s about it.

“Products built with DADI are delivered in days and weeks, not weeks and months.”

2. How can I use DADI in my mobile app?

At the heart of DADI is API, a high-performance RESTful API layer that is perfect for powering mobile applications. You can use with DADI Publish to provide a CMS for iOS/Android/Windows Phone. And when chained with DADI Predict and DADI Track, you can start to make real time content decisions based on data intelligence.

3. Does DADI use any code conventions or styles?

Yes. Follow the DADI Coding Standards found within the Contributing Guidelines for each DADI app when submitting any code for inclusion in the DADI project.

To ensure consistency throughout the source code, keep these rules in mind as you are working:

  • Please use two-space indentation, as used in Node.JS itself
  • All features or bug fixes must be tested by one or more tests. Browse our test suites for examples
  • All public API methods must be documented with JSDoc

4. May I change DADI’s core files to make changes to my site or application?

We strongly recommend that you don’t. Hacking the core means that you won’t be able to take advantage of DADI updates - including any security updates - without losing your changes. It also makes it much less likely that bugs you create will be fixed by the community. Instead, make use of the data sources, events and hooks framework within the individual DADI apps.

5. Where can I get help working with DADI?

Reach out to us on our public Slack. Or drop us a line. The issue queue in Git for each of the apps in the DADI platform is how we bring issues to the community’s attention.