Jump to content

PHP is cool again... I guess.


wbmnfktr
 Share

Recommended Posts

Just something I stumbled across and noticed the last few days/weeks.

More and more Devs (mostly from the JS-sphere) are talking about PHP, and not only about the latest JS framework trends.
There is a downside as they are talking about Laravel most of the time, yet it's something I didn't expect.

 

  • Like 5
Link to comment
Share on other sites

It's actually about PHP/Laravel as a backend/middle-man solution instead of all these JS/node.js solutions around and the benefits it brings. The main focus, at least in 2 of the 3 videos, is still somewhat how it works with JS-frontends but still a nice change compared to most other topics in that sphere.

You might want to watch or at least skip through some of the videos, the last one is fairly short, to get an impression.

It's super interesting, not because of the JS stuff, but because of what Laravel offers and what some see as easy setup and solution compared to what they build as a final product (portfolios, blogs, and such more minimal projects).

  • Like 5
Link to comment
Share on other sites

I'll share a bit of a sidenote on the language overall that I think may start to appeal to developers again who are giving PHP a try with or without a framework.

PHP 8.0-8.2 has changed the way I write code significantly and features new and old like arrow functions, enums, union typed properties, nullsafe operators, named arguments, return type hinting, constructor property promotion, etc. are fantastic. Performance gains keep rolling in as well. I've enjoyed seeing the deprecations and cleanup in the language- even just committing to using typed properties and return type hinting make so much of a difference in how the language feels. I like the first video above where the person focuses on how enjoyable it can be and I'm always hesitant to give much weight to a JS developer who has some really outdated opinions.

For example, these two sets of code do the exact same thing:

php_8.2.thumb.png.9a0bf37ae15f3c6bd470413701866ba8.png

I think that says a lot and the new features and style of the language are going to continue to boost frameworks as they adopt them as norms. Developers returning to PHP or trying for the first time are going to see something that feels really new.

I've been building a Laravel/Vue application and InertiaJS feels like magic the way it marries the SPA front end with the back end. Really enjoyable.

 

 

  • Like 10
Link to comment
Share on other sites

I really enjoy your insights and view on this. Especially with the shown example. 👍

17 minutes ago, FireWire said:

I like the first video above where the person focuses on how enjoyable it can be and I'm always hesitant to give much weight to a JS developer who has some really outdated opinions.

Exactly that. I really enjoyed that video. Even though I really didn't care about his background in first place. The video title was all I needed to watch it. 

  • Like 3
Link to comment
Share on other sites

I don't really get the point of the video, and associated with you question, it make me confusing, can you elaborate what you had in mind by asking ? 😄 (keep in mind I am not following the current bashing) I think I am in not the targeted audience. Like him I always ever been confused by people trying to reinvent the wheel, or trying to do in the frontend what the backend already do/ship, or even without it. A fact is (and I hope not a global one), among others, schools recruiters need to focus on the teachers they are recruiting to give good habits and knowledges to students. I have a real example as since one month as I have a trainee at home (first year of a Bachelor Digital School in France), she asked me to help make things about coding more clear in his head. I could see what she learnt in his first year making me not surprised that this kind of video pops. Experienced devs have no excuses anyway.

edit: just a (maybe useless ) comment, this is what I like (even if I am not using it) about HTMX philosophy.

Edited by flydev
  • Like 4
Link to comment
Share on other sites

11 hours ago, flydev said:

I don't really get the point of the video, and associated with you question, it make me confusing, can you elaborate what you had in mind by asking ? 😄 (keep in mind I am not following the current bashing) I think I am in not the targeted audience. Like him I always ever been confused by people trying to reinvent the wheel, or trying to do in the frontend what the backend already do/ship, or even without it. A fact is (and I hope not a global one), among others, schools recruiters need to focus on the teachers they are recruiting to give good habits and knowledges to students. I have a real example as since one month as I have a trainee at home (first year of a Bachelor Digital School in France), she asked me to help make things about coding more clear in his head. I could see what she learnt in his first year making me not surprised that this kind of video pops. Experienced devs have no excuses anyway.

edit: just a (maybe useless ) comment, this is what I like (even if I am not using it) about HTMX philosophy.

I think that you make a good point about the frontend/backend crossover. Writing the same language everywhere introduces some comfort in mixing up what does what and where. Then there's the perception or need for performance, "how can we reduce API calls to make our application 'snappier'". There's an entire generation of developers that have only ever known full stack JS, massive front ends, and a browser-focused approach. Like the video above said "you're solving problems that were already solved". I think there's a great place for sane client side UI frameworks and server side frameworks. It does create a great opportunity for user experiences.

 

  • Like 2
Link to comment
Share on other sites

I'll go ahead and invite myself to share some JS thoughts nobody asked for...

The don't-reinvent-the-wheel message in the "Do not use React Server Components" video is good, but I think there's a lot more to it when it comes to full stack JS overall.

Not only are JS devs largely solving problems that have already be solved, the JS ecosystem is constantly solving problems that it causes for itself. Obviously new features can cause issues to address- but it feels like JS really takes the cake on this one. Hydration and rendering issues were pretty much inevitable when you start overloading the front end and forcing the browser to do so much heavy lifting. Wait... sending a blank page that waits for JavaScript murdered your SEO?! Rendering pages on the server is relatively simple, rendering them in the browser- boy howdy... So then the JS devs cheered when it invented server side rendering... for JavaScript. Then there's the bundle sizes, which is noted in this article about React Server Components:

