Home » custom site

Tag: custom site

CakePHP and WordPress

I’m not too fond of WordPress and yet…

Most of the websites I have built are using WordPress.

The reason I am using it is simple: The final customer enjoys the ease of use that WordPress provides. It empowers them to maintain the content of the website and (to an extent) manage the website themselves.

WordPress is excellent for what it was built for: a blogging platform. As soon as you begin to “add on” to it and make it into a complex web-application, things break down in terms of performance, stability, and security. It pains me to see how every plugin is downloading its own set of libraries and code, creating an app, with-in an app, with-in an app.

This problem shows up because each plugin developer has to make sure that all the code they need is there, and they don’t know if you have it from other plugins. So the code base gets fatter and fatter with duplicate code, and the website gets slower and slower.

Maybe in the future, the core of WordPress will be re-written from scratch to address these issues and to have a shared library folder or use some dependency manager (like composer).

In contrast, for the more complex web applications, I have been using CakePHP. The reason: I love Cake, and I like PHP!

Joking aside, CakePHP is a framework that allows rapid application development using modern design and technologies. Because it is a framework and not a full app (like WordPress), there is much flexibility on how you want to do things, what libraries you want to use, how do you want to integrate it with the rest of the world, and so on. This approach makes for much cleaner logic and code and better performance.

The downside is two-fold:

First, the customer needs a tech person to maintain a CakePHP app. There are no simple “update everything” buttons.

Second, for better or worse, you lose the considerable plugin ecosystem that WordPress has to offer. And some plugins are super useful, like Yoast SEO.

The Best of Both Worlds

(no, this is not about the Star Trek episode)

What I have ended up doing in some cases is to have a CakePHP app developed alongside the WordPress app for the clients that agree to have me as their tech person. This setup allows them to use WordPress for more frequent and simple tasks and enables me to deploy the power of CakePHP to manage automation, monitoring, and reporting for their business. Win-win!

Case Study

For a big WordPress site where things needed not to break down, and that specific metrics are met every month, I have developed a custom CakePHP app to monitor the WordPress site. It would generate charts and analytics for sales, visits, engagement, and other metrics. It would issue alerts when needed and generate reports daily, and monthly that would make it easier to diagnose any potential problems.

Yes, everything could have been written in WordPress as a plugin, but that would have meant making a fat code base even fatter, and it would have linked the two very tightly. Having a separate application allows me to update them separately, and if one stops working, it does not upset the other. A side benefit that I got, later on, was that the same app could link into other WordPress (or Joomla!) powered website for aggregate data reporting.

If you have the skill or the resources to hire the skill, it may be worth considering creating your custom development in CakePHP instead of WordPress.

If you’re interested in the technical details, leave a comment, so I know to write about it.

Looking to learn more about CakePHP?

Michael from Toptal wrote an excellent review of CakePHP 3.x, and it only gets better with CakePHP 4.x. And if you’re starting from scratch, you may want to look into Laravel first. I am an “old-timer” when comes to CakePHP, but I see how some of the decisions at Laravel feel more modern and are a good choice for more complex apps.

How much cheaper is an expensive freelancer?

There are two types of readers that this article is for.

1) you are already considering hiring a freelancer, but you are still on the fence about it, and you hope this information will help you decide.

2) you are a freelancer looking for a way to position yourself in front of potential clients.

The short answer to the question in the title is that if you had the time and the skill, you would do it yourself. It would save you money, and you would not have to deal with communication issues. 

But here you are. And this means that either you lack the skill, or more likely, you lack the time. If you had enough time, you could acquire the skill and deliver before the deadline. 

The right freelancer will save you both time and money. 

You will save time in two ways: you don’t have to wait until you build the skills, and you can do other work while the freelancer does theirs. 

Saving money is not always that obvious. I can best illustrate it with a story. 

A couple of years ago, someone reached to me to help them with their site. After the initial discussion, I estimated that the project would cost them around $3k. 

They respectfully told me that it was too much for what they wanted to do, and we parted ways friends.

Fast forward four or so years, and I hear again from this person. They were desperate now. They had spent over $15k hiring help, and their site was still not working. 

Paying $3k to someone you trust looked like a bargain right now. 

Part of it was my mistake for not knowing at the time how to explain the value they were getting. 

And this brings me to another point: the price of hiring a freelancer is not the same as the cost of hiring them. A lousy experience means you need to hire someone new. That means more money spent and more time lost having your work redone. A good experience means you get it right from the start, and you recoup the money quickly from your working website. So which experience ends up costing you more? And what if you consider the cost that is not financial. Like a stressful relationship vs. smooth sales. 

And of course, this begs the question: how do I know if this freelancer is the right one for me? Is expensive, necessarily better or cheap, necessarily bad? 

Let’s deal with cheap/expensive first. Indeed there is no guarantee that expensive means better or even the right choice. But let’s look from the viewpoint of risk. Why would a freelancer charge you less money than another? It could be for a variety of reasons:

  • they desperately need the job;
  • they are new on the market, so they need to earn trust and build experience;
  • they self-evaluate their own ability to deliver as lower than other freelancers;
  • they have turn-key solution ready for you, so their cost is nearly zero;

