Custom Wordpress Development - building a custom page builder - wordpress

I’m looking for some advice when it comes to custom CMS development.
Wordpress has been perfect for me before a became a developer. I used to use page builders like Elementor & WPBakery.
When developing within WP, would I need to develop a page-builder for people (without coding knowledge) to edit their pages? I’m aware of Gutenberg, is that able to edit coded pages or would it not be able to read anything as it wasn’t built using Gutenberg?
If so, would it not be better to develop a Custom CMS similar to Wordpress? That way you are able to offer a blank canvas CMS that you can brand as your own?
Thanks in advance.

Interesting question! It will require some prior research on your part, as there is no obvious answer. Below are my thoughts on the matter, but it the decision is yours to make, as the project requirements are unique and also the time you can invest in it.
When developing within WP, would I need to develop a page-builder for people (without coding knowledge) to edit their pages?
A: No. Gutenberg is perfect for this.
I’m aware of Gutenberg, is that able to edit coded pages or would it not be able to read anything as it wasn’t built using Gutenberg?
A: It won't read anything that wasn't made with it, but you can try recreating those pages with it. Depends on the design, but it shouldn't be hard. If it is a site for a client, you can ask them to recreate one or two pages and see how they feel. They will answer this question for you :)
That way you are able to offer a blank canvas CMS that you can brand as your own?
A: You can "rebrand" the WordPress admin with such a plugin
If so, would it not be better to develop a Custom CMS similar to Wordpress?
A: It all depends on how comfortable you feel with WordPress and Gutenberg, code-wise. You can do pretty much anything, if you understand the PHP, React (Gutenberg is written in React) and logic behind WP, so you won't need a custom CMS. Again, it all depends on your skills with the technologies. If you rate yourself a 10/10, no need to think about it, but I guess you wouldn't be asking this question, if you were.
Pros of going with WordPress and Gutenberg:
You already have all the necessary tools.
A ton of supporting plugins, already developed by other people.
WordPress has one of the most well-maintained codebases out there, so you will have a great start, compared to building a CMS on your own. Even if you decide to create your own plugin, you have a set of rules and practices that you need to adhere to, which is great for starters. You also have all the necessary components - DB, back-end and front-end ready.
Gutenberg is pretty stable right now and you can install the plugin, because the code that is implemented in WP core is not the latest. It is great for building pages, when you don't know code. Look into all the different blocks it offers by default and think if they cover your requirements. There are also a lot of extra blocks you can add.
The popularity of Gutenberg is growing and the community is slowly, but surely moving in that direction, so making this project with Gutenberg would benefit your future career as a WP developer, if you are interested in building one.
On the point of growing community, you will find answers to a lot of the common issues.
Pros of building your own CMS:
You will see the whole process - DB design, connection and expanding. Back-end and front-end development, user authentication and administration. For me this is a con, because there are many unexpected problems, which WP has solved. It is also very time-consuming, so if you have limited time for this project, I would advise against this.
You can make a slim CMS, which covers only your requirements and you will know the ins and outs of the code, so any future changes and expansions will be easier for you to make.
As you said, it will be easier to brand as your own and you can build the Admin side of it however you want, even though there are defined UX standards, which won't allow you to go very wild. It will probably resemble the WP admin in one way or another. Check out these admin page designs, for reference.
Conclusion
Personally, I would go for WordPress and Gutenberg, because I have had mostly bad experiences with building everything on my own. I am not a good enough coder and that is OK, because I can use all of these tools, built by awesome developers before me. So please keep in mind that building your own CMS will take a lot of time, if you want to make it stable and secure. There are also alternatives to WordPress.

Related

Will Drupal (or another CMS) work for me?