Quote

This time however, the JavaScript bundle will be significantly smaller. Early explorations have shown that bundle size wins could be significant (-18-29%), but the React team will have a clearer idea of wins in the wild once further infrastructure work is complete.

[RFC]: If we migrate the above example to a Server Component we can use the exact same code for our feature but avoid sending it to the client - a code savings of over 240K (uncompressed):

So now they're solving for asset sizes, another layer of complexity to solve an issue that didn't exist (at the level it does now) until massive front end frameworks caused them. We used to worry (showing my age here) about jQuery library sizes... React is excited about saving 240k while the entire jQuery library is 85.4k (uncompressed), and all you have to do is redesign your app architecture with server side JS! BRILLIANT!

Before someone interjects to correct me, I'm not saying that React and jQuery are the same, or comparable in functionality and purpose. I am saying that the JavaScript-first approach allowed a lot of people to accept compromises to create the Next Hot Thing and a lot of problems with it. JavaScript on the server pretty much just made this more complex by providing increasingly complex ways to make itself more complex- lol, recursion.

"But", the full stack JS dev will say, "you can use the same language everywhere so there's consistency."

My brother in Christ, you don't even import code between files the same way in Node and and client side ES6.

So when I read this in that video:

645842179_Screenshotfrom2023-06-1011-29-26.png.10e154edfcefceb17ceebab619032186.png

This is from a developer who goes to bed at night thinking about how their Next.js application codebase might be outdated by the time it launches. Then I go back to feeling like this:

1721391005_Screenshotfrom2023-06-1012-01-32.png.e622fdeda33b0afd78c54a323513c6bb.png

I used to kind of stress about not pursuing full stack JS, then I realized that I'm happy. Having a front end (whether SSR or a JS framework) and a back end (CMF or non-js app framework) keeps me sane. I know where things go, what they do, and why. There's consistency between projects. It's easier to maintain best practices. My NPM headaches are smaller. My PHP doesn't need nodemon or pm2 to restart the server application if there's a JS error. The amount of documentation I read that has a big red box in the middle saying "Note: this thing that you've built several apps with and know well is going away. We're destroying it because someone on Github said we need to move to stateless functions. Soon there will be pain, and you will cry." is very limited. I made that one up, but you get the idea.

I'm not dragging front-end JS frameworks per se, but making the case for why they should not pave the way to the JS-ification of all that is holy and aren't automatically better. Maybe putting JS everywhere has made SPA solutions worse because they didn't leverage how well traditional server side languages worked already.

Went off on a tangent here, but I've had a few moments of zen this year about being a PHP developer and wanted to share the energy.

All that aside, to answer your question @wbmnfktr I've wanted to pair up a front end framework with PW but haven't had the time or right project to give it a try with. I do like the idea of using PW as a JSON delivery backend in general.
 

 

  • Like 7
  • Haha 2
Link to comment
Share on other sites

1 hour ago, FireWire said:

"But", the full stack JS dev will say, "you can use the same language everywhere so there's consistency."

When this answer come, you already know the dev is confused. I will not even speak about React as it's a piece of software I cannot really understand but only that's the big elephant called Wordpress in the JS world, I feel like the folks was trying to make things complex for an obscure reason, maybe they worked for the DoD in the '70 when they realised they was writing code in something like 500 differents languages. "We need consistency and simple complex things". Look at this sample (React vs Svelte) and try to understand 🤯:

svelte:
---
<script>
  let a = 1;
  let b = 2;
</script>

<input type="number" bind:value={a}>
<input type="number" bind:value={b}>
<p>{a} + {b} = {a + b}</p>
react:
---
const [a, setA] = useState(1);
  const [b, setB] = useState(2);

  function handleChange (event, setValue) {
    const { value } = event.target;
    setValue(value);
  };

  return (
    <div>
      <input type="number" value={a} onChange={(e) => handleChange(e, setA)} />
      <input type="number" value={b} onChange={(e) => handleChange(e, setB)} />
      <p>{a} + {b} = { parseInt(a) + parseInt(b) } </p>
    </div>
  );
}

💁‍♂️    (taken from logrocket.com)

 

Not going into SSR things, but I must admit that since some years, I am mostly writing desktop software UI in JS where all complex things are not required, keeping a good architecture and making the user experience really far way above native UI, and even more when mixing real-time with 3D libs.

About the backend side, it's worth mentioning Angular and an awesome framework inspired from it, NestJS. NodeJS is really fast.

I Read in your previous thread you are using InertiaJS, what about rendering then ? Maybe you do not need it / care of it ?

 

1 hour ago, FireWire said:

React is excited about saving 240k while the entire jQuery library is 85.4k (uncompressed)

I couldn't resist to add a note for Svelte's size where source top at less than 4kb and less than 2kb compressed without brotli.

 

1 hour ago, FireWire said:

"Note: this thing that you've built several apps with and know well is going away. We're destroying it because someone on Github said we need to move to stateless functions. Soon there will be pain, and you will cry." is very limited. I made that one up, but you get the idea.

It happened 🤭

PS:  The screenshots seem to be not viewables.

  • Like 1
  • Haha 1
Link to comment
Share on other sites

