Jump to content

Running a ProcessWire website for 9 years (Werkgymnasium Case Study)


Philipp
 Share

Recommended Posts

TL:DR I've updated a PW page we've built 9 years ago for the first time and it's still a solid experience.

Backstory

Back in May I was on a crowded train somewhere in the middle of Germany. Now working as a "Consultant" who builds slidedecks instead of websites, I happily noticed the men next to me talking about responsive webdesign with his friend. During the obligatory "This train is late" announcement we started to chat.

My seatmate, a geography teacher, recently attended a web workshop at a large Hamburg agency. He told me he now understands the value of a CMS for updating their site and he wonders how to build a responsive layout. They don't get paid for this and work on their homepage in their spare time. And they have a Typo3 installation 😅

Back in 2013, together with my friend Marvin, we've rebuild our school website with ProcessWire optimized for mobile devices. Launched in 2014 this was quite an impressive feat including online time tables, a working event calendar (with import feature) and many small nice touches.

After my encounter on the train, I checked the page and yes, It's still online and updated daily! The next day I wrote my old teacher a short email if we should have a closer look into the underlying tech and within minutes I got a super happy reply that he is so glad that somebody would help (again). 

So let's dive into what we've done.

Situation

First some details about this ProcessWire installation that is updated by a few teacher on a regular basis.

  • Over the 9 years they've wrote nearly 900 news articles and kept more than 250 pages up to date. The asset folder is over 11GB.
  • Build with Processwire 2.4 (?) and lots of janky code we've updated the page once to 3.0.15 somewhere in 2016 quick and dirty. They even used the old admin layout.
  • ProCache, CroppableImages3 and a few other plugins were used. Every single one of them required an update
  • It's used the classical append-template approach with a single big "function.php" included file.
  • It's running on PHP 5.6 and for whatever reason no PHP update was enforced by the hoster (But the admin panel screamed at me)
  • A privacy nightmare: Google fonts embedded directly, no cookie banner and a no longer working Google Analytics tag included
  • The old ProcessDatabaseModule made a database backup every week as planned over all these years. Nice.
  • No hacks, no attacks and all teachers are using their own account with assigned permissions

Changelog

I've updated the page with a focus on making it stable and reliable for the next 9 years. After making a development copy of the page, I've started working on the following changes:

  • Updated ProcessWire and all modules to the latest stable version. After reloading a few times, no errors encountered
  • Updated the whole templates to make it work with PHP 8.2
  • Removed all externally hosted scripts, disabled cookies for all regular visitors and introduced a 2-click-solution for external content
  • Reworked a few frontend style issues around the responsive layout, made slight visual changes for 2023 (e.g. no double black and white 1px borders)
  • Ported the image gallery feature to more templates (Big wish of the people updating the site, they've used a workaround)
  • Cleaned up folder and structures, removed a few smaller plugins and admin helpers no longer needed

All this was done back in May and - with a big break - completed now in October. It took a few days and most of the time was spent figuring out our old code.

Learnings

  • ProcessWire is robust as f*ck. I just clicked "Update" and it mostly worked instantly
  • I nearly removed features for the PHP update. A custom written importer for the proprietary XML schedule was hard to debug and understand (5-dimensional-arrays...). Gladly I've tossed a coin and just gave ChatGPT the php function source and error message and within a single iteration it updated the code for PHP8. 
  • The "responsive" CSS framework aged badly. The used 960gs skeleton uses fixed widths for the responsive layout. I couldn't get it be wider than 320px on mobile screens. So the site is responsive but with a slim profile for now. Replacing it would be a complete layout rewrite

 

Result and looking forward

The Werkgymnasium site is now updated and live again. It still loads superfast and looks great after all these years. We have a few more features planned to help our editors input new content but overall it just works.

Looking forward a few issues remain. ProCache would require the paid update but it still works fine. The layout needs improvement on mobile screens. There is still an error with the pagination.

We'll cleanup the code more and then make the whole template public on Github so that maybe a few students after us can continue with the updates. Maybe even rebuild the frontend one day. I hope I can give you an update in a few years again.

 

As a closing note: I'm still grateful for the amazing community here and all the features ProcessWire has to offer. My daily work no longer resolves around websites but PW has a permanent spot in my heart. Thanks Ryan and all the contributors.

 

 

  • Like 33
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

  • Recently Browsing   0 members

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