It is a gamble. They could be outstanding but out of work and needing a job right now. (But this would beg the question, if they are so good why do they have trouble finding work). Or they have a turn-key solution ready to deliver. The catch here is to make sure that this “ready-made” solution actually fits your custom needs, or you would be left trying to fit a round peg into a high-quality and cheap square hole. Can you afford to take this risk?

With a more expensive freelancer, they could be bluffing, but they could also invest in themselves and have better training and a better experience. They could deliver the work with higher quality, faster, and with a lower risk for having to redo it again with someone else. 

Now back to: “how do I know if this freelancer is the right one for me?” 

It comes down to trust. What have they done that they can show you to prove their experience? What have they created and put out? Who is talking about them? How did you find them? Has anyone you know recommended them? 

My argument is that if you trust them, if they come with recommendations, and if you can see past work from them that is in line with what you want to build, then it makes sense to pay a premium now and have the peace of mind that comes with lower risk.

Choose wisely. 🙂

Custom Web Application versus WordPress

Have you ever had this problem of wanting to create a specialized service for your clients and not being able to implement your vision because of the limitations of your website?

Have you ever wished your website was more flexible and more customizable so you can easily differentiate from your competitors?

Let us explore together a way of thinking about this.

When you hire someone to build your website to deliver your products and services, you may be faced with the decision of building on top of a standard WordPress install or creating something totally custom.

So how do you decide what to choose?

To discover the answer you need to consider a few factors:

  1. What are your business goals
  1. How will you manage your site
  1. How will you update your site
  1. How fast do you need to be ready to go live

If your business goal is to have an online presence via a blog, a newsletter and a store then it may make sense to go with something standard like a WordPress based website.

WordPress was built for blogging. It is a very popular choice, so it has a big community developing plugins and extensions that will allow you to have an online store and a newsletter subscription very quickly.

A big advantage to using WordPress is the ability to apply automatic updates and the user-friendly administrative dashboard. With very little training you can learn to manage your own website and apply the updates yourself.

Another big advantage is the large range of templates and themes that you can use to quickly customize how the website looks, without having to hire a designer.

WordPress looks like an amazing choice. Why not use it all the time?

Paradoxically, WordPress’s strengths are also its biggest weaknesses.

WordPress strives to be useful and easy to use for a broad range of users. And because of that, it has to be very generalist in nature and make a lot of assumptions about how it will be used. And while you can use plugins to add features to it, ultimately WordPress is a blog platform that has been optimized for blogging. It some cases it can feel bloated with features that you may never use.

But if your business adds value through a custom service it provides, then that works against what WordPress was built for. Yes, you can do it by extending the platform, but the performance and flexibility of what you can do will suffer.

This is where a custom solution shines. Like a bespoke suit, a web application built just for your customers will be optimized to deliver that service. The obvious advantage is differentiation. You will be able to offer a user experience that may not be possible with WordPress. If built properly another advantage is performance. Since you know what this web application is supposed to do, very specific optimization strategies can be employed.

What are the disadvantages of a custom web application

Custom web apps shine when it comes to delivering your business goals and the flexibility to implement specific user experiences for your customers. But how do they fare when it comes to managing the website and updating the website?

Since it is custom work, you will have to rely on your developer for updates and maintenance. And the administrative dashboard may also have to be built from scratch to serve your needs and your customers. This adds some risk to your business. If you ever need to change developers the new one has to be comfortable and knowledgeable enough to be able to take over and maintain the website.

A custom solution also adds a higher cost with managing the website. It may not be as user-friendly as WordPress. And if you want to get the administrative backend to be super polished it will add to development time.

Another risk added by a custom solution is the higher probability of unforeseen problems and bugs. WordPress has such a large user base that the problems are likely to be discovered quickly and dealt with. That is not the case when you build a custom solution that only you are using.

It is not all bad news. Most of these risks are mitigated by using time tested frameworks, best practices, and standards when building the custom website. Just like with bespoke suits, you don’t have to reinvent the industry to have something custom-tailored and of very high-quality.

How fast can you go live with a custom website? Not as fast as with WordPress, that is for sure. If you are in a hurry, custom work may not be the way to go.

Conclusions

If you only need an online presence and the ability to blog then just go with WordPress. It is low cost, it is fast and easy to manage. And if you have some free time on your hands you can do it yourself.

If you need to put something up quickly and time is of the essence, stat with WordPress and plan for an upgrade later on.

If your goals are more sophisticated, then we need to talk about value first. How much value will the website bring into your business? The more you base this on data and research the better. If the yearly revenue from the site covers the costs of a custom solution (including development and maintenance) then I would suggest you go with a custom solution because of the flexibility and growth opportunities. Otherwise, go with WordPress and plan for an upgrade later.

A word of caution

There is an advantage to being quick and show up on the market place. A simple but fast website launched quickly is much better than a perfect website launched too late.

That being said, too many times I was hired to fix a website built on a shaking foundation with obsolete technology that was very limiting to the business.

What I suggest is a good practice is to give yourself a deadline. Something like: I need to launch this month, but I know that will have to build something more complex and stable so I will plan and prepare to do it in 12 months.

In 12 months you will have learned a lot about your business and your customers, so when it’s time to “get serious” you will have a much better understanding of what it needs to be done and that will dictate the choice of technology. You will also not be in a hurry, so you can do things right.