So, I wasn't ripping on JS. I was expressing frustration that I think a lot of people have about the ecosystem. I don't use jQuery but I used it as an example of bloat growth. My point really is the JS-ification of everything and how that mentality has caused a high-intensity recursion of problems stemming from forcing a language written for the browser into a server. I remember when it was first announced that someone was got the V8 engine to run in a server environment and the first thing I thought was "well, that sounds like a box of headaches".

The main point was to throw some extra things in about the point that the first video makes: traditional server side programming languages and their frameworks (like Laravel) are not only very capable, they're enjoyable to use. They're also incredibly stable and PHP overall is so much easier to work and upgrade over time.

24 minutes ago, flydev said:

the big elephant called Wordpress

That's not a JavaScript problem, it's not a PHP problem, that's an entire internet problem ha!

46 minutes ago, flydev said:

About the backend side, it's worth mentioning Angular

Angular is a front end framework. It's also a big example of a framework with a rough history of development. Used to introduce a ton of breaking changes regularly and went through a complete rewrite. It wasn't a great developer experience. I was learning it years ago, I watched a presentation by Google where they made a list of all of the breaking changes that would be happening in several months without a major release version. This was after they split it off from AngularJS. I walked away from it.

31 minutes ago, flydev said:

I couldn't resist to add a note for Svelte's size where source top at less than 4kb and less than 2kb compressed without brotli.

This is a great example of great JavaScript and what a focused UI library can be. I was mainly using React as a punching bag because the video above it was talking about server side components for React. I'm not anti-JS!

50 minutes ago, flydev said:

NodeJS is really fast.

I mean, yes, but there are a small number of people that have to worry about speed at a scale that it would matter. Tons of applications and websites of all sizes run on "slow" languages and environments like PHP and Ruby, but in the real world the end user isn't going to notice unless something is really really wrong with the code or the server.

Where NodeJS is really useful is handling Socket connections. It's really the only choice. I've played around with a tiny SocketIO server I built to it's pretty great. That said, I'm not changing my entire server environment just to implement that. I'm building an application that revolves around timers and control messages between clients and there are services that do this better than managing your own code/server, especially when geolocation is concerned. At that point network latency is a bigger issue.

PHP8's JIT compiling will continue to push speed. Is it going to match Node? Nope. Am I worried about it? Nah. Should anyone reading this right now? I'd love to see what you're working on if you are...

38 minutes ago, flydev said:

That was hilarious, but the story behind it also says a lot about the state of package management in JS. NPM was a massive jerk.

1 hour ago, flydev said:

I Read in your previous thread you are using InertiaJS, what about rendering then ? Maybe you do not need it / care of it ?

Yes! I'm using InertiaJS with Laravel and Vue. The reason I chose Vue was pretty much just because it's very commonly paired with Laravel so it's good skill experience. Inertia is really great and simplifies a ton of stuff out of the box.

Like I said- having a great server side application and a solid JS front-end is where it's at.

 

  • Like 1
Link to comment
Share on other sites

Personally, I am just ripping on React. About my own experience with all this JS mess, I had the same sentiment you described about the frustration, I was totally in, until webpack "disappeared". I then got interest on bundlers, studied the core of rollup and then vite to finally turning the pile of JS bricks living my brain into a solid wall. Writing chromium bindings for Pascal language helped a lot, as the goal was to build an alternative to Electron.

Yes, Angular... I wanted to talk about the NestJS infra inspired by Angular. Anyway, another stack and breaking changes..

42 minutes ago, FireWire said:

Yes! I'm using InertiaJS with Laravel and Vue.

Missed this details, I thought you was using InertiaJS with ProcessWire 👍

  • Like 2
Link to comment
Share on other sites

I have really enjoyed using Laravel with Livewire on my last project.  Its so nice to have things like database migrations and factories.  So much easier to keep the database in sync across live and dev installs.

And it gives you an easy way to make everything more reactive, like with search fields not refreshing the whole page, and even updating as you type, and drop downs filtering without refreshing, and all in php without doing javascript for it, it really spoils you. 

And if you need to move the file hosting in the admin section from the server to something like s3 or digital ocean, it was super easy.  I never got that working with processwire since the admin expects everything to be on the server.  That are not drivers for file storage.

I hate to say it, but with page builders like bricks builder for wordpress that live update as you type and design, that let you knock out 15 page brochure websites in 10 to 20 hours total, and with Laravel for more complicated or custom things like cloud friendly company intranets, I find myself not reaching for processwire like I did in the past. 

ACSS and Frames combo is really nice also.  A unified front end builder using a variable based CSS framework with prebuilt content sections that follow proper css naming conventions and accessibility, you can just pull the existing rows in? And they all read your existing color scheme and support screen set images and they are already responsive?  Game changer. 

  • Like 3
Link to comment
Share on other sites

@joer80Used various CMS like Joomla, TypoLight/Contao, Silverstripe, ModX, WordPress, WebsiteBaker, Plone, ProcessWire, …, in the past to build client websites. As a backend developer I liked Silverstripe, Plone and recently Processwire the most as they give you much freedom in doing things the way you like. The Processwire API is really outstanding here, as it allows to access/hook into about any process/resource you need with an easy to understand API.

Don‘t know why, but from all CMS I used to build client sites, I hated WordPress the most. Used it only if customers wanted features or designs which where already available for free in the WP eco system. Best part for me was the automated updates of core and addons in WP.

