Isomera logo



Isomera - headless CMS for business representative websites


Doc Isomera on Discord CI test CI e2e Isomera Code QL Status CodeFactor CLA assistant



SaaS that is hosted on the cloud and built by community. To make developer life easy.



⚠️ Any larger feature or improvement should be aligned with the team and there must be ticket created for that. Also we should try to stick to the roadmap.



❤️ Project sponsors

sentry-logo       atlassian-logo



🛠 Technical stack

  • React
  • Next
  • Nest
  • TypeScript
  • TypeORM
  • Redux, Redux-toolkit
  • Axios
  • PostgreSQL
  • NX

🎯 Goals

  • To make representative business websites development easier and faster;
  • Remove the hassle of setting up backend hosting and database;
  • Make it lightning fast for Next.js and Vercel combination by creating SDKs;
  • No need to worry about Admin and admin user roles;
  • Allow developers to take care of rocket science in configs and leave clients' blogging rights;

☑️ Key features to be built

  • Authentification with email, Google, and Facebook;
  • Roles for developer and client;
  • Models, entities, and data manipulation;
  • Key / value settings;
  • Ability to have contacts form and way to store that information (so we wouldn't have to figure out how to deal with contacts form separately...);
  • Menus, a.k.a. navigation management;
  • Media library and handling, compression to .webp format;
  • Some analytics solutions to know what's going on;

So basically it's a simple CMS that would work best for representative simple business sites.

💡 Philosophy

In chemistry, isomers are molecules or polyatomic ions with identical molecular formulae – that is, same number of atoms of each element – but distinct arrangements of atoms in space. Isomerism is existence or possibility of isomers. Isomers do not necessarily share similar chemical or physical properties.

Similar in WEB developers life - if you deal with simple representative websites, preparation for each is more or less identical to all other. You need admin panel, you need to host is somewhere, you need database for admin panel, you need to host website itself and so on. Most boring, repetitive part seems to be Admin part so it was decided to build this headless CMS to allow way faster bootstrapping!

Production

Everything we build get's to production! 🔥💪 We, the contributors community, build our own SaaS the way we want to have it!

Since it's just a beginning, you might not find these sites very useful 😅 Yet. But we are moving forward!

Product roadmap

🚀 https://www.figma.com/file/h4TW7xZmZtsCikldbx9HVj/Isomera-Roadmap

Contributions

Any kind of contributions are welcome! Feel free to open a PR with your changes ♥️

Please read our Contributing Guide before submitting a Pull Request to the project.

Alt Text

Coding

Getting Started

⏳ Installation

Install Isomera with this Quickstart command to create a Isomera project instantly:

docker-compose up -d
yarn install
cp .env.example .env
yarn dev

This command generates a brand new project with the default features (authentication, permissions, content management, content type builder & file upload).

Enjoy 🎉

Development

Locally it will use SQLite database so it would be easier to develop and test. For production, it is originally intended to be used with PostgreSQL. It uses TypeORM so it's quite easy to adapt to any other database.

Project is managed by NX - next generation build system with first class monorepo support and powerful integrations. Documentation can be found here https://nx.dev/getting-started/intro

Before any commit, make sure that your code is well linted, pretty and well formatted. The following commands can help you do that automatically:

npx nx format:write
yarn prettier:fix

Also, turn on Prettier on save.

You can check if everything is ok by running these commands:

npx nx format
yarn prettier
yarn lint

Built in tools

🚀 GraphQL http://localhost:3000/graphql

🚀 Swagger http://localhost:3000/swagger

Design

For nicer visualisation we're using Material UI Devias Kit - React Admin Dashboard free version.

If you're contributing, please download this template and extract parts needed and use it here. Let's not deviate too much.

Material UI Devias kit

🖐 Requirements

Complete installation requirements can be found in the documentation... TBD

Supported operating systems:

  • Ubuntu LTS/Debian 9.x
  • CentOS/RHEL 8
  • macOS Mojave
  • Windows 10
  • Docker

(Please note that Isomera may work on other operating systems, but these are not tested nor officially supported at this time.)

Node:

  • NodeJS >= 14 <= 18
  • NPM >= 6.x

Database:

Database Minimum Recommended
MySQL 5.7.8 8.0
MariaDB 10.3 10.6
PostgreSQL 11.0 14.0
SQLite 3 3

We recommend always using the latest version of Isomera to start your new projects.

Configuring database

We are working with TypeOrm and nx monorepo. We've made useful queries to run its CLI commands, the queries are described in apps/api/project.json, so far, we have:

  • nx run typeorm
    • A general purpose query, you can use any typeorm CLI command
  • nx run schema-sync
    • The same as typeorm schema:sync
  • nx run gen-migration
    • The same as typeorm migration:generate
  • nx run apply-migration
    • The same as typeorm migration:run
  • nx run revert-migration
    • The same as typeorm migration:revert
  • nx run drop-database
    • The same as typeorm schema:drop

Contributing

Please read our Contributing Guide before submitting a Pull Request to the project.

Community support

For general help using Isomera, please refer to the official Isomera documentation. For additional help, you can use one of these channels to ask a question:

  • Discord (For live discussion with the Community and Isomera team)
  • GitHub (Bug reports, Contributions)
  • Documentation (Classes, Modules, Endpoints, all kinds of things)

Contributors

Vygandas Pliasas Cristofer Portela

License

See the LICENSE file for licensing information.

results matching ""

    No results matching ""