OrangeCMS - Manage your static site content with UI

Hi everyone,

I would like to introduce my new project OrangeCMS, it’s an application that help you to create/edit content post for your static site without git and markdown knowledge. For developers like me and you, it’s easy to create a file, write some markdown, and git push to remote repo. But for non-tech guys, like my wife or your marketing team, it’s too complicated.
I searched on the web for an existing solution but they are not fit with my need. So I decide to build a new one. It’s inspired by Spinal cms.

Take a look:

This is only a minimal version with basic functions and lots of bug :smile:

So please give it a try and tell me if you have any suggestion


Thank you


This looks awesome!

Will absolutely have to play with this :smiley:


Thank Zach for your awesome project, I’m learning to use ash and it’s lot of fun.


Why the hard dependency on Node.js?

Sorry, I don’t understand what you mean.

This project is in early stage, I just make it work, lots of hard code

Please don’t think it was a criticism. I just read on the Github readme:

  • Requirement: elixir, nodejs installed on your machine

and I was curious what Nodejs is needed for.

1 Like

I use some node packages for editor and tailwind UI. Maybe I will put in in vendor directory later.
Thanks for your feedback.

1 Like

Looks great. Thanks for sharing.

1 Like

Update 04/16/2023

I’ve added user management features:

  • :white_check_mark: Add/edit user (only admin user which has is_admin flag set to true)
  • :white_check_mark: Manage project member: add/remove
  • :white_check_mark: Basic role-based access for project’s member
    • admin can manage member, content type
    • Editor can create/edit content entry

:white_check_mark: And a new WYSIWYG editor which support markdown shortcut

Content features if you missed

  • :white_check_mark: import markdown content from github repo
  • :white_check_mark: publish new/update content to github repo

All feedback are welcomed. Thank you.


Update 05/02

I was quite busy last couple weeks so there is not much new update. I use this cms to manage my blog content so I added some improvement for the editor.

1. :white_check_mark: Implement image upload config for each content type

For example: upload image to folder /public/assets and serve at /assets, this depends on how your static site generator handle assets.

2. :white_check_mark: Add image upload field in fronmatter form

This took a while to handle preview, all uploaded image in frontmatter using relative path, but preview required a full url, so I use raw content url for preview.

3. :white_check_mark: Add slash command for quick insert new block

4. :white_check_mark: Insert image to post content

Yeah, I have customized editor to handle preview relative image url

Here is a simple demo


All feedback are welcomed. Thank you.


Really cool to see all the progress you’re making on this project! Great work! :tada:


Update Jul 11

I have not updated OrangeCMS for a while.
I had to make a decision to migrate from Ash framework to Phoenix and Ecto.

Ash framework is really cool and I have learned a lot from it, and discovering it is really fun. But developers have to spend time learning Ash to be able to contribute to OrangeCMS. To remove this barrier, I decided to migrate to Phoenix context and Ecto.
Yeah, lots of work to do, I have to implement policy, role based access myself. (Ash have mostly everything I need, just plug and update configuration, and it works.)

In this update

:white_check_mark: Migrate code base to Phoenix context + Ecto
:white_check_mark: Rebuild UI with Liveview components ported from Accordion - shadcn/ui
:black_square_button: Role-based access has not been implemented in this update yet.