Most of my clients however want to host their sites on own servers and do not want to use cloud services or CDNs due to data protection requirements and general politics. In this eco system, PW is the perfect match for me as backend dev for now. 

And yes. Recent PHP 8.x features are really cool, especially if you used e.g. C#/TypeScript in the past. 

  • Like 5
Link to comment
Share on other sites

On 6/17/2023 at 4:46 AM, joer80 said:

 

I hate to say it, but with page builders like bricks builder for wordpress that live update as you type and design, that let you knock out 15 page brochure websites in 10 to 20 hours total, and with Laravel for more complicated or custom things like cloud friendly company intranets, I find myself not reaching for processwire like I did in the past. 

So I made a flippant remark about WordPress vs. ProcessWire yesterday, but I'll elaborate here because it's very true.

These are just 9 instances where I've helped with WP sites. Different sites, different end clients. All happened within the last 12 months.

1. I have a friend in digital marketing who I contract with sometimes. A client's WP page builder causes her problems with its complexity. Users shouldn't have to worry about things like padding, margin, responsive columns, a visual editor that switches between preview screen sizes, etc. She's asked for my help multiple times because some very front-end CSS properties just have a UI slapped on them but that doesn't make the user a web designer. Felt like using 2005 Dreamweaver in 2023.

2. The same friend manages a different client WP site wanted to create an accordion for content- the markup-esque plug-in text she had to enter wasn't working. So I had to log in and check her code and fixed it for her- there was a symbol that somehow got entered (no idea how, very obscure) that looked like another regular letter or symbol that broke it. She never would have figured it out and not her fault. Not even sure how she would find that off-keyboard symbol. Someone could say "well it was her fault because she screwed up the code", I say why is someone using code-like text in an editor to generate an accordion to begin with?

3. The same friend manages yet another WP site that completely went down due to core and plugin updates- probably the wrong order between the two. I had to log into the host, roll back both the code and the database. It worked until the next day when automated updates just broke it again. They gave up and had another WP site built. Stuck with WP because they "know it" but effectively in practice not really and it's because of the wild variations between plugins and the lottery back-end quality. Also, rolling back to an earlier version just blows the WP vulnerability door wide open, so then you're back to doing emergency dev work on a site that never should have gone down. Since every WP site is different it's now time to enter the "which one of y'all plugins just took this site down?!" jungle.

4. I had a different WP site passed to me by another person I work with where I had to fix a WP plugin and write new code outside of the plugins directory to get it to work. At some point something started blocking execution of some code in the plugins directory. There was no way to fix this without a workaround. Users really don't care how the problem happens or why, and I only saw that their WP site broke. It was for an animal shelter and that plugin listed the animals available for adoption, so again because that's core to the operation of their organization- it's an emergency request.

5. After I had fixed their plugin, the client fires back at me angry because "now we can't update the home page slider!!!". They accused me of breaking it. I think everyone here will agree that modifying a plugin to list animals on interior pages has absolutely nothing to do with a home page slider plugin, or me. I log in and learn how to use this slider plugin where you create it in a completely different location in the admin and then shortcode it into the page. The plugin technically worked but the process was so complex that they forgot how to do it. I went through the process, screenshot the steps, and designed a step-by-step PDF with notes to walk them through the process. This sounds easy but clicking through WP, taking screenshots, photoshopping/writing out instructions, and creating a PDF takes more time than you'd think- but there's no way in hell I could write them an email describing it. I emailed it to them with my invoice.

6. That same person passed yet another problem to me on a different website. Couldn't get the page to update. There was caching involved in two different places, one was in the plugin area of the admin, and another one was in WP bar at the top. Neither of them cleared on page save so the page on the site would just not update. The admin was also really really slow. Editing a page was massive work as plugins loaded and made a ton of AJAX calls just to get parts of the UI visible. You could blame the dev but WordPress has promulgated itself so far into the world and deceptively been marketed as "easy", but it really isn't.

7. My partner is a digital marketing manager for a company, they use a different page builder which after a while got used to using with my help. It was much easier for the dev they hired to push out the website, but a pain to manage. I've had to edit CSS and HTML to fix pages (in the plugin and in the page editor) which is a massive no-no for end clients. What is the value of a CMS that stymies users and my partner only got fixed quickly because I do a webz?

8. Another project with my partner- I don't have the bandwidth to build a site for one of our friends casual softball team, so I created a WP install with a different page builder at their request, then came more problems figuring out why "blocks" weren't working as expected. What I had to do just to get a full width hero image was frustrating. We don't have to go into the other plugin issues.

9. A different WP site had a plugin reg key issue (previous dev may have reused it). This shut down all the forms on their site which were critical, so they decided just to just spend the $30 for a new key. I sat on the phone with this person through the process and they were concerned that if they enter the key the plugin will reset and they'll lose all of their forms. Why should any end user worry about plugins/registration keys and data loss?. I communicated well, and listened to his concerns, everything came out alright. Next day had a meeting with him, the organization president, and a board member want to work with me now. I'm writing a proposal for a very nice monthly retainer contract this weekend and they want to get started next week. Shout out to WP for the boost 🙏 (They have also said that they are in no way married to WP, surprised?)