I have been planning a little side project of mine for a while now. Since the beginning I had planed on writing a CRUD application from scratch myself. Now after having a little more experience with web programming I think I would save myself a ton of time by using a CMS but being unfamiliar with these systems I do not know if I can do what I need to.
Users will create a profile.
Users will upload images.
Some users will be selling their products, others will be buying them. I will take a percentage. Think ebay without bidding.
Many javascript and php features such as image rotators and an app so users can crop their photos.
Will be integrating Facebook API.
Main reason I am considering a CMS is not to save time, but to make a safer website. I am not experienced with eCommerce and do not want to put my users at risk. Everything else mentioned I can and have done.
Use CMS like Drupal or just start from scratch?
Most of the CMS have the basic functionality you've mentioned in 1,2 and 5.
You'll have to write your own extensions for 3 and 4, or search for existing one that fits you.
Writing an extension for CMS will take less time than writing entire CMS from scratch.
If you want safe and stable code, then it's better to use existing CMS.
I agree with w3b4 that an open source CMS will save you time and give you major security and support advantages.
My experience of open source CMSs only extends to WordPress. I am sure you could make it do all the things you want with a bit of work, but my gut feel is that it might not be the best platform to start out with if you main requirement is buying and selling.
However before you strike it off your list, check out the wp-ecommerce plugin and its various add-ons. This product has developed a lot in recent years and might offer what you need out of the box.

Should I avoid using a CMS if I want to be able to quickly make good sites with more features/options to customize than Wordpress?

Should I avoid using a CMS if I want to be able to quickly make good sites with more features/options to customize than Wordpress?
I want to become a better webdeveloper and able to quickly make good, fast, secure websites with lots of functionality without being limited so as I'd be with Wordpress. I don't see writing lots of plug-ins to reach the same functionality as a nice solution for doing my own programming.
I have written a few games, quizzes and other scripts I'd like to be able to recycle or easily adapt to work with the CMS.
I currently have a multi-lingual website that works with a /nl/ and /en/ part, that has a few self-written games I wrote in PHP.
CakePHP has a very good CMS called Croogo. It's still quite a young project (still in beta and being actively developed), but the great thing about it is that its a Cake app so it's coded to the well-documented Cake standards.
Whereas customizing/extending Wordpress, Joomla, Drupal et al would mean you'd have to invest a huge amount of time learning about their respective frameworks, all for the sake of one part of any given website (the CMS), if you learn CakePHP, you're learning a much more advanced and flexible framework that can pretty much be used to do anything well beyond the confines of CMSes.
If you learn Cake (or if you already know Cake) you'll find that you already understand Croogo without having to invest much additional time at all. Code you write in Cake can easily be packaged to be a Croogo plugin and even if Croogo doesn't stay around for the long term (I hope it will!), it wouldn't be difficult to re-factor all the plugins you've written to work in any other Cake-based CMS that comes along in the future, or even your own Cake apps.
Croogo is pretty basic, but quite powerful. It has a Wordpress-like feel to it, it supports nice URLs via an amazing reverse-routing system, the /en/ /nl/ language thing you mentioned works out of the box and it's very easy to get any of the huge array of Cake components and plugins working in harmony with the CMS through the use of hooks.
I'm currently working on a project using joomla and there are a ton of custom features that I need to implement. I usually have to create a plugin or module in that case. It's a pain. I'd much prefer doing most of this from scratch instead of hacking at the code. If I had a choice, I would not use a CMS. I hate them.
I think ultimately it's about long term support. When you build a custom CMS in cake or another framework it is much easier and faster for you to customize and build the way you wan too. This works great if this is a project you are planning on supporting (by this I mean bug/user support for when you unleash this CMS on non devs). This can become a headache pretty fast when things need updates and clients are looking for fixes and changes. It's completely manageable, just more of a headache then something with community support.
That being said, if you are comfortable in wordpress the amount of support that exists in that community is huge. So often times you can leave the project knowing updates for the CMS and plugins will come in at a regular speed.
TLDR So if it's a project you know you will be supporting long term (or people with the same comfort and skill level as you) then I would say build it your self for ease of build and customization. If this is a one off or something you plan on handing off to a client with little to no support, building inside of a community supported platform is best.
I really comes down to priorities, if you what to build a site really fast a CSM is hard to beat, but you do not have the same control over the core as you do when you wright it from scratch.
But you can do most any thing with plugins/modules so the control is there if you are willing to work for it. If you wright it your self you will be the only set of eyes most of the time so it will in most cases be slower to implement new standers and security fix's (because you will need to find them first) but with a CMS you will have many people working to make it better and safe at the same time.
If you want to be well rounded I think youe need to be able to do both, you can't control what the customer wants to use some times.
You can make site very quickly with a CMS like Joomla but the problem is even having over 7000 extensions sometimes for your particular purpose you don't find an extension and developing an extension can be real tough. it requires a comprehensive knowledge of Framework. If all you need to do is manage content CMS is the best choice. If it is like a web app and require more interactions go for some framework which provide the basic skeleton of your app. e.g. for CRUD operation many frameworks provide scaffolding feature and make this thing a piece of cake. CakePHP, CodeIgniter, Kohana are some of the best PHP frameworks you can use.
Using Chinese Cms DedeCms or phpcms And developer it more easily !
I like PHPCMS, it works with nginx, fasctcgi, mysql on linux or windows.
I use it to make portal site or enterprise sites group. The multi-site architecture and PHPSSO works well. Template engine is also strong enough.
take a look at big mysite: xinm123.com
Most important thing: it's open source.

