wolfiton

wolfiton

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? 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 94592 917
New
cblavier
Hey there, It’s been more than a year since we started using LiveView as our main UI library and building a whole library of UI componen...
New
caslu
I want to open this thread for you all to discuss and help those who really like Ash but are still hesitant to use it in a real project. ...
New
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
heathen
Quite interesting article Google brought me. Didn’t find any mentions about it here. What do you think in general? Would you use togethe...
New
marciol
It would be helpful to have a list of companies worldwide that hire engineers without prior experience in Elixir. Often, it can be quite ...
New
durvia
Anyone running long-lived stateful processes on BEAM? We’re building an AI agent runtime and would love to compare notes. We’re a small ...
New

Other Trending Topics Top

marciok
Hi there! We created Gust: A task orchestrator inspired by Airflow. For those who have never heard about Aiflow, it’s a Python-based wor...
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
Dmk
Xamal is a deployment tool for Elixir apps that deploys native releases to bare metal servers over SSH. It’s a port of GitHub - basecamp/...
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
webofbits
Aludel - LLM Evaluation Workbench Aludel is an embeddable Phoenix LiveView dashboard for evaluating and comparing LLM prompts across mult...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews