Ben Croker has spent all of his career in software development and entrepreneurship. His childhood love of programming eventually translated into a Computer Science degree, and then the development of a number of well-received Craft CMS plugins and applications. Read on to find out what was behind Ben’s decision to work with Craft CMS, and where he gets his ideas for plugins.
Shahzeb: Hello Ben, thank you for taking the time out for this interview. Before we start, how about you tell the readers about yourself?
Ben: Hi Shahzeb, sure thing! I’ve been a software developer and serial entrepreneur pretty much my entire career. Growing up in Ireland, we had an Acorn computer at home and there wasn’t much I could do with it back then (pre-Internet), so I used to come up with prank letters that I would print out and anonymously send to friends. That landed me in some serious trouble at school one time, but that’s a different story.
My father taught me how to program in BASIC at the age of 8 and I wrote some simple games for myself. He worked for the government at the time and had a room containing a big mainframe computer that used seabed information gathered from survey ships to map the continental shelf. He brought me in during the school holidays and I wrote some programs in Fortran to perform spatial mapping calculations. That was the first time I made some extra pocket money for doing something with a computer and it kind of amazed me. Every now and then I wonder if any of that code is still being used in production in some obscure way.
In high school, I used to play pranks on my schoolmates (and sometimes teachers) and poke around the school’s computer network. Once the Internet started becoming popular, I finally had an outlet for my love of programming and started building web pages with simple HTML (and animated GIFs, of course). Fast-forward a few years and I got a degree in Computer Science, travelled the world for 12 months, and then started my first company building educational software, called “nybble”, at the age of 24.
Shahzeb: So when and how did you start your career with Craft CMS? Any interesting stories you can share about your journey? What were the challenges you faced in the beginning and how did you tackle them?
Ben: I knew the developers behind Craft CMS from their work in the ExpressionEngine CMS community, as well as from seeing them at conferences. Their work was always high-quality, both in terms of code and usability, a combination which I highly valued. When they announced their plans to build a CMS, I was immediately onboard and began exploring and working with Craft (originally named Blocks) from its beginnings in 2013.
To be honest, the biggest challenge was figuring out how to distribute the plugins that I was building. Pixel & Tonic, the team behind Craft, had focused on making the CMS as extensible as possible. So building plugins to extend its functionality was a joy, but there was no system in place for selling those plugins or managing licenses.
An unofficial plugin store was created by someone in the community, and a few plugin developers, myself included, started selling plugins on it. Things went well for a while, but due to some financial trouble, the founder of the store stopped paying out to plugin developers. Long story short, there was mistrust and lies, and a court order was finally served.
Fortunately, a second unofficial plugin store was set up by someone more trustworthy. StraightUpCraft not only became a distribution channel for plugin developers, but also an excellent resource for learning materials, a jobs board, and all things related to Craft.
Today, of course, there is an official Craft plugin store which is a central repository of over 800 plugins (both free and commercial). It takes care of all of the distribution and license management, which simplifies things for plugin developers and makes purchasing and renewing licenses very straightforward.
Ben: In my experience, the best ideas come from scratching your own itch. In 2018, we were going through a redesign of PutYourLightsOn and I was determined to make it as lightweight and performant as possible. However, in terms of performance, the flexibility that dynamic content management systems offer also happens to be their downfall. Each time a page is requested, the CMS needs to regenerate the output of that page by collecting and assembling all of its related elements and content. If that content is dynamic and can in theory change at any time, then the process of generating that output needs to be repeated on every single request.
I started working on a solution to this problem and a few days later had the first proof of concept. Blitz was my answer to getting the best of both worlds — a plugin that serves statically cached pages (resulting in lightning-fast load times) and that refreshes the cache each time a page’s content changes (dynamic content).
The ideas for all of the plugins I have developed followed a similar path. I wanted a way to send email newsletters without having to copy-paste content from the CMS to an external email marketing platform and without having to compromise on the design of email templates, and so the idea for Campaign was born. I wanted to be able to quickly run a security scan of my site and be alerted immediately of any known vulnerabilities, and so the idea for Sherlock was born. I wanted to prevent spam form submissions without having to add annoying CAPTCHA images to my forms or forcing users to pick out traffic lights from a set of photos, and so the idea for Snaptcha was born.
Shahzeb: Why did you choose to create Craft CMS plugins when there are many other famous CMS available?
Ben: Craft does two things extremely well: user experience (UX) and developer experience (DX). You could make the argument that these are actually the same thing, just with different target audiences. Nevertheless, as both a user and developer, the emotional effect of using Craft is one of pure satisfaction.
To give you an example, I have on several occasions sent login credentials to a new Craft site to “non-technical” clients while scheduling a training session with them, only to receive a response along the lines of, “I just logged into the CMS and played around with it and I think I understand how it works, this is so easy!”I’ve even been told that there is no need for our training session since the client had already figured out how to change their content. We insisted on giving them training, as there is a lot to uncover when it comes to Craft. But the fact that this happens regularly is a testament to how intuitive and user-friendly Craft is.
When you work with a tool for multiple hours every day, you want it to be flexible and joyful to use. It should have precision and be able to adapt to your needs. In my experience, Craft CMS provides not only a very extensible application development platform, but it also provides an entire ecosystem for running a web development business. And is surrounded by an amazingly warm and supportive community of people.
Shahzeb: Could you tell us a bit about PutYourLightsOn? What challenges did you face when founding it? And how does it help developers and Craft CMS users?
Ben: I founded PutYourLightsOn in 2007 with the vision of using technology for good — connecting, protecting and enabling people to help one another. To that end, we always evaluate whether the projects we take on support that vision or not. We also support non-profit organisations whenever possible.
One of the challenges we have faced and continue to face is the ethical aspect of the work we do. For example, we would never knowingly engage with an organisation that sets out to build weapons or harm people. However, if such an organisation was to purchase one of our plugin licenses and use it in production, there would be little we could do to stop them. I’m not saying that we have any interest in policing who gets to use our plugins and who doesn’t, but the moral question is something that I have personally struggled with in the past.
There’s an amusing example of this I remember. I received an email from a non-profit organisation that was asking for a donated license of Blitz. To my surprise, I noticed that they were associated with the death penalty and I was instantly triggered. As I reread the email though, I was relieved to see that it was actually from the “Death Penalty Information Center”, an organisation that produces reports and statistics and provides educational resources related to capital punishment.
Shahzeb: Would you like to share some tips and tricks for those who are just starting to use Craft CMS?
Ben: There is an amazing community around Craft CMS that many people either don’t know about or simply don’t get involved in. The Craft community resources page is a good place to start. I personally recommend listening to the devMode.fm podcast, watching video tutorials on CraftQuest, subscribing to the Craft Link List newsletter, and joining the Discord live chat server.
My biggest tip is to simply get involved and start asking questions. Beware of the trap of thinking that as a developer you have to figure out how to solve every problem by yourself or that you are working in a vacuum. Some of my fondest memories are of meeting people in person at a conference that I had previously only ever chatted with online.
Shahzeb: You seem to enjoy speaking at Dot ALL sessions. Which topic are you going to talk about this year? And why?
Ben: DotAll, the official Craft conference, was unfortunately cancelled in 2020 due to Covid-19, and I am really hoping that it can take place this year. If it does, then I may submit a talk proposal on security in Craft. Security is a very broad topic that, as the people who design and build software, we need to be aware of. No software is ever 100% secure, just like no software is 100% finished. And so it is important to understand that security is really just about stacking the odds in our favour and making ourselves a harder target than we otherwise would be. While I am far from being an authority on the topic of security, lately I have been writing a lot of my findings and sharing the insights I have collected from years of building software at PutYourLightsOn.
Security is important for obvious reasons. Just like you lock your car doors at night to reduce the chances of someone squatting in it for the night, or worse driving off with it, you should lock down access to your website to reduce the risk of a malicious actor installing malware on it, or worse stealing all of your user data and secrets. And still, as with all things, security is a balancing act. Just like you don’t install a ballistic missile defence system in your car (AKA the Batmobile), there is always a practical limit to how much you can do to deter intruders and mitigate attacks on your website. Taking care of the fundamental best practices, however, will get you good mileage.
Shahzeb: What do you enjoy doing when you’re away from your laptop?
Ben: I live in the foothills of the Austrian Alps and regularly go hiking in the nearby mountains along with my partner. Lately, we’ve been doing a lot of snowshoe walking which is pretty amazing as it lets us wander into some areas that are otherwise completely inaccessible at this time of year. When the weather warms up I enjoy paragliding.
Shahzeb: Which type of web hosting would you prefer for your clients or community members? In your opinion, is conventional shared hosting viable for the projects that you do?
Ben: Conventional shared hosting is a major performance and security risk, in my opinion, and out of the question for anything remotely important. I use VPS servers to host most of my sites, but I recommend managed hosting to anyone who is not experienced in DevOps. Managed hosting plans give you peace of mind that your servers are configured correctly, proactively maintained and regularly updated, while still being affordable. Plus, if you ever need support then there is always someone you can talk to.
Shahzeb: What are your thoughts on hosting solutions such as Cloudways? Do you think these solutions add value to Craft CMS and PHP based applications?
Ben: Cloudways offers a wide selection of managed hosting plans while at the same time allowing you to choose your data centre (DigitalOcean, Linode, AWS, etc.) This, in addition to being able to scale your plan up or down at any time to optimise operational costs, is a very attractive offering. The $10/month plan with 1GB of RAM on DigitalOcean is a great starter plan that will get you a huge amount of bang for your buck, and you can always scale up as your website traffic grows.
Shahzeb: It can be hard to balance work and personal life. So what do you enjoy doing in your spare time? Would you like to tell us about your hobbies?
Ben: Yes, that certainly can be challenging, especially when running your own business. I love travelling and visiting remote places. My partner is also self-employed and when the pandemic broke out we took her yoga and therapy business completely online. That was not an easy transition to make, but it means that we are much more flexible in terms of where we go and we can now both, in theory, work from anywhere. So the plan is to explore the digital nomad lifestyle more, once things ease up and borders open again.
Shahzeb: Who do you think we should interview next, and why?
Ben: You should interview Matt Stein. Besides his quick wit, a keen eye for design and an unusual affinity for meatballs, Matt has done some admirably extensive benchmarking on the VPS hosting landscaping and shares it on his blog.
Shahzeb: To inspire our readers, I would appreciate it if you could please share some snapshots of your office space or your current workstation.
Ben: I’m a minimalist and like to keep things simple, so not sure my workspace will offer much in the way of inspiration. Below is a photo of a recent snowshoe hike.
Thank you once again, Ben!
Start Creating Web Apps on Managed Cloud Servers NowEasy Web App Deployment for Agencies, Developers and E-Commerce Industry.
Shahzeb is a Digital Marketer with a Software Engineering background, works as a Community Manager — PHP Community at Cloudways. He is growth ambitious and aims to learn & share information about PHP & Laravel Development through practice and experimentation. He loves to travel and explore new ideas whenever he finds time. Get in touch with him at [email protected]