wolfiton

wolfiton

CMS open projects ideas suggestions

Hi everyone,

Questions:

What do you think about a CMS built with Phoenix to incorporate Ghost CMS and WordPress features?

What template engine would you recommend to let the users edit directly?

How would the plugin system work?

Would you build it as an umbrella app?

Would you add also a graphql api?

Also I want to build this opensource CMS and use it as my personal blog and website.

Is the MIT license a good option here?

Thanks in advance for any suggestions ideas and constructive arguments and opposing arguments.

First Post!

OvermindDL1

OvermindDL1

I’ve not used either of these so remember that in my remaining answers. ^.^

Absolutely not EEx, it allows arbitrary code execution. You’d want something like markdown or ReST I’d wager.

If you mean plugins for text rendering then both markdown (via commonmark) and ReST specs have methods for that.

I’m anti-umbrella apps so personally no. ^.^

You’d be surprised how nice it is to make a graphql API for it all and even without exposing it externally just do all the calls purely internal and it cleans up so much. I need to see if absinthe has better ways of handling that now rather than reaching into internals like I am in my old version. ^.^;

I’d use a recent Apache license (Apache2?). It’s basically MIT but it also fixes some patent annoyances because the modern world sucks for that stuff.

Most Liked

kip

kip

ex_cldr Core Team

Some other thoughts (since I’ve been thinking about this too).

  • A monolithic publishing platform doesn’t feel right on the BEAM (or on the Internet). I’m probably heading down the ActivityPub federated path - even for my personal projects.

  • Instead of traditional plugins which load into the BEAM I’m planning to be more event-oriented and “plugins” can listen for and subscribe to events that can transform content. I don’t want to go the traditional route of loading modules because:

    • Doesn’t fit well with a distributed platform where there may be multiple nodes running the code

    • Risks the VM and I want to be long-running

    • Inherently less secure

  • Definitely going to support many languages and cultures as first-class citizens (as you plan)

  • Makes use of a new image library I’m writing based upon libvips since photography is a big thing for me

  • Will aim to statically publish as much content as possible (automatically)

  • Will have a configurable workflow along the lines of IFTTT

Given how my brain works I’m building from the bottom up while I think about architectural issues some more. Internationalization mostly done (where did those three years go?). Image processing is under way. Workflow engine (not just for publishing) is being designed. I’m also going to bite the bullet and build an OpenID compliant privacy-oriented authentication platform (because why not).

You can imagine this isn’t shipping next week but more than happy to be part of the conversation. I think Elixir and the BEAM can make for a very good next-gen publishing platform that learns from the good things places like Medium brings without the many business model and platform issues that come with it.

te_chris

te_chris

Just to chip in with our experience building an internal CMS in Elixir. We are actively thinking about releasing it as a hex package, but as with most things at startups, no one has the time to clean it up and make it actually installable, but watch this space over the next 6 months or so :crossed_fingers:

Anyway, here’s what we needed and quick version of what we’ve done: This is what powers https://www.stitched.co.uk/ We’re a D2C e-commerce company and we need to be able to produce varied content pages quickly. I should add as well, we outsourced image and video asset management to Cloudinary, because we just couldn’t be bothered with it.

Anyway, what we’ve built is a simple module which stores pages as rows in a PG DB with a content JSONB attribute. This object is essentially a series of Ecto embedded structs, defining the data structure for the page, which are a series of Blocks. A block is just an Ecto struct which knows how to present itself. So, rendering pages is 1 row DB fetch, then pass the stored data through a few functions which produce an HTML document.

This has meant, for us, that’s it’s been easy for users to customise pages, change the layout of blocks, edit etc., but the constraint is that the tech team has to build the new blocks. For our org this is fine, as creating a new block is as simple as defining a struct and writing an HTML template. It’s also trivial to turn this into JSON - not a requirement for us currently as we’re heavy users of LiveView.

Happy to answer more questions, and if there’s some interest, look at seeing if we can’t progress putting a package out.

dimitarvp

dimitarvp

Be very sure there’s an interest, and that’s way beyond ElixirForum as well. This is a very under-served area that’s ripe for disruption and has been for like 5 years at least now.

Building good WordPress sites with actual functionality is messy, error-prone, tough, and almost always non-deterministic. :smiley: If you guys can pull a good CMS that’s easy for non-tech users you might even start eating from WP’s cake.

Do consider it!

Where Next?

Popular in Discussions Top

scouten
I’m looking for a host for the server part of a small (personal) side project that I’m working on. It’s currently written in Node.js and ...
New
AstonJ
Please see the new poll here: Which code editor or IDE do you use? (Poll) (2022 Edition) It’s been a while since we first asked this, I...
208 31771 143
New
pdgonzalez872
If this has been asked here before, please point me to where it was asked as I didn’t find it when I searched the forum. Maybe a mailing ...
New
Nvim
Anybody knows a comprehensive comparison of Django and Phoenix, thanks for the help. Where are they similar? Where do they differ the m...
New
eteeselink
Hi all, In the last days, two things happened: A blog post titled “They might never tell you it’s broken” made the rounds. It’s about ...
New
owaisqayum
I have a sample string sentence = "Hello, world ... 123 *** ^%&*())^% %%:>" From this string, I want to only keep the integers, ...
New
Rustixir
Hi everyone, im working on find best language/framework/system for high concurrency, high performance and stable performance after wor...
New

Other popular topics Top

New
hariharasudhan94
Lets say I have map like this fetching from my database %{"_id" => #BSON.ObjectId<58eb1a7a9ad169198c3dXXXX>, "email" => ...
New
joeerl
Hello again - after a longish gap I’ve decided I really must dig into Elixir and see what’s been happening here - so I have a few questio...
New
AngeloChecked
What learn first? Rust or Elixir Hi Elixir community! I’m here because i want learn a new language. I’m a junior developer and mainly i ...
New
TunkShif
This post is an instruction guide to help you setup your Neovim for Elixir development from scratch. It includes general information on h...
274 42716 114
New
JorisKok
I have a server on AWS, and was running a load test using artillery. When looking at the Phoenix dashboard I see the Ports going to 100% ...
New

We're in Beta

About us Mission Statement