March 12, 20197 yr I personally think wordpress has one big flaw and that's it's codebase. Would it be worth creating a blogging platform that uses a MVC(Model-View-Controller) framework like laravel or codeigniter ? honestly this would just be a project for fun posted to github so i'm not looking to make money off of it or anything.
March 12, 20197 yr There are quite a few MVC based CMS platforms already like Craft, Statamic, Expression Engine and October, even more than I can name. There's no harm in building something yourself though, both if you have a unique gap to fill or as learning exercise. I started one in Node that I never finished (hope to soon) but it's a flat file CMS that uses Markdown and doesn't have an admin. The first company I worked for had a custom CMS and it was a massive undertaking, but it did a hell of a lot, and in many ways was well ahead of its time. You still can't underestimate the work involved in maintaining a full CMS though. I don't think I'd ever work on, or build, a large-scale custom CMS again, but something small would be fun.
March 12, 20197 yr No harm in giving it a go. As Jack said it could be huge undertaking, depending on how complex you want to make it. There again there's no point in re-inventing the wheel unless you can fill a gap in the market.
March 13, 20197 yr Author Ya honestly it's just for fun. If someone decides to use it then great, if not then atleast it can be part of my development portfolio thanks for the feedback tho
March 13, 20197 yr TBH I wouldn't take much inspiration from the platforms listed here, they were good at what they did but they have had their day. What you want is a headless CMS, essentially it manages content and that is it. Everything else is left upto the consumer which is an order of magnitude better. I think building a headless CMS would be a nice challenge, that stores entries in a database and provides a REST API that any consuming apps can interface with, or better still a GraphQL API (Contentful does this). Because it's only managing content the complexity will be somewhat reduced. Don't bother going down the templating route that is taken by many "old school" CMS solutions that stuff I consider a legacy approach. By templating route I mean PHP templates where you are embedding PHP tags in your HTML. Don't do this. With the above approach you are free to use any language you want, and the consumer can write their app in any language they want - it could be a web-app, an iOS or Android app, even IOT apps can interface. NodeJS is a language that's particularly well suited to building REST/GraphQL APIs due to it being event driven and it's strong ability at dealing with concurrent requests. Koa is a nice Node framework to build such APIs. https://koajs.com/ A good follow up would be then to build an app that consumes your service, something like Gatsby is a great ReactJS based framework that takes data from your CMS provider and triggers a new build when a change is detected, it spits out a load of static HTML files. This results in a website that is considerably faster than your traditional Wordpress website (I'm talking 2-3 x) because it's only static files that are being served. Edited March 13, 20197 yr by rbrtsmith
March 13, 20197 yr I really like solutions like Gatsby and headless options, but I think server-rendered CMS's have a place. There are significant pros and cons to both. In most cases you can use a CMS to write the content to an API to be picked up by a static site. I still think the options above have better ways of authoring content than any CMS designed specifically for headless, and almost all can interface with GraphQL or REST. I'm yet to see this debate work out. People are still using server-rendered platforms like Pheonix, Django, Rails, and the most popular framework on Github is Laravel. Some things are just much more complex when you remove things like sessions, databases etc. You ultimately have to weigh it up. I think this is why NextJS is so popular in the React world, sometimes you need the leverage the server to reduce complexity, and some things simply aren't achievable on just the client without jumping through hoops. I actually still really like server-rendered platforms because they have a simplicity about them that I've always just got on with. The blog system I was building was entirely server-rendered Node app with a templating language, and it was a joy to build with. Performance is rarely that much of an issue, there are ways to get around that, often by improving your caching strategy, and static sites can also be slow if they are built incorrectly.
March 13, 20197 yr Author Honestly the CMS I build will just have the basics and if people decide to add onto it they can... It'll prob use codeigniter with the basic below features such as... Being able to create blog posts(This ones a give me) Being able to create/manage pages Being able to create/manage links and sort them The adding of categories And themes A simple wysiwyg editor like QuillJs If you think a cms to get started needs more than that please list other features here Edited March 13, 20197 yr by webdeveloper93
March 13, 20197 yr 14 hours ago, rbrtsmith said: TBH I wouldn't take much inspiration from the platforms listed here, they were good at what they did but they have had their day. What you want is a headless CMS, essentially it manages content and that is it. I definitely wouldn't say they've had their day by a long stretch. I've used ExpressionEngine as a headless CMS several times, the earliest dating back to 2010 when we used it to power an early iPhone app. Indeed I knew of a developer who used Pmachine (EE's previous incarnation) as a headless CMS way back in 2004 to power a site that did nothing but RSS feeds and widgets for people to embed on their sites.
March 14, 20197 yr So when I said they've had their day I mean you'll rarely find large orgs using them, at least those doing modern web development. Sky, BBC, Moonpig etc all have gone the headless route same story for a number of friends I have who also work for larger tech heavy firms. Almost all the developer blogs that I follow are either using a headless CMS or markdown. Over the next few years I predict solutions like Gatsby are going to take off and we're giving this approach some serious consideration in my workplace. Gatsby typically pairs up with headless CMS's like Contentful and would also pair well with commerce tools (which is a headless e-commerce service) Gatsby and other similar approaches (NextJS in static mode) have some really significant advantages over other approaches: 1. Performance, there's no debate with this one. Static wins hands down. Running tests against our own website have cut load times to around a 3rd and make our site load twice as fast as the best performing competitor. Things measured were Time to First Byte, First meaningful paint, Time to interactive. 2. Reduced server costs - hosting static content on a CDN - services like CMS and commerce tools only ran at build time rather than every visit / each time you blow the cache (often). 3. Reduced complexity. Modern server rendered apps have a pretty complex architecture around data-caching layers, load-balancing servers and all the costs involved with that. DevOps engineers are expensive and static reduces the workload significantly in this area. 4. Security, the website has no direct interaction with the database so reduced vector for attack. You can leverage the security expertise of the 3rd parties (contentful, commercetools for example) The main negative is that you require a build step each time content changes. It's quite fast though, we tested the generation of 9000 pages of varying complexity and that took ~3 minutes. Gasby say they are working on a solution of incremental builds but at the moment each change requires all the pages to be built. This approach is known as JAMStack and it's well worth investigating https://jamstack.org/ I am suggesting to go the headless route to the OP because you'd get a good return on that time invested learning something that is gaining significant traction. A former colleague at Sky gave this talk that I think is a good overview Edited March 14, 20197 yr by rbrtsmith
Create an account or sign in to comment