All of these people spent hours before calling me because it can't be that hard, right? WP makes them feel dumb. I billed for each of these and it's part of my income (except my partner...).

I'm in a client meeting 2 weeks ago talking about a new site. Someone mentioned WP and before I said anything, 2 people talked about how "every WP site I log into is different and difficult to use". They are currently on a PW site which they've outgrown- but they never felt "this CMS is bad". I adjusted some fields and they're happy. Did it require a dev? Sure did. But they've been using a site that I built back in 2017. I've only really upgraded PW core to keep up with PHP version changes. Not once did a module break.

That's when I said in that meeting "I love WordPress, I make a lot of money off of it". Also, none of these websites were fixed by the people that built them. I have a reputation for solving problems and they may be cultivating an image that they create them. I also had a meeting with a bona-fide marketing company to possibly do contract work. I suggested PW and that it doesn't have the problems WP does- the owner of the company said "yeah, but that's something we make money on". Lost an opportunity to do business because profits are baked into the product's problems.

So at what point do we acknowledge that there's a difference between saving time in our work and offloading it onto our clients? I use PW to define the client experience. No layout builder, they just enter content and it works and looks like it's supposed to. The sites look nicer longer because non-devs don't design a layout for new pages. We plan ahead for what pages they'll need and occasionally I'll make a "custom template" using a RepeaterMatrix field- but it still ends up fitting the design. Custom sections, no layout builder- 100% satisfaction.

The training time to use a PW site is around 15 minutes with "wow, that was a lot easier than I expected". Does it take a little extra dev time on my end? Sure, but I've gotten faster. I have boilerplate Sass that I use to speed things up, and it's easy to reuse blocks of other code between projects.

A PW win that I didn't need to split off to a new site or app stack. I used URL hooks to create a basic API on a PW site that my Salesforce Apex components called to sync in-person events for an iPad web app that consultants used to send leads back to Salesforce. That was a faster task thanks to the ProcessWire API, and it let the team and I get strategically creative on how to drive business performance. I credit ProcessWire for having been a revenue driving component. Full stop. $20m -> $70m in 5 years- nonlinear increases, much of that came from pushing the website, digital marketing, and rapid post-launch feature development. The numbers didn't lie. It's also because I designed a website UI optimized for conversions that people who handled content couldn't screw up.

All that isn't for every website/client, BUT when I meet with all clients I ask them "what are your business goals and how can your website help achieve them?". I wouldn't have the confidence to ask that with WP.

I'm not dragging WP devs or people who choose it, I'm sure there are places where it makes sense. I also recognize devs who take the time to make the experience better regardless of platform (I imagine like @zx80 above). Kudos. It's not just about choosing the right WP plugins or something though. There are non-tangible issues as well, how many people/businesses don't update their site as often as they should because it's difficult? Downtime? Off-hours emergencies? Those are all business strategy and revenue issues. People want to save time and money up front- and please do, they'll eventually pay me and it buys concert tickets and Friday date nights or whatever.

Ironically, one of the 9 examples above happened while I was writing this comment. I'm not even lying.

  • Like 6
  • Thanks 3
Link to comment
Share on other sites

I really enjoyed this post. Thanks @FireWire It almost feels like home.
I almost have seen or experienced all of these issues and scenarios in one way or another. The never ending story of WP... of some kind.

Yet... I have to admit that there are a lot of super experienced WP DEVs out there that know a lot about doing there stuff we all can learn from. They really challenge WordPress and not their knowledge. (Shoutout to MonkeyDev/Patrick!)

Whenever I or WE (as in Muskaat) have to deal with a WP site, we make it totally clear to just fix that very issue and don't even bother or feel being responsible for any other existing or upcoming issue in that very site/project.

** Without that clear statement, "clients" wouldn't even think about paying us.
But with that very clear statement, noone ever questioned us.

Especially due to the fact that most of them had a very solid offer for one of our PW Setups/Projects, but decided otherwise. - Yet again... their decision. We are just the FIXERs for their decisions. Most of the time at least.

We have seen very good WP projects that were stunning and almost perfect in execution. Yet... at some point there always was an issue. Most of the time, the WP DEV abandoned the project. In most cases we found another WP DEV to fix it but sometimes... we had to go another route. A total rebuild with PW, as we don't do WP/or most other CMS/Frameworks.

In the last 3-4 years most of our offers were denied and answered with something like this:

Quote

Yeah... we decided to go with another agency. They use WordPress and were way cheaper than you in all aspects.

We knew we were too expensive with our offers - compared to similar agencies and solo-devs.
We had to challenge those responses and learned from it over a lot of months and this was our answer most of the time:

Sure, that's fine... and yes... they have to be.
[BIG PAUSE]
Don't worry they will do whatever they can for you and your project.
You have our number. Let us know whenever we can help you out.**

It paid out at the end. We could move most of the projects over to us and ProcessWire and went from there. We took full ownership of those projects and at least trippled everything from search impressions to clicks. But that's another story. 3 out 4 projects are now long-term partnerships.

  • Like 5
Link to comment
Share on other sites

Great read @FireWire, thx for sharing!

