6 reasons why TerminusDB is the right toolkit to build collaborative apps
Tags: devops, database, productivity, opensource
Published: 2022-04-05 10:46:23

If you are looking to build collaborative applications where users are a primary source of data and content, then this article explains the TerminusDB and TerminusX features that make them well-suited data management toolkits for building collaborative applications.

## Collaborative apps use cases

TerminusDB and TerminusX are being used for numerous applications with collaboration at the core. Here are a few examples.

### Critical asset management

An application to enable stakeholders across multiple jurisdictions to collaborate to document and understand the critical assets and their dependencies upstream and downstream within a region or country. The application lets users see the impact of extreme weather events on assets and what their cascading failure chain would look like should one of them fail. The application enables users to plan for and respond to disasters to rebuild faster and save lives.

Read more about the [critical asset management system we’re building for Dominica](https://terminusdb.com/blog/category/use-cases/cams/)

### Translation software

A translation software solution that takes human and machine translations and creates approval workflows. The software translates content across websites, sales material, technical documentation, and various other content. Quite often machine and human translations differ and may vary depending on regional dialect or language trends. The software enables user-interface-assisted diff and patch operations to improve the quality and accuracy of translations for a better customer experience.

### Account-based marketing software

An account-based marketing software solution uses data scraped from the Internet to build market intelligence about organizations and people to target with personalized marketing campaigns. Much of the information gleaned from websites conflicts with competing claims from various sources. TerminusDB has been added as a layer to provide human intervention to analyze and decide which claims are correct to improve data accuracy and marketing campaign results. Using JSON diff and patch via a user interface, ABM software users can see conflicts and decide what should be added to the database.

### Knowledgebase - Global History Bank

TerminusDB is the database of Seshat the Global History Bank. The project brings together the most current and comprehensive body of knowledge about human history in one place. The project has hundreds of contributors across the globe to systematically collect what is currently known about the social and political organization of human societies and how civilizations have evolved over time. This massive collection of historical information allows Seshat and others to rigorously test different hypotheses about the rise and fall of large-scale societies across the globe and human history.

### Data mesh for changemakers

DFRNT offers a service to changemakers responsible for driving change. Usually in large, often global, enterprises, the changes these people strive for are usually complex. DFRNT offers a SaaS to changemakers that provide teams with tooling to build collaborative semantic knowledge graphs. Using the knowledge and expertise of peers across sectors, semantic knowledge graphs, to prototype and model data, are turned into visualizations to provide changemakers with a clear path to drive impact.

[Read more about DFRNT here](https://terminusdb.com/blog/the-terminusdb-data-mesh-made-for-changemakers/).

### Collaboration and control for Excel

Microsoft Excel has 750 million users worldwide and continues to give people the power to use their data how they want to. This freedom means that Excel will continue to be popular. The main issue with Excel is collaboration with wider teams and this often leads to multiple versions being emailed here and there, and data being squashed and lost. Time wasted. 

[VersionXL](https://versionxl.com/) is a tool built with TerminusX that provides advanced collaboration features allowing teams to work together on the same spreadsheets. Users can set up teams to securely share spreadsheets with others. The team can save their spreadsheet changes to the cloud and visualize differences between versions. It comes with time travel and rollback. These table diffs provide Excel users with control for when they’re building complex Excel models.

## A backend designed for collaboration

TerminusDB/X is a data management platform that was born out of the need to collaborate. Since then, it has evolved from specializing in complex academic data to becoming a toolkit to build collaborative applications. Our goal is to provide a rich developer experience that offers problem solvers an array of tools to push the boundaries of application development.

There are many TerminusDB/X features and we’ve listed the ones that make it perfect for those looking to build collaborative applications.
 
### Build with JSON


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kn77fgrskn5zswt9evyf.png)

JSON is the medium of data communication. You can store your data in essentially the way you mean to manipulate it in your programming language. This radically reduces the impedance mismatch which has been a constant source of irritation for developers who were forced to use SQL. It’s also re-usable as an abstract syntax tree for building the communication of queries and updates themselves. No longer do you have to build a query with brittle concatenations of strings. 

MongoDB has achieved remarkable success by providing developers with a database to store data as JSON documents and has helped make application development easier and quicker. 

TerminusDB/X also stores data as JSON documents to provide that ease and speed, but we’ve taken the document store a step further. For further reading on this read our blog [What if MongoDB and Neo4j had a Baby](https://terminusdb.com/blog/what-if-mongodb-and-neo4j-had-a-baby/).

### Graph database - business logic in the database

As mentioned, we’ve taken the document store one step further. The underlying storage structure of TerminusDB/X is a labeled, directed, and edge-labeled graph. Each source and target node has a distinct name, and every edge has a name and a direction.

The segments of the graph are JSON documents meaning that the graph is an interconnected series of documents. This ‘document graph’ provides the ease of development that JSON documents provide, but also the insight that graph databases bring. The relationships between data are almost as important as the data itself. 

This means that business logic is contained within the database and that provides developers with the ability to use this logic within their applications.

### Flexible and extendable schema


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0ddm7o2ufwx6v0p3av4n.png)

If you’re building an application for users to interact with, then a schema will help you get the UI right. MongoDB users might scoff at this thought, but the bigger your application, the more you will need the guidance and stability that schema provides. 

The TerminusDB schema language enables documents and their relationships to be specified using simple JSON syntax. This syntax makes it as easy as possible to specify a JSON object to automatically convert to a graph. This approach enables data to be viewed as collections of documents or as knowledge graphs of interconnected objects.

We’ll also discuss the revision control and collaboration features later, but these tools allow you to change the schema as your application and user requirements evolve, but more on this later.

Schema also plays an important role in application development with TerminusDB/X creating document frames from the schema, and with our Document SDK, means that you can build directly from these frames. Which gives us a segway into…

### Document UI SDK

Thanks to our wonderful radio DJ style segway, we’ve landed on our Document UI SDK. The software development kit works directly with the document frames generated from your database schema. This makes building intuitive and data-driven user interfaces easier and quicker. Take a look at the [critical asset management system](https://terminusdb.com/blog/cams-ui-preview/) we’re working on for an example of what you can do with it.

Use sophisticated queries to build rich applications where users interact with and update the data. Build in JavaScript and style with CSS and JSON. Using the SDK closely bonds your data and application from inception to evolution.

### Database revision control and collaboration tools


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ygqvrf0k8j73wax8evk2.png)

TerminusDB features [collaboration and version control tools](https://terminusdb.com/blog/database-version-control/) that enable you to branch, reset, rebase, and query data. The ability to create database branches means that changes to schema and the data itself can be achieved quickly and efficiently. Workflow pipelines help developers work together to review, discuss, and approve updates and also help to remove silos, and encourage people to work together to use their collective skills and experience to build better. 

As an immutable database, TerminusDB stores everything. The commit-graph time stamps all changes and records what data changed and who changed it. You can then travel back in time to see what data looked like, across branches too, at any particular time.

These features are great for collaborative building, but they are also perfect to add as features to your application. Spin-off branches for users to work with to input their particular expertise all safely away from production. We’ve got another article focusing on some of the things you can do with a [version-controlled database](https://terminusdb.com/blog/8-reasons-to-version-control-your-database/).

### Diff and patch

A fundamental tool in Git’s strategy for distributed management of source code is the concept of the diff and the patch. These foundational operations are what make Git possible. Diff is used to construct a patch that can be applied to an object so that the final state makes sense. This has helped Git become synonymous with software development and incredibly popular. Developers can work together with control.

We have the same principles for structured data in TerminusDB/X. The very nature of collaborative applications means that many users will be working with the data, whether that’s manipulating it, editing it, or adding to it. [JSON diff and patch](https://terminusdb.com/products/jsondiff/) enable users to compare JSON documents to spot differences and apply one of a number of patches. 

The diff and patch functionality can be achieved directly via a client, or by a user interface. Automated diff alerts can also be set up to allow users and moderators to view and decide the outcome of conflicts and changes to the database. 

### Other notable mentions

There are many more TerminusDB/X features, we’ve listed a few others below that are worthy of mention:

- **Multiple interfaces** - Create and maintain your databases using programmatic interfaces such as JavaScript and Python APIs.
- **Advanced query language** - WOQL is a powerful and sophisticated query language that allows you to concisely express complex patterns over arbitrary data structures. Read more about [WOQL](https://terminusdb.com/blog/the-power-of-web-object-query-language/).
- **Data validation** - Generate forms for viewing and entering data with automatic data validation.
- **Visual model builder** - Use a lightweight Graphical User Interface to easily build, maintain and enforce complex data models.

## A recap as to why TerminusDB/X is perfect for building collaborative apps

We’ve covered quite a lot of ground in this article, here’s a quick recap to explain why TerminusDB and TerminusX are the right tools to help you build your collaborative applications.

- Build with JSON.
- Embed business logic into your database with our document graph.
- Use flexible and extendable schema to blueprint your design.
- Develop direct from document frames with our UI SDK to knit front and backend together.
- Use revision control and collaboration features within your application to let many users collaborate and share to build richness into your application.
- Advanced diff and patch operations enable a layer of control and moderation to data to help maintain data integrity across many users.

TerminusDB is an immutable graph database that creates a graph from JSON documents. It features collaboration and version control tools that enable you to branch and query data. These tools enable collaborative builds and the creation of applications designed to let many users collaborate asynchronously.

TerminusX is a cloud self-service data platform built on TerminusDB.

If you’re interested in having a play, getting started is easy. Either [install TerminusDB](https://terminusdb.com/docs/index/terminusdb/install) or [sign up for TerminusX](https://dashboard.terminusdb.com/) to get started in minutes. Join us on [Discord](https://discord.com/invite/Gvdqw97) for troubleshooting or to discuss your ideas and seek inspiration.