WolfCMS thread suggestions and help and discussions

Hi everyone,

Even though I said i would wait for a MVP for WolfCMS, it’s going to be really hard to gather all the suggestions advises examples and your ideas if it will be to spread out.

So this thread is created to help centralize all the data to WolfCMS which will be built under Apache 2.0 license as suggested by @dimitarvp

I will try to bring all the info and discussions here and create a summary.

My goal in building this CMS: To create my own website with it and blog.
Why are you doing it: To learn Phoenix,Elixir and Absinthe

So WolfCMS will have the following features for the start:

  • Pages
  • Blog
  • Translations
  • Not eex template language
  • Graphql
  • Dashboard
  • SSR support(vue based framework)
  • TDD dev and end-to-end-testing
  • License Apache 2.0

Thanks everyone

2 Likes

I don’t mean to be a debbie downer, but I have a strange feeling that this project would end up like firestorm, the elixir-based forum project. Instead of tackling the key product issue of being a good and usable forum, the project took on so many tangential things like graphql, mobile clients, full blown front end framework, and in the end, it is still not even usable as a production-ready forum alternative.

I’m not saying that these aren’t good technologies. They all have their appropriate use cases. But focusing on them from the get-go is going to extend your entire roadmap by at least 2 or 3 times. Not to mention that it will distract you from the main goal of being a good CMS to compete with the likes of wordpress and ghost. Each new addition spreads your attention and focus, leads to more learning and also makes the codebase harder to understand for contributors.

Not only that, but considering that adopters of your project would also be elixir devs, they would very likely be integrating it into their own project, forking it, etc. If I were to integrate this into my own projects, I would rip out everything that is considered bloat (to me) and/or just use the schemas/contexts and fully customize the frontend.

Not to mention that the more things you attempt to take on and integrate into the project, the more code bloat, refactoring, and maintenance needed.

If this is your first open source project, I suggest trying to achieve the product objectives first with as few “nice-to-haves” as possible. For example, a headless json-api cms, completely achievable with out-of-the-box phoenix. Then add in more features as the project matures.

3 Likes

Hello, @WolfCMS you will share the code or make some explanation on Blog?
What’s your purpose?

1 Like

Sure @romenigld, the project will be under Apache 2.0 License similar to an MIT license.

On the blog part at first i want to have the following features:

  • Categories,
  • Tags,
  • Comments
  • Likes
  • Articles
    similar to Wordpress.

Also my goal is in the first post, but will write it here also:
My goal in building this CMS : To create my own website with it and my personal blog.

Thanks for the questions @romenigld

1 Like

Well I disagree with your assumption that my project will end up like Firestorm or any other project.

Graphql has it’s advantages over json api an there are a lot of articles why, so i will not go into that, instead i would recommend you to read https://medium.com/javascript-scene/graphql-at-the-rest-aurant-f4091054e82a.

Thanks for the input @Brainiac

1 Like

I agree with what you are saying and It is a little on the extreme side (to assume an outcome at this stage); I also agree what the essence of what he is getting at, not specifically graphql vs rest or such but more the value of focus.

Starting with a headless CMS in either api style could be a pretty great idea as it is a simpler starting point, you could use it while having created a bring your own view solution that might be in a place for others to adopt long before your view is as flexible as something like Wordpress. You would then be in a good place to build your front end goal as a optional layer. Having the parts somewhat separate does increase the use cases.

Either way I think this has the potential to be a very interesting project and I have been quite excited reading some of the surrounding topics being discussed.

4 Likes

Thanks for the suggestion @mindriot

1 Like

Nice @wolfiton.
I was thinking to do something like you write here.
But I’m new and learning Ecto with Ecto right now.
This will be very usefull for me and safe time!

1 Like

I wanted to get some feedback on the context design from everyone on the following:

Use a Blog context and Pages context could easily become very big to contain all the functions for:
Articles Tags Categories Comments.

So instead I want to build separated contexts for every part of the CMS so for example:

  • Article context
  • Comment context
  • Tag context
  • Category context

Does anyone have any feedback on this and pro and cons against this design pattern?

I am leaning towards the separation of context but want to see what everyone else thinks about this.

Thanks in advance

My personal opinion is that there is no better way to learn then create open source projects that others will use. You will get feedback and others could help you more by seeing the whole code.
Good luck with your learning @romenigld

1 Like