How much of using Drupal involves programming?

I would like to ask those who are experienced with building a website with Drupal. I got a job like this, but I'm more interested in programming. I got also another job offer and cannot decide!!
How often do I get to programming/changing code in Drupal, when building a site in it? Isn't it just about clicking around and downloading modules?
the other job is different but i didn't want to write long descriptions here. This job with drupal got all the positives, but im afraid that its less programming, more clicking and im trying to learn more programming. the other job is classic php programming with company internal framework.
thanks guys
I work in a company where I mostly do Drupal development. Now it's hard to say anything concrete about your job offer, since we don't really know the company etc. There's not really a reason why doing development with Drupal should be any less coding than doing development with some other PHP framework.
You get a lot for free with Drupal, the whole CMS part, all the modules on drupal.org, and yes there will be some AI configuration, but it's usually not that much. All the configuration part of a Drupal and modules is pretty easy if you know what you're doing. For me I spend around 5% of my time for a project doing configuration, making views (a drupal module you can use to create displays) etc, the rest of my time, I use hacking away in my code editor.
As a drupal developer, you mainly do two things.
Write code to add functionality
Write code to alter existing functionality.
Drupal is run is procedural, so there's not much classic OO, instead you write code that gets executed when something happens. Fx a user logs in, then you get a chance to modify the user, do some things like counting how many times the user has logged in.
An important part of Drupal is also presentation. In Drupal we call this theming. Theming is also very code heavy. Drupal is very flexible, so you can overwrite functions used to generate the markup in your theme. These are classic PHP functions. Then there is the whole css, html js part as well.
If you have the chance to do Drupal development, I think you should take it. There is a massive demand for good Drupal developers, that know how Drupal work, and how to use the APIs. It will be something you can use to find your next good job. Knowing some random in house PHP framework, will probably not help you as much in terms of finding your next job.
It's going to depend on how much you want to customize Drupal. You'll typically get to spend some time altering code to change the layout or whatever other UI-related requirements your employer/client would like.
As far as altering the core of Drupal, you wouldn't want to do that anyway or you could run into trouble when a new version becomes available and you want to upgrade. Any custom coding would instead be done in the form of writing Drupal modules or plug-ins.
Comparing your two brief job descriptions, the "classic php programming" option sounds more like what you want to do. There simply wouldn't be a comparison between doing development in Drupal vs. doing development on some company's internal framework, but either way you would get some experience.
Don't let this answer guide your decision on the offers. Pick the one that feels right and works best with your lifestyle. You can always do your own research and development outside of work if you wish to gain experience or knowledge.
It heavily depends on the project. I work as a professional Drupal developer for 2 years.
Normally making a Drupal site consits the following steps:
the site builder gets the spec
the site builder makes a research what modules to use
the themer makes a wireframe
client accepts the wireframe
the designer makes the actual design
the themer starts implementing the design
the site builder starts installing and configuring the modules
if there are problems which can't be solved with the available modules, then the developer gets a specification
the site builder finishes site functionality and applies the theme
testing
deploying
As you can see, your job will be depend on which role do you work. If you apply for a site builder, then you don't have to code much. If you get hired as a developer, you will most likely end up writing bigger or smaller modules for different projects (this is what I do most of the time). At smaller companies, the site builder and the developer (sometimes even the themer) are often the same person.
However if you want to make sure that you will write code all day (and you don't know what roles will you fulfill at the Drupal company), I rather recommend the second job.

Comparisons of DotNetNuke with other CMS's/Web Application Frameworks such as WordPress or CodeIgniter

I have never used DotNetNuke before. I'm thinking about giving it a try to help me build websites, and I'd like to hear from other developers who are in a position to compare DotNetNuke with other CMS's/Web Application Frameworks.
I have used both DNN and Drupal to build fairly large, content-based sites. My focus is more on the production side... UI/themeing, module configuration, etc. I'm sold on Drupal, but there may be other choices that meet your needs just as well. I just happened to work with both systems in recent months.
Drupal's core taxonomy module gives you the benefit of creating a relationship between different kinds of content. If you have "article" and "video" content types, you can easily display data from both types based on the shared taxonomy terms. This is huge and something DNN lacks.
Drupal's hook system is also a big benefit when building your own modules or creating "sub-modules" to alter or add to the default functionality of an existing module. This allows you to customize functionality or take advantage of another module's functionality as your application runs. If you purchase a module for DNN, you will have to alter the module if it doesn't meet your needs. Once you do this, you will need to update it each time there's a new release that you would like to take advantage of. DNN modules seem to be more stand-alone solutions. For example, if a DNN module has a rating system, it's only a part of that solution. With Drupal, I can use the "5 Star" rating module in my forums, my blogs, my articles, my videos, etc. There's central configuration for it and I only theme it once.
The themeing layer in Drupal also gives you a large amount of flexibility in that process. My frustration with themeing DNN sites was that I was stuck working with the markup the developer used, with no option for altering the output without hacking the module. With theme hooks and function overrides, I can change the output from those modules to meet my needs (not completely sometimes, but enough), without touching the module code itself.
The biggest problem I had with DNN modules, including some of the most popular, was just a lack of documentation or discussions available for how to achieve your goal. While Drupal's forums can be hard to navigate and you might not always find the answer you are looking for, there are many outlets for gathering information. Honestly, using DNN made me appreciate the community approach of Drupal more.
I was left feeling that DNN would be fine for building sites with more basic needs. But for that, I would still choose something like WordPress or Joomla, considering they have much larger user bases and, in my opinion, are more sophisticated.
Hope this helps you some.
DNN is a pretty good .NET solution for CMS. If you want more flexibility, I would look at SiteFinity for .NET CMS systems. This is a very flexible and elegant CMS for .NET
If you venture out of .NET and want to look at PHP solutions, then DRUPAL, JOOMLA, and WORDPRESS are best solutions. Some comments about each:
WORDPRESS - Is the simplest and most elegant CMS to work with. Originally a blogging software, it has a super-easy user interface, although that also reads as more limited power and features. It's excellent for content driven websites and templates are easily built.
DRUPAL - Is very flexible and configurable, but I find it more complicated than the others. The Admin interface requires more programming knowledge to pull off and adding components and extras is a little more complicated. But, DRUPAL has been proven in the business and government world as a secure and reliable CMS.
JOOMLA - Is my personal favorite. It is also very powerful and I prefer the Admin. interface. Joomla allows for much flexibility and has the most user created modules and plug-ins out there. You have to invent near nothing with this one. I am biased in favor of Joomla, because I use it the most. That said, it has limiting factors against DRUPAL, such as user security features. But this is being fixed in the next upgrade.
Hope that helps as well.
I have development experience using both DNN and Drupal to build content-rich websites. My preference is Drupal for a number of reasons:
Development time-line was shorter; I was able to produce more in less time.
Drupal has a larger and more active developer community. More resources are available to aid in development.
DNN is not actually a CMS. It is only a framework; Drupal is a framework with a foundational CMS.
Drupal is easier to install.
DNN modules cost money; Drupal modules are free.
Actually, I put together some notes a while back when trying to understand the architectural differences between DNN and Drupal. Found those notes, they are here: DNN versus Drupal. Hope this is helpful.
I experienced a fairly high degree of frustration when working with DNN and I don't believe I am alone in that regard. About a year ago, ASPdotnetStoreFront abandoned their involvement with DNN calling it a "disaster to work with".
I am curious to know what piqued your interest in DNN and if you have a specific website project in mind. Regardless, I wish you success and I hope this helps.
I worked in a .NET development shop utilizing Kentico CMS. I agree, it is feature rich and stable. The API and DB are documented well. Overall, it is a great CMS. There is a limited free version: http://www.kentico.com/freecms.aspx
I'm testing out DNN right now. So far, so good, but I think it depends a lot on what you are using it for. I've only been looking at it for 3 days, but so far I do find the documentation lacking or outdated.
I evaluated many of the different Portal/CMS systems out there back in 2004 and DotNetNuke ended up being my choice and I've been very pleased with it, for everything but E-Commerce, ever since. DotNetNuke is endlessly extensible, easy to skin, easy for non-technical folks to update, has a great 3rd party eco-system, and the development team is very active and talented. There isn't a great Articles module in the core but there are several really good ones available from 3rd parties for a reasonable price.
I tried using Joomla a few years ago and hated it. Wordpress is good for a blog style site but doesn't have nearly the power or flexibility of something like DNN. I am intrigued by SiteFinity, Umbraco, and Kentico for sites where all that's really needed is a CMS, but not enough that I've bothered trying them over DNN.
Another good .NET solution - from what I've read - is Umbraco.
Take a look at Kentico CMS. It's commercial, but still affordable. In my experience from dozens of projects on both CMS, Kentico is much more feature-rich, stable and well documented.

Which one would be better to a members website, Joomla or Drupal

Or maybe other OS cms?
I want to form a members website, with registration, member profile and member personal photo galleries
What would you suggest? I'm pretty advanced with PHP just don't have the time to develop from scratch
I don't know much about Drupal but if you're using Joomla you may need to install something like Community Builder and/or Simple ACL. Joomla's default user management isn't great.
Drupal does what you are asking from a basic install with quite a degree of fine grained control over members, profiles, permissions etc. I have set several up with little or no extra modules, plugins or programming.
I actually run one site with several hundred members with not problems. I am not saying you cannot do this with Joomla, just have not had the experience. I think Drupal may well be more "community" oriented in this respect.
I vote for Drupal. Even Obama has voted for Drupal.
Joomla and Community Builder / JomSocial should be a nice pair.
In my experience, Drupal is far more flexible than Joomla. If you're comfortable with PHP, I'd recommend picking it.
Definitely Drupal, especially if you already know advanced PHP.
Nobody has great user features out of the box, but Drupal has more and better quality user-related modules.
Look at drupalmodules.com for 'user' modules in the 6.x versions, and you'll see tons of related modules for each one you check out.
There are modules for advanced profiles, for a percentage (of the profile) completed, user badges to make them feel special, imagecache for excellent image support, image upload with cropping, ckk and views can setup many different kinds of photo galleries from scratch so they are completely customized for your site, ubercart if you want to sell premium memberships, etc.
I think both Drupal and Joomla would be able to handle creating a basic version of what you describe. The turning point is going to be, what more you want to do.
One of Drupal's strengths is first truely uncovered when you develop. You can very easily customize the look and feel of your Drupal site. You'll have more fine grained control of both what it does and what how it outputs it's markup etc. It's a powerful tool, only downside is that it can be a bit hard to understand for normal people. But knowing PHP that shouldn't be a hindrance to you.
I already created 2 Drupal Sites and 1 Joomla Site with this Feature.
Since I've worked with Joomla some years too, I think I can give you some Hints on it:
Drupal is WAY more flexible and professional than Joomla. But you have to put some effort into it. But if you know how to use it, it will do what you want. And since Drupal itself is so flexible the core does handle almost every feature you need. So it is possible to mix a lot of features together and do things nobody has thinked of before.
If you use Joomla, you have to pick a module for this task (like CommunityBuilder http://www.joomlapolis.com/) and while this module is very powerful, it may work together with other modules, but likely it will not.

Resources