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
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
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
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 ![]()
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
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.
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!
Popular in Discussions
Other popular topics
Latest Phoenix Threads
Chat & Discussions>Discussions
Latest on Elixir Forum
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #elixirconf-us
- #advent-of-code
- #distillery
- #processes
- #api
- #forms
- #metaprogramming
- #security
- #hex









