decaporg / decap-cms

A Git-based CMS for Static Site Generators
https://decapcms.org
MIT License
17.69k stars 3.03k forks source link

Custom Backend interface #6526

Closed adrian-goe closed 1 year ago

adrian-goe commented 1 year ago

As a developer, I would like to develop custom backends that are not tied to a Git system.

Is your feature request related to a problem? Please describe.

There are many ways to store data. For netlify cms, the best option so far has been to use git. The advantage of netlify cms is that the CMS is integrated directly on the site. This makes it easy for content editors. Unfortunately, the git based cms does not allow you to use dynamic server side rendering. To make this possible, a backend would always have to be available and return content on request. If the content is in git, this is not so easy. But it would be possible to use your own backend, such as a backend as a service like firebase or appwrite.

Describe the solution you'd like

In order to connect such a custom backend, a plugin system is to be created to which it is possible to implement their own backend. In addition, an interface is to be created to manage the auth, media and content yourself. Developers themselves would be responsible for everything else.

Describe alternatives you've considered

Alternatives would be to merge these custom backends into netlify-cms. However, these would not be relevant for most users. Therefore, this is not the best option

talves commented 1 year ago

@adrian-goe it already exists.

import CMS from 'netlify-cms-app';
import MyCustomBackend from 'my-custom-backend';
CMS.registerBackend('my-backend', MyCustomBackend);

I've successfully written other backends (private) with this solution.

Although the API's aren't documented (think contribution), you can follow the api's of the official backend functions.