It reminded me of a conversation with a fried that builds WordPress websites and is very happy with it. It was a terrible meeting to be honest, because I was struggling with my business at that time and I was thinking about what I could change or where I could focus with my skills and with the strengths that ProcessWire has to offer. But he is that kind of person that is better in talking than in listening 😄 So while I was telling him the reasons for my struggles (like for example that it takes a lot more time to build a website with ProcessWire than it takes to click something together with WordPress and some plugins) he was all the time responding with, "yeah, WordPress is great, we are using Elementor and my junior employee who was a parcel carrier one year ago builds a website for a client in 3 hours and we charge 1.500€ and everybody is happy.

That really hurt in that situation, because I think it's the way the industry works (maybe a little exaggerated, which is always the case with him 😄 ). At least a big part of it.

Also, I lost a client because their ProcessWire website was too inflexible. It was too static. So what you @FireWire describe as a benefit is IMHO a big limitation of ProcessWire. We have RepeaterMatrix, but it's still very hard to build a website with flexible building blocks (sections) that the client can rearrange as he/she needs. So the client moved from ProcessWire to WordPress. The main reason was exactly what you mentioned @FireWire: "We need a dev for every change". I think their new website is terrible but unfortunately I don't have any info on how happy they are with the current setup.

But I understand that clients have that need. So I built RockPageBuilder. It's been in development for 2 or 3 years now and tries to find the sweet spot in between those PageBuilders that allow the client to to everything (adjusting fonts, colors, paddings, margins or even worse nesting elements so you need a degree in web development to use it) and ProcessWire, where the developer is the only one that controls the layout. It lets the developer easily and quickly define the building blocks of the website (like cards, text, headlines, gallery, single image, etc) and lets the client easily and quickly use those building blocks without having to think of paddings, margins, colours, font sizes or responsiveness because that is defined by the developer who knows how to make it work best for all situations. I'm sure there are niches or websites that don't need this flexibility and that can benefit from the tight skeleton that a developer provides, but in my experience this is not the case for most of the market and that's a problem in my opinion and that was basically the question that I was having in my head when asking for help from my friend and the main driver for building RockPageBuilder.

But that's not the point of my post that is getting too long already (sorry for that 🙂 ). Why did I mention all that?

Because with all those problems in my head, the solution of my friend (WordPress + Elementor = 3h = 1.500€) sounded terrible for me and I guess you can now better understand why. I thought maybe I have to switch to WordPress as well. Maybe I should build modules for WordPress rather than for ProcessWire ...

BUT - and that's now the point of this post and the insight that I took from the meeting with my friend which turned it into a good, helpful and at least somewhat motivating meeting. After telling me for over an hour how great WordPress is and how easy it is to manage for his clients ("every ape understands that in one hour") and after showing me how that really looks on a real life website I thought: "Well, I don't think it is really THAT easy." All the options, all the settings, all the things that could possibly go wrong... It just didn't look like something I'd like to work with (both as a dev and as a webmaster).

Then I asked: "And your clients manage their websites on their own?"

He: "No, they don't want to. It's so simple, but still, they don't want to do it and pay me good money to do it for them."

That was strange. My clients typically manage their websites completely on their own. I don't hear from them very often or at all. It's a totally different experience. I thought a lot about that statement and the whole meeting. If it was really that easy, why would almost all of his clients pay him for doing it? That made no sense. Until I realised: Maybe it is not THAT easy. Maybe these great page builders are not that great for everybody. Maybe less (options) can be more (ease of use and fun).

And that perfectly fits what you said @FireWire

19 hours ago, FireWire said:

All of these people spent hours before calling me because it can't be that hard, right? WP makes them feel dumb.

And (unfortunately) it perfectly fits to this as well:

19 hours ago, FireWire said:

I suggested PW and that it doesn't have the problems WP does- the owner of the company said "yeah, but that's something we make money on".

But I can't help. I want to have fun with what I'm doing and I don't want to charge my clients money for managing sites that I've built because they can't to it on their own.

---------------

PS:

18 hours ago, FireWire said:

I went through the process, screenshot the steps, and designed a step-by-step PDF with notes to walk them through the process. This sounds easy but clicking through WP, taking screenshots, photoshopping/writing out instructions, and creating a PDF takes more time than you'd think- but there's no way in hell I could write them an email describing it. I emailed it to them with my invoice.

Screenshot tools like greenshot for windows or shotter for mac can help a lot here. Or you could record a video easily (and for free) with a service like https://screenpal.com/ or https://calipio.com/ - maybe that helps 🙂 

  • Like 4
Link to comment
Share on other sites

On 6/18/2023 at 1:41 AM, wbmnfktr said:

Whenever I or WE (as in Muskaat) have to deal with a WP site, we make it totally clear to just fix that very issue and don't even bother or feel being responsible for any other existing or upcoming issue in that very site/project.

** Without that clear statement, "clients" wouldn't even think about paying us.
But with that very clear statement, noone ever questioned us.

This is the de-facto method of increasing our profiles as developers. Wide open communication- especially up front. Set expectations. You can make some pretty safe assumptions that people who have gone through the website process before and have experienced frustration due to lack of communication or transparency. Even just making that statement to protect yourself shows a client that you're engaged.

12 hours ago, bernhard said:

yeah, WordPress is great, we are using Elementor and my junior employee who was a parcel carrier one year ago builds a website for a client in 3 hours and we charge 1.500€ and everybody is happy.

I'm going to take an opportunity to outline my process to fight against this. I'm certainly not trying to say you or anyone else here is doing anything wrong. There are so many factors to take into consideration- including your local market, the businesses available in the area, the number of competitors, etc. I do not advocate for taking what I do as cookie-cutter advice.

