GithubHelp home page GithubHelp logo

cport's Introduction

Cport Project

If you encounter any issues or have suggestions for improvements, please open an issue or submit a pull request. Contributions are welcome!

The cport project aims to provide an import/export tool for multiple headless CMS platforms. The project roadmap outlines the main areas of development and progress status.

Here is a explainationen video of CPORT: https://www.loom.com/share/Cport-Making-Data-Import-and-Export-Easy-fc94726ced0442aaafe474c11edd95c9?sid=b58fb118-122b-4178-93da-56896c27e09c

cport overview

Very importat is this provider interface that every provider needs to implement: https://github.com/caisy-io/cport/blob/0dc3929afa285f80eef059366b0cfc7d20c44836/src/lib/common/types.ts provider

⚠️ DISCLAIMER ⚠️

This project is currently in a very early stage of development and is considered a work in progress. Breaking changes are expected to occur frequently as the codebase evolves. This project is not yet ready for production use.

The code is provided as-is, without any guarantees or warranties. Use at your own risk. We do not recommend using this project in production environments until it reaches a more stable state.

Topics:

  1. Find a Good Normalization Format: Find a compatible format for normalization that can handle all CMS data structures. This involves:
    • Blueprints
    • Entries
  2. Write Exporter: Develop modules that fetch data from each CMS API.
  3. Write Importer: Develop modules that write data to each CMS API.
  4. Write Normalization Functions: Develop normalization functions for each headless CMS, which involves:
    • Blueprints
    • Entries
  5. Write Denormalization Functions: Develop denormalization functions for each headless CMS, which involves:
    • Blueprints
    • Entries

Progress Status:

Below is a matrix-based table showing the progress for each headless CMS.

Headless CMS Normalization function Denormalization function Export Import
Caisy 🚧 🚧 🚧 🚧
Contentful 🚧 🚧 🚧 🚧
Strapi
Prismic 📅 📅 📅 📅

Key:

  • ✅ - Completed
  • 🚧 - In Progress
  • 📅 - Planned, not started
  • ❌ - Not yet planned but in consideration

Headless CMS Naming Conventions

In different Headless CMS platforms, the terms used to refer to Content Models can vary. This document provides a comparison of these terminologies across several popular platforms.

Headless CMS Naming for Content Model
Caisy Blueprints
Contentful ContentType
Strapi ContentType, CollectionType, Single Type
Prismic Types, Slices

Explanation:

Caisy: In Caisy, content models are referred to as 'Blueprints'. These blueprints are the structural design that content adheres to.

Contentful: Contentful uses the term 'ContentType' to define the structure that content should follow.

Strapi: Strapi uses several terms to refer to its content models: 'ContentType', 'CollectionType', and 'Single Type'. These terminologies provide flexibility in defining the structure and behavior of the content.

Prismic: In Prismic, 'Types' and 'Slices' are used. Both are treated as content types, offering different ways to structure and segment your content.

We will use the term 'Blueprints' in cport too, since if with diffrent databases or languages the team "schema","type" or "model" is already reserved for other purposes.

USAGE

INSTALL

yarn

run in dev mode

yarn dev

yarn gen && yarn dev --source caisy --config config.yaml
yarn gen && yarn dev --source contentful --config config.yaml

yarn dev --target=caisy --config config.yaml
yarn dev --target=contentful --config config.yaml

cport's People

Contributors

gkoutzioulis avatar moritzgruber avatar frknue avatar

Stargazers

 avatar

Watchers

Ahmed Ghazy avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.