This past weekend, February 23rd through 25th, I participated in the 13th Givecamp Memphis. It was my seventh, I think… There were a lot of new faces, a new venue (thanks Orion Credit Union for letting us use your headquarters), a couple of new non-profits. It was really nice to see so much fresh involvement.

Some of the team working with Community Alliance for the Homeless at Givecamp Memphis 2024

I worked with Community Alliance for the Homeless to make their list of resources searchable and improve the mobile user experience on their site. It was a fun challenge for the weekend. Their Wordpress site uses a page builder, Spectra, that didn’t seem too fiddly and even gave you access to the underlying HTML sometimes. I found it way more enjoyable to work with than Divi. Divi might be fine if you have the time to learn it, but I work on Wordpress three days a year at best. I’m tired of fighting with no code tooling on those three days. CAFTH had an existing click through decision tree to access resources that were hardcoded on a page. They wanted those resources to be filterable or searchable. Thankfully, another volunteer working on the same project, Kim Ward, had worked with a plugin called Advanced Custom Fields. Using ACF we created a custom post type for the resources and set up custom fields for all their data. Would this have been easier with a regular old database? Maybe. Do we work with we what have at Givecamp? 100%.

We had the non-profit representatives go through the resources and tag them appropriately in a spreadsheet. I thought I’d be able to bulk import them as a JSON blob, but the data wasn’t clean enough and the spreadsheet was pretty short so I just copypasta’d the data into the new post types. For a while, I thought I was going to have to write PHP, which I’ve never written before, to grab the form data without submitting the form and filter/search the resources. This was totally doable, but I wasn’t very confident in it because of my lack of experience with PHP and lack of understanding about how code gets run in Wordpress. Late in the weekend I learned that functions written in a Wordpress theme’s functions.php are global and can be called in any other php files you create on the site. So that’s cool. Maybe I’ll remember that next year! Kim came to rescue once again after we figured out that we could include a script tag with some Javascript in functions.php. Since she was quite a bit more experienced than I am with Javascript, she wrote up an excellent function that prevents the default behavior of the form, queries all the resources from the REST API (there weren’t many so it was very performant), and filters and searches the resources based on the form values.

I really enjoyed Givecamp this year, but I hope there are some changes next year. Primarily, I’m not sure Wordpress is the best solution for all non-profits, but that has been Givecamp Memphis’ go to tech the whole time I’ve been involved. Sometimes it makes a lot of sense, like when a non-profit already has an established Wordpress based site. I think it also made more sense several years ago when we had more people invovled that worked in Wordpress year round, but most of those people have moved on. Some other potential solutions that I think could be appropriate are Django + Wagtail or even a static site generator. A lot of these non-profits are already using third party solutions to run merch stores or take donations and most of them aren’t editing their site constantly. I think using more dev friendly tools instead of a lot of low or no code solutions would allow us to do more for these non-profits with less time. Regardless, I look forward to Givecamp 2025.