I'm not going to tout myself as a biz-wiz, but I've learned from freelancing, ad agency work, and being an in-house developer (when I'm in-house, I treat the company I work for as my client) it's about proving to clients that my first concern before fingers-to-keyboard is their business and their success. This is how I go full plan-of-attack against the "1.500€ crowd" because after your first meeting a potential client should be left feeling "whoa- those people who want to sell me a discount website seem like they are a bunch of parcel carriers". My intention is to make every discount chop shop (regardless of CMS) feel like they're slapping out half-assed sites to cash a check- because they are.

My first client meeting always covers these points, and never over email. I take notes like a fiend, I want them to know that everything we do next (and the price) is completely dependent on their wants and needs- this is also not a "gimmick", they're giving me my marching orders.

  1. This may sound odd, but what does your business do? I've looked at your current website, but would like to hear that from you. (There's a chance they haven't updated their current website due to reasons we've talked about here, or that the content doesn't do a good enough job).
  2. What are your plans over the coming year? Do you plan on expanding to new locations? New products/services? (Not always, feel the client out to see if they're positioned for this- it also lets you think about whether you need to consider this for the site architecture/code)
  3. What do you want visitors to do when they get to your website? What does success look like? Filling a form? Calling? Getting them to your online shop? Visiting your location in-person? Stick around for ad revenue? Explain that websites are supposed to do things with purpose.
  4. Open up the conversation about how a website is not a brochure, it's a live business asset that establishes brand strength, is often first impression of a business, and because we just discussed what conversions look like in the previous question- a tool that works 24/7 on their behalf.
  5. What do you like about your current site?
  6. What don't you like about your current site?
  7. Is there something that you want your website to do now that it doesn't now? Get everyone in the room to think about how this isn't a replacement website, we're leveling-up here and it's time to get strategically creative.

Then I talk about the things that are important to me when working with clients.

  1. Communication. Always #1. They already know that I've taking the time to communicate, now they know that it's my priority and it makes them realize how much we've been talking about them. This is another thing that I can almost guarantee has not been said to them.
  2. Ownership. Businesses/people should own their properties and assets. True ownership means being able to use and update it. If there are services along the way (like maybe Google Tag Manager) or a new hosting company then it should be an account their business owns and I'll guide them through any process to do so. If I were to be unavailable someday- you won't be stuck with a website that was dependent on me.
  3. Performance. Re-iterating the need to aim for conversions. Adhering to accessibility rules for legal and user friendliness reasons. Making the site 100% (like Google Lighthouse 100%) SEO ready when it comes time for a specialist to optimize.

These questions almost never fail to get potential clients to go wide-open with you. Every single thing we have talked about has now built value and price follows value. This is where we end the first meeting and I tell them that I want to review my notes and put a proposal (I never call it a "quote") together for them and that we can meet/call next. This first meeting usually ends up taking 1-1.5 hours, an initial meeting I had last week took 2.

My proposals run 2+ pages. The opening paragraph is the introduction to the project and the approach- if they said they want to expand then the website "will be built with your goals for expansion in mind". The next are bullet points that now re-iterate much of what we talked about in our initial meeting (the 7 questions). Next I talk about timing, to head off "how long will it take"- that this project is a collaboration where we depend on each other to get content, approve designs, consider the features that the website is going to have, etc. We're all in this together, and I am invested in this with them. You're now thinking about their concerns before their questions and you've worked to control that conversation. If I'm asked for more detail, I say that we will set timelines for each stage when we get started- so when design starts the timeline is X, when that is approved we set the next timeline, etc.

Then comes the price but I close with the terms of payment. It's usually 40% to get started, 40% on design approval when we go to code, and 20% on launch. Now the client is looking at the price in terms of affordability over the coming X amount of time.

Here's what this process has done: my language says "I'm an agency" not "a person who does websites". The client has probably talked to me more than they ever have to other web people. They've shared the good and bad, we have a relationship, and now you have absolutely everything you need to do your best work and they know that. They probably also haven't encountered someone who wants the website to achieve conversions. They now know me as an expert.

This has been pretty successful for me over the years. I also have a reputation for engaging and caring about clients- the biggest thing is that people trust me. Right now all of my work is referral/relationship based.

I really want to help people out there who struggle with pricing and the "doing business" aspect of the process. If anyone reads this and some of it seemed out of reach- I encourage everyone homework and learn on how to speak to these points confidently. Learn UI best practices, learn about what parts of web design actually drive conversions (things like speed, the number of fields on a form, effective calls to action), if anyone is interested I'd be happy to start another thread and share what I have learned and implemented over 15 years of business-oriented web development via ad agencies, freelancing, in-house developer, and now my own company.

Now, go find me a WordPress developer that slaps together a plugin site and remotely does any of this.

Time for hard numbers! This is a CRM report of the number of sales leads generated by the website at a former company I worked for (employee). They are now generating the number of sales leads year round as they are in the worst weeks of the year- even worse, the number of leads should have been trending up as the summer months are the strongest sales season. To understand the impact here- the product they sell costs $40,000+ so they are dumping opportunities (and the money that comes with them) back into the market- effectively destroying their revenue.

And guess who is a client of mine now... (that's right) a competitor. The leads before that purple line? ProcessWire 😎

weekly_lead_performance_clip.jpg.e37ff8cca9f54e14be5b33c9dc2de3e4.jpg

12 hours ago, bernhard said:

Also, I lost a client because their ProcessWire website was too inflexible. It was too static. So what you @FireWire describe as a benefit is IMHO a big limitation of ProcessWire. We have RepeaterMatrix, but it's still very hard to build a website with flexible building blocks (sections) that the client can rearrange as he/she needs.

I very much can identify with that sentiment. It's difficult to overcome and not always possible. I went into more detail about my process above because I try to head off so much of what may happen like this- and I don't always win- so I really don't want to pull a "HEY EVERYONE I SOLVED THE PROBLEM!!!" on this haha.

I really try to communicate that if I've done my job well then the amount of work they should do shouldn't require that level of customization on their part- BUT you may not be able to win over those that demand it anyway. I can say confidently though that if they want a business driving site, then they should go study UI and UX and become a damn web designer. That's another thing WordPress has done- made people think that web design is easy and made people absolutely ignorant on how their ideas have consequences. From a business point of view, I would be bold enough to say it's outright risky. We all know that good web design is hard, clients should feel the same way- it should make them actually feel uncomfortable doing what page designers let them do. I want them to feel like anything beyond what a RepeaterMatrix field can do may not be a good thing.

I want my clients to know that they hired me to do everything in my power as an expert on their behalf. If I walk into a bakery I don't start telling the chef how to bake his bread. My entire approach is not to scare people, it's to educate them. When I show them a web design for approval and someone says "well I don't think the button should be there" or "maybe this should be a different color" we then talk about how xyz actually changes people's behavior, that every component of their site design was placed with intention. My design is intentional, their ideas are opinions. If you feel that your opinions outrank the experience you're hiring me for- there's a $1500 parcel carrier down the street who loves letting you do his job for him.

This is why I've never had to show a client more than one design. Sure, there may be tweaks, but by the time we get there we have buy-in from everyone at the table and there's confidence that we've worked together to make the most kick-ass thing possible. I stress the word "collaboration" at all possible points in client relations.

12 hours ago, bernhard said:

Screenshot tools like greenshot for windows or shotter for mac can help a lot here. Or you could record a video easily (and for free)

I've got my native screenshot tool on Linux ;) I didn't think of a video, good idea!

Big thanks for the info @wbmnfktr & @bernhard. This thread has some fantastic stuff going on here. Also I wasn't trying to say that you don't know how to "do web business" but I wanted to share my process out in the open for others to see. So, not a direct critique or aimed at you.

12 hours ago, bernhard said:

So I built RockPageBuilder. It's been in development for 2 or 3 years now and tries to find the sweet spot in between those PageBuilders that allow the client to to everything

I need to check this out to have it in my repertoire. I heard of it but as you can guess didn't make it a priority haha.

  • Like 4
  • Thanks 3
Link to comment
Share on other sites

What a gem of a conversation going on here! Thanks @FireWire, @wbmnfktr, @bernhard, etc. 

Some of stuff mentioned here reminds me of the time I was researching stuff for Padloper. To some extent, I'd put WP and Shopify in the same basket. A massive marketplace of plugins that inevitably leads to ...you know where.. not to mention the backend!

1 hour ago, FireWire said:

I'd be happy to start another thread and share what I have learned and implemented over 15 years of business-oriented web development via ad agencies, freelancing, in-house developer, and now my own company.

No pressure, but I bet that would be helpful to some folk here; much appreciated. 

From a moderator perspective, I'm happy to split the 'new' conversation here into its own thread if we feel it is tangential to the OP.

Edited by kongondo
  • Like 6
Link to comment
Share on other sites

I want to give a shoutout to the work that @bernhard is doing with his page builder- and all his modules really. He took the time to share the progress he's made on RockPageBuilder. It really does nullify so many issues that I shared above in my 9 WP examples above. Once again, the quality coming out of the PW community continues to take things that exist on other platforms and do them the right way, just like PW itself. Outstanding work!

It's a module, so I'm going to count this as PHP related 😁

  • Like 4
Link to comment
Share on other sites

Hey @FireWire could you please remove the link - the video is not intended for the public yet as it is a commercial module and I don't have infrastructure in place to sell the module 🙂 

1 hour ago, FireWire said:

I want to give a shoutout to the work that @bernhard is doing with his page builder- and all his modules really. He took the time to share the progress he's made on RockPageBuilder. It really does nullify so many issues that I shared above in my 9 WP examples above. Once again, the quality coming out of the PW community continues to take things that exist on other platforms and do them the right way, just like PW itself.

Thanks for the kind words @FireWire your feedback means a lot to me especially in the context of this thread and your previous posts 🙂 

1 hour ago, FireWire said:

If you haven't taken a look at RockPageBuilder (you probably have and I'm late to the game 🤷) his tour of the module (YouTube video) shows his great implementation. If a page builder became a hard requirement I think I'd be less aggressive in pushing back knowing I have this module in my back pocket.

It can actually do a lot more than that. It could also be used for building a custom newsletter tool or a tool where clients can build their own PDF reports with flexible building blocks.

I hope to get everything done soon, but there is still a lot to do 🙂 

  • Like 3
  • Thanks 1
Link to comment
Share on other sites

 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...