und0ck3d

und0ck3d OP

Hello everyone!

A few days ago I’ve created a topic here about how people were creating CMSs with Elixir and Phoenix. I’ve been studying some available work such as Changelog CMS (a very specific podcasts CMS built by and for Changelog.com) and Thesis (a lightweight CMS that can be plugged in into any Phoenix application and enables easy content edition and dynamic pages).

Although those are great projects from which I’ve taken some ideas and learnt some things, what I was looking for isn’t nothing like any of these projects. Instead I was looking for something more “Wordpress-ish” in the sense that I download it, install a theme into it, setup database and :tada: a new website was born. Why not Wordpress? I simply don’t like PHP and I’m in love with Elixir!

So, I put my hands to work, and I’ve started building Contento an open source CMS built with the power of Elixir, Phoenix and Postgresql (and, of course, the awesome community behind those).

It doesn’t have much features, it isn’t production-ready (nor near it) and it isn’t very fancy (yet!). I’m not looking for users, I’m looking for people that would like to see such project gain life and contribute to it!

The goals for this project are few and simple:

  1. Create a powerful CMS with Elixir/Phoenix/Postgresql that can be extended with different themes and plugins.
  2. Make it easier to anyone, independently if they have programming knowledge or not, to create their own website.
  3. Spread the word about Elixir, Phoenix and all the awesomeness that’s around them!

Give it a try (check the repo here) and let me know your opinion, ideas and suggestions!

Thanks in advance!

P.S.: If you wish to discuss more about this project, I’ve created a #contento channel in Elixir Slack.

First 10 of 10 Posts Switch mode

und0ck3d

und0ck3d OP

Hello everybody!

I’ve been making several updates to what will be the initial version which hopefully will come out soon for everyone to test and get a better feeling of what’s intended for this project.

There are some things I’d appreciate community’s opinion to make sure the best approach is being applied. Such things are:

  • The tool created to help (mostly non-technical) users create a new Contento-based project, like: mix contento.new [dest] (read more about it here)
  • The themes structure (there isn’t yet any documentation on it, but it’s on it’s way soon), which you can check in the default theme repo Simplo
  • How a theme’s template is compiled (on-request at runtime), you can check ContentoWeb.Themer.
  • And how theme’s assets are served (take a look)

There are some pages available already to help anyone interested getting started, here are some useful links:

Currently I’m not making any updates to the code itself, I’m just documenting code and creating the User Guides.

Thanks everyone in advance!

outlog

outlog

wonder if it would make sense to use something like liquid for the templates so they can be made “safe” and available for end user editing, but maybe I am wrong to assume that eex should not be made available to the end user..

elixir lib:

OvermindDL1

OvermindDL1

Yeeeah I definitely would not expose eex to the end user. ^.^;

und0ck3d

und0ck3d OP

Hey, thanks for your suggestion!

I didn’t knew about Liquid before and it seems a very nice template language. I think it could be a very good choice for the themes question. I’ll take it in consideration and create a PR and see how it fits.

Now that you’re speaking about it, it does makes more sense to use an alternative template language rather than eex for this case, for the security reasons.

Thanks!

outlog

outlog

while we are on templates there are a lot of good CCA licensed templates here: https://html5up.net - so you are free to adapt/implement them in your cms as long as you keep the attribution in the bottom. And say I use your cms and one of these themes and want to get rid of the attribution I can pay them for a non-attribution license (think it’s 19$)..

so could be a great idea to ship with some of these out of the box - also implementing a few different ones of them provides good exercise for the capabilities and structure of your cms..

und0ck3d

und0ck3d OP

The templates available in HTML5Up seem very nice, and as you outlined, a good way to test the CMS capabilities and easiness of customization.

I also think it would be better to make some more themes available instead of only the “default”, and I will use those to make a few ones available so that there are also various examples of how themes are built. In fact, I’ll get rid of the default theme for now (Simplo) and just go with one of those, as they are already solid and very pretty works.

The way themes are currently “installed” is with a mix task: mix contento.new [repo] so Contento itself doesn’t ship with any theme (in it’s own repository) and instead it installs the default theme on “Setup”. I think it’s better this way than including the themes in the Contento repo for a few reasons: don’t overload the repo, easier to maintain both (theme and platform) and eventually to make a kind of “marketplace” where people can check every themes available and install them with a one-click action.

Regarding licensing of those templates, including the attribution will be ofc the default behaviour, as I’ll do it myself when converting those templates to themes, however as end-users will be able to edit themes, they can easily remove attribution even without paying the “license upgrade” from HTMLUp, and that’s something I can’t and don’t want to control… I guess it will just a question of good sense from those using them to leave the attribution.

Thanks for that great suggestion!

P.S.: I’m already working on implementing/testing Liquid and so far so good, it seems a very nice choice. However I’m still learning a few more things about it so I’m going slowly on this to make sure everything is ok.

dimitarvp

dimitarvp

This project looks stale. Any news? Will it be developed further?

odyright

odyright

??? still active?

StevenNunez

StevenNunez

Project is gone.

— All posts loaded —

Where Next? Top

Trending in Discussions Top

AstonJ
As the title says, please share what you’ve been up to with Elixir. Whether that’s been learning it, looking into it, making stuff with i...
2977 91898 914
New
AstonJ
The obligatory hello world thread! Who are you and where are you from? :stuck_out_tongue:
4616 55835 594
New
byu
@chrismccord : I just saw the Extract AGENTS.md from Phoenix.new into phx.new generator commit to the phoenix project. My initial shotgu...
New
arcanemachine
I was working on an Ecto migration and I needed a timestamp. So, for the nth time, I looked up the different data types for timestamps, a...
New
AstonJ
Just a general thread to post chat/news/info relating to AI/ML stuff that may be relevant for Nx now or in the future. Got anything to sh...
New
juhalehtonen
There has been a thread to discuss the Stack Overflow Developer Survey on this forum every year since 2018, so here’s yet another one for...
New
type1fool
I just stumbled on a newly redesigned elixir-lang.org. :tada: It looks like @Software_Mansion did the work, and I think it is generally a...
New

Other Trending Topics Top

JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New
Damirados
Hello everyone. After busy few months I am happy to announce v0.1.0 of Emerge & Solve. They are GUI (Emerge) and State management (S...
New
netoum
Corex is an accessible, unstyled UI component library for Phoenix that integrates Zag.js state machines using Vanilla JavaScript and Live...
New
ausimian
Emily is an Elixir library that runs Nx computations on Apple’s MLX. Install it as the default Nx backend and Nx, defn, Axon, Nx.Serving,...
New
mudasobwa
While I am working on the Language Agnostic Code Audit SaaS, which uses MetaAST (spoiler: I am expecting it to be in a good shape for ann...
New

We're in Beta

About us Mission Statement