SonicJS is a Modern Open Source NodeJs Based Content Management System

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 Swagger API Explorer
Module Management Front End Json Editor Swagger API Explorer

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

SonicJs NodeJs Content Management System (CMS)

Overview

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

  • NodeJs
  • Express
  • Bootstrap 4

SonicJs supports many common databases including:

  • MongoDB, MySQL, SQL Server, Cloudant, DashDB, DB2, Informix, Oracle, PostgreSQL, Redis, SQLite3, Flat File (Json), In-Memory

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.

Getting Started

Pre-requisites

You just need NodeJs installed. No other setup is needed.

Setup Steps

When you first setup SonicJs locally, the default database is set to use the Flat File (Json) database. This can be used throughout your development process and even in production for sites that are primarily read-heavy.

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. Install the dependencies: npm install
  4. Run the setup script to install the database: npm run setup and follow the prompts
  5. Run it with: npm start

You should see the following message in your console:

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% REST API based and therefor 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 REST 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% REST 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

Acknowledgments

SonicJs is written entirely in Javascript. It uses a number of open source tools, utilities, etc but there are a few of them that I wanted to make special mention of:

  1. Loopback - An awesome NodeJs based ORM helping to support much of the heavy lifting in SonicJs’ data tier.
  2. CoreUI - a truly great open source admin theme.
  3. Formio - a rock solid form builder with loads of advanced functionality.

Video Overview + Demo

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

Download Details:

Author: lane711

Demo: https://sonicjs.com/

Source Code: https://github.com/lane711/sonicjs

#nodejs #node #javascript

SonicJS is a Modern Open Source NodeJs Based Content Management System
3.70 GEEK