Skip to content
master
Switch branches/tags
Code
Build Status Latest release Donate

If you find the project promising:

PLEASE STAR THIS PROJECT !!! :)

It will help spread the word so that I can start to generate developer feedback. Thanks in advance!

Image of SonicJs Logo https://sonicjs.com

SonicJS is a Modern Open Source "Free Forever" NodeJs Based Content Management System

Screen Shots

Manage Content Types Drag and Drop Form Builder Edit Content with Automagically Generated Forms
Manage Content Types Drag and Drop Form Builder Edit Content with Automagically Generated Forms
Build Advanced Forms with over 20 Field Types Edit Content Properties From the Front End Front End WYSIWYG Editor
Drag and Drop Form Builder Front End Content Editing Front End WYSIWYG Editor
Menu Manager Real Time CSS Editor Built In Media Server
Menu Manager Real Time CSS Editor Built In Media Server
Module Management Front End Json Editor
Module Management Front End Json Editor

Visit https://sonicjs.com for Details, Videos & Docs

SonicJs NodeJs Content Management System (CMS)

Overview

SonicJs is a 100% javascript based, GraphQL API driven CMS/Framework built on the following tech stack:

  • NodeJs
  • Express
  • GraphQL
  • Bootstrap 4
  • MongoDB

Why SonicJs?

There are thousands of CMS out there and several already built on the modern JAM stack (JavaScript, API & Markup). I was looking for a solid Node.js based CMS suitable as a foundation for enterprise application development. It didn't exist. For a detailed description of why SonicJs was started, please see the about page.

Table of Contents

  1. Getting Started
  2. Quick Intro
  3. Free Forever
  4. Goals, Motivation And Principals
  5. Support
  6. Contributing - Get Involved!
  7. Deployment
  8. Examples
  9. Versioning
  10. Authors
  11. License
  12. Acknowledgments
  13. Video Overview + Demo

Getting Started

Pre-requisites

You will need NodeJs installed and access to a MongoDB database. Its recommended that you setup MongoDB locally as it will run very fast, but you can also sign up for a free MongoDB database at Mlab: https://mlab.com/

Setup Steps

Assuming that you have a MongoDB database ready to go, setup takes < 2 minutes.

Follow these steps and you should be good to go:

  1. Clone the repo: git clone https://github.com/lane711/sonicjs.git
  2. Change to created folder cd sonicjs
  3. Validate the MONGODB_URL value the .env-default file (located in the root directory)
  4. Install the dependencies: npm install
  5. Run it with: npm start

Note: you can also start the app with npm run dev to run with Nodemon change detection enabled.

You should see the following message in your console:

From the home page, click on the "Sign Up" link to create your initial admin account.

A Quick Intro to SonicJs

SonicJs is similar to Drupal CMS in that it is highly configurable. You can build your own content types using a drag and drop style form editor. All basic CRUD operations are generated on the fly by the framework. Unlike other NodeJs CMS', such as KeystoneJs, SonicJs does not generate code (a good thing!). It has a very powerful runtime engine that is built with both performance and flexibility in mind.

SonicJs can handle most common website building use-cases with ease, but it also positioned to be an enterprise application framework/platform enabling developers to start custom web application projects with a solid foundation. This can help significantly reduce the overall effort required for your project.

SonicJs is also 100% GraphQL API based and therefore a great choice if you are looking for a Headless CMS for your mobile app or IoT project. All of the content types that you create in the admin interface are instantly exposed as GraphQL end points. There is no need to restart the application as required in other NodeJs based Headless CMS.

SonicJs is built with love from Orange County California.

Free Forever

If you are considering using SonicJs for your next web project, its important to know that it shall remain free forever (again similar to Drupal). Be wary of other "free" Node.js open source CMS solutions being built by start-ups or established companies that haven't made this same "free forever" commitment.

If you are interested in reading more about me or the goals and motivation of the project, please check out the "about" page here: https://sonicjs.com/about.

Also, if you've actually read down this far and happen to be a in generous mood, would you mind given the project a star? Thanks in advance!

Debugging

  1. From Visual Studio Code, make sure the standard debugger for Chrome extension is installed.
  2. Hit "Play"

Goals, Motivation And Principals

Please see here for a full explanation: https://sonicjs.com/about, however here is a high level list of SonicJs' guiding principals:

  • Why Did I Start SonicJs?
  • So is SonicJs just a Node.js based clone of Drupal?
  • Free Forever
  • One Module per Feature
  • UI/UX Continuity
  • Hooks/ the Event Emitter Pattern
  • Light Weight Core
  • Extensibility
  • Convention over Configuration
  • Minimal Learning Curve
  • KISS
  • Do it Right the First Time
  • 100% GraphQL Based
  • No "Fighting"
  • Development Should be Fun

Support

Please feel free to create an issue here in github or email me using the contact form here. I'll make every attempt to get back to you quickly and help answers and questions you may have.

Contributing - Get Involved!

Interested in contributing to SonicJs? Any and all help is welcome! Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.

Deployment

Deployment is basically the same as any regular Node.js/Express project. The project has successfully been deployed to Heroku, NodeChef, Amazon EC2 and others. I recommend using a process manager like PM2 or similar if you are deploying on a self managed server (like EC2).

Examples

Presently, the only in-production implementations that I know about (aside from sonicjs.com) are internal company applications. If you have an example you'd like to share, please contact me here. and I'll be happy to list it here.

Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

Authors

  • Lane Campbell - Initial work - SonicJs
  • [Your name here] - Future SonicJs Core Developer - SonicJs

See also the list of contributors who participated in this project.

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Video Overview + Demo

See here for several videos to get you up and running quickly. Overview and Demo Videos