Jump to content

The real catch of ProcessWire: 11 years later (updated)


Alexander
 Share

Recommended Posts

We’ve been building web site with ProcessWire since 2013. ProcessWire serves to us as a secure, reliable platform, and honestly, I don’t remember any significant issue after 11 years of daily use (for us, PW is also a CRM). The magic of ProcessWire is that it is always growing with our needs and serves any unimaginable demand that our platform has had. All these years, our business has grown around ProcessWire, and as it usually happens, popularity brings the other side of the coin. In our case, it was online fraud and scammers. Our first approach was to use existing fraud prevention systems, but as our business is not pure e-commerce and fraud was indirect, there was no solution that matched our needs, so we started developing our system from scratch. This is where I exactly understood how ProcessWire and the community really hooked me. (-:

First of all, taking ProcessWire as an example, we decided not to heavily rely on frameworks. It was a hard decision, because new school engineers like to bring as many dependencies as possible, but I continuously pointed to ProcessWire, and as a result, we created a fraud prevention/user behaviour analytics platform with ~4 PHP dependencies. The second decision that we took, looking at ProcessWire, was even harder than the first. The fraud prevention market, in contrast with CRM, is not widely targeted for open source software, but taking ProcessWire as an example, we decided to open source our system after ~8,000 engineer-hours under the AGPL license.

For sure, after being open-sourced for one week, it's premature to give any feedback, and it is highly possible that open sourcing was a mistake. However, it brings me to the understanding that the real measure of software is not downloads or stars, but its influence over other developers, and from them onto other developers, like ripples on the water. From this perspective, I am infinitely grateful to @ryan, @Ivan Gretsky, @Soma, and every person behind the ProcessWire community for all the inspiration through these years. I'm so grateful that 11 years ago I met this community and had the chance to work with some of you.

As I'm more reader than writer, I would like to use this rare opportunity to wish the ProcessWire community and your families a Merry Christmas and all the best in the New Year!

Best
Alex

P.S. While this post is not intended to be an advertisement, if someone from community is facing challenges related to online fraud, user spam, or security, please feel free to contact me directly.

  • Like 15
Link to comment
Share on other sites

10 hours ago, Alexander said:

While this post is not intended to be an advertisement, if someone from community is facing challenges related to online fraud, user spam, or security, please feel free to contact me directly.

Thanks for an interesting perspective and for the commendation @Alexander! As you already mentioned your new open source thing, expand on it for everybody. We are in the Pub anyway))

  • Like 2
Link to comment
Share on other sites

Thanks, @Ivan Gretsky. I wasn't sure whether the community guidelines allowed sharing links.

There's a publicly available online demo for anyone who doesn't want to mess with the codebase themselves.
Online demo: https://play.tirreno.com/ (Login: admin/tirreno)

You can find Tirreno's source code on GitHub. It needs PHP 8 and PostgreSQL and should normally work after a short installation, which was also inspired by ProcessWire.
Source code: https://github.com/tirrenotechnologies/tirreno/

By the way, if you see the Frogger game, something didn't go quite right!
Game: https://play.tirreno.com/game/

Enjoy!

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

We had a chat a bit with @Ivan Gretsky and understood that probably I need to complete our story with more details.

Unlike common images of start-ups, this is not fun at all. As mentioned, we developed this system bootstrapped for 1,000 days with a remote team of 11 (4 female, 7 male) from Ukraine, Georgia, Netherlands, Germany, Switzerland, Poland, and Thailand. My second son was born during this period, and I was literally working on this with a baby in one hand and a laptop in the other. We lost connection with our lead developer, as he was in Kharkiv (Ukraine). We haven’t had a connection with him since July, but I sincerely hope he is safe…

If someone had told me that it would take 1,000 days (I had planned for three times less) and several thousand engineer hours, I probably would have never started this development, as it looked so unreal. It took approximately half the time to develop the system itself and another half to debug it to the condition it has now. Of course, during this development, we had to rewrite everything from nearly scratch several times, and it still doesn’t look perfect, but at some point, we understood that it is impossible to develop the code on our own and we need to share it with the community.

The code release itself was quite a journey. Especially the last weeks, days, and, most difficult of all, the last hours. Arina (our junior lead developer) and me spent all day in a smoke-filled bar in Belgrade polishing the last version prior to release. And, of course, at the very last moment, we found a very unusual error that was extremely difficult to debug at 1AM. And at 6AM, I had to rush to the airport. There was a 37.5cl bottle of champagne for the three of us: myself, Arina and our director (photo attached), and despite popular images of startups, there was no party at all, only a pretty intensive and really hard time prior to release.

So my advise for everyone whom working on large code base are following:

- multiply every realistic time estimation for three;
- have always backup for lead developer;
- be ready to release the code better soon than later, as it will never be accomplished.

I write this here now because I wish to learn this before starting this journey. Of-course I expect that there another bunch of rakes around that only waiting for it’s time

P.S. If someone could share simple user tracking event module for ProcessWire that we can adopt for use with tirreno, it would be highly appreciated. I was not aware how stars are important for GitHub ranking, so would like kindly ask to put one if you see this software helpful: https://github.com/TirrenoTechnologies/tirreno

IMG_5450.jpeg

  • Like 4
Link to comment
Share on other sites

  • Alexander changed the title to The real catch of ProcessWire: 11 years later (updated)
23 hours ago, Alexander said:

If someone could share simple user tracking event module for ProcessWire that we can adopt for use with tirreno, it would be highly appreciated.

The only one that comes to my mind is User Activity of ProDevTools suite. This is of course a Pro module, but it is the only one of the kind that I have worked with.

I hope I understood right what you have been asking about)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...