Jump to content

Running a ProcessWire shop, best practices


Pierre-Luc
 Share

Recommended Posts

Hey guys! I just got a new position in a startup where I'll be in charge of running most things development-related.

I did a small presentation to the team on ProcessWire, suffice to say they were very impressed by the ability to run anything from small pages to complex sites/semi-applications, dynamic or static using ProCache. They are currently using mainly WP, but I want to move away from this in the future to cut on dev time/costs and maintenance.

I have a few questions, and I hope this will lead to a discussion on best-practices of running a PW shop. I'm used to be a "one man army", so my workflow will need to change.. The questions:

  1. Development: ​What have you found to be the best workflows to deploy and version-control PW sites? I'll probably be implementing Docker to help setup things, but what about staging/production using GIT and deployment?
  2. Migrations: Since PW doesn't have something like ActiveRecord/Eloquent (yet?), how do you manage migrations? I currently have a workflow that's mainly manual, but that won't scale so well considering we have ~ 40 clients, and plan to have ~ 100 within 2 years.
  3. Hiring: Have you found it easy to introduce front- and back-end devs to PW development? I know we'll probably not be finding long-term devs like we can on WP/Joomla/Drupal/Laravel/insert-framework-or-cms-of-choice, so that's something I'm wondering about.

Add your own questions! I'm really looking forward for your ideas and feedback. If possible, provide details on your team size and what kind of sites you do most often.

  • Like 1
Link to comment
Share on other sites

Hey guys! I just got a new position in a startup where I'll be in charge of running most things development-related.

Congratulations!

  1. Development: ​What have you found to be the best workflows to deploy and version-control PW sites? I'll probably be implementing Docker to help setup things, but what about staging/production using GIT and deployment?

We are currently running over 100 pw powered websites / applications. Most of those don't have any kind of version control (other than modules). We have separate dev/staging installation, where development is done and then manually migrated into production site. That works pretty ok, since our clients tend to buy bigger updates instead of lots of little tweaks. Also few shell scripts to create new sites based on profiles, resetting the dev enviroment etc. Very simple setup, and we are currently looking little tweaks into the workflow (adding git and sass into mix for example). I think that we will still keep separate installations and (semi)manual deployment.

 Migrations: Since PW doesn't have something like ActiveRecord/Eloquent (yet?), how do you manage migrations? I currently have a workflow that's mainly manual, but that won't scale so well considering we have ~ 40 clients, and plan to have ~ 100 within 2 years.

What do you mean with migrations in this scene? If migrations from another system, then currently we always build custom migration scripts where needed. 

If data schema migrations when adding new features, then see deployment part of my answer. If something else, we probably do it manually also.

We also have some software that we have build using ProcessWire (one big one coming) - there we have given much more thought on these issues, since we need to have it automated. We have our model installer, that reads YAML files and does templates/fields/pages based on those. That's pretty advanced and currently tied into our product, but might be something we could try to generalize a bit and release at some point.

  1. Hiring: Have you found it easy to introduce front- and back-end devs to PW development? I know we'll probably not be finding long-term devs like we can on WP/Joomla/Drupal/Laravel/insert-framework-or-cms-of-choice, so that's something I'm wondering about.

Well, depends what you are looking for. Front end fellows that have been fighting with Drupal or WP are very happy with ProcessWire. Backend guys who like PHP in general do enjoy PW also. More experienced PHP developers do find the documentation lacking, when you dive deep enough.

All in all, PW is technology that most devs & designers find exciting and I think recruiting people into ProcessWire is "easy" (recruiting is never easy, but with PW you can really focus on the person and his skills, not that if he/she has 3 years of experience with certain legacy tech). Last time I recruited the fellow I ended up hiring did build full pw website on the very same day we had an interview :)

  • Like 9
Link to comment
Share on other sites

What do you mean with migrations in this scene? If migrations from another system, then currently we always build custom migration scripts where needed. 

If data schema migrations when adding new features, then see deployment part of my answer. If something else, we probably do it manually also.

Mostly migration during staging on production websites when the content still continues being edited from the client so you can't just copy the dev folder and overwrite the database (I know there are ways to diff a database, but I'm not that versed into it). Especially, if there are changes to the model (template, field changes) / structure, things can get messy, although it is indeed manageable manually without so much effort… I might be overthinking this one!

Migrating from other systems is pretty straightforward, most of the time a CSV import might be all that's required. :)

Hiring — Well, depends what you are looking for. Front end fellows that have been fighting with Drupal or WP are very happy with ProcessWire. Backend guys who like PHP in general do enjoy PW also. More experienced PHP developers do find the documentation lacking, when you dive deep enough.

All in all, PW is technology that most devs & designers find exciting and I think recruiting people into ProcessWire is "easy" (recruiting is never easy, but with PW you can really focus on the person and his skills, not that if he/she has 3 years of experience with certain legacy tech). Last time I recruited the fellow I ended up hiring did build full pw website on the very same day we had an interview  :)

 

That's nice to hear! You pretty much confirm my thoughts. 

I do agree there are some problems with the documentation on deeper aspects, but it seems there are efforts right now in improving that. I would gladly take part in this effort and will be taking notes as I take the team through the migration.

  • Like 1
Link to comment
Share on other sites

 Share

  • Recently Browsing   0 members

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