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!
SonicJS is a Modern Open Source "Free Forever" NodeJs Based Content Management System
https://sonicjs.com for Details, Videos & DocsVisit
SonicJs NodeJs Content Management System (CMS)
- Bootstrap 4
Table of Contents
- Getting Started
- Quick Intro
- Free Forever
- Goals, Motivation And Principals
- Contributing - Get Involved!
- Video Overview + Demo
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/
Assuming that you have a MongoDB database ready to go, setup takes < 2 minutes.
Follow these steps and you should be good to go:
- Clone the repo:
git clone https://github.com/lane711/sonicjs.git
- Change to created folder
- Validate the
MONGODB_URLvalue the .env-default file (located in the root directory)
- Install the dependencies:
- Run it with:
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:
- Website at: http://localhost:3018
- Admin console at: http://localhost:3018/admin
- GraphQL API at: http://localhost:3018/graphql
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.
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,
- From Visual Studio Code, make sure the standard debugger for Chrome extension is installed.
- 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
- Convention over Configuration
- Minimal Learning Curve
- Do it Right the First Time
- 100% GraphQL Based
- No "Fighting"
- Development Should be Fun
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 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).
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.
See also the list of contributors who participated in this project.
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