Kev Quirk

Building a PenPal System

30 Nov 2023 | ~3 minute read

Since deciding to start the whole PenPal thing, I wanted a way of managing those posts from within my CMS. This is how I did it...

When I first started emailing Jarrod Blundy, I threw together a custom post type for these PenPal posts, but it was clunky and awkward. Since I intend to carry this project on for at least a couple years, producing the posts needs to be really simple.

With that in mind, I decided to design a better system for managing my PenPals.


I knew it would be relatively simple to put together a system for managing all this, so I jumped in and started coding things up at random. Needless to say, things quickly got confusing, mainly because I was making it up as I went along. So I took step back, had a think, and came up with a plan for how I wanted this thing to work:

Logical diagram of PenPals system
Yes, my handwriting is that bad

Now I had a logical diagram of how I wanted it to work, I explored how I wanted the UI to look when creating PenPal content. Thanks to Kirby Blueprints this is fairly easy to do.

UI diagram for part of the PenPal process
Another example diagram of how I wanted the UI to look

And here's what the final version of those UI diagrams ended up looking like:

Example of the final UI in Kirby
Another example of how the Kirby UI turned out

How it works

After all this work to design and build the PenPal system, I've ended up with a logical process for managing conversations with my PenPals.

I have a page at /penpals, under which I can create sub-pages; one for each PenPal. These sub-pages can have either the upcoming or active templates assigned to them.

From there, Kirby will display and manipulate the data slightly differently. For an upcoming PenPal, the card on the PenPals page is grey, has a small amount of info about that person, and a button that links to their website.

When I'm ready to start emailing a PenPal, I can switch the template to active. The card becomes colourful and the button link updates to the conversation I'm having (or have had) with that person.

At the back-end I can now create sub-pages for that active PenPal where I can dump the emails. There's 1 page per email, and then Kirby stitches them all together at the front-end to display the whole conversation.

Final thoughts

I'm still really enjoying Kirby. The fact I can build fairly complex UIs and systems at the back-end, which displays data differently on the front-end, depending on certain data elements, really makes me happy.

I'm not a developer, but that isn't a hindrance. Sure, it makes things a little more difficult for me, but with a bit of thought (and trial & error) I've been able to build this whole system in a few days.

More importantly than all the geeking out, the vast amount of customisation available to me with Kirby means I'm able to continue to create content with relative ease.

Get in touch!

Receiving emails from my readers is my favourite thing, so if you have something to say, feel free to drop me an email or sign my guestbook.

Want more content?

Say no more, dear reader. Here's three random posts from this blog for you to peruse:

The Casio F-91W Is the Best Smartwatch
26 Sep 2022

The New Mycroft Mark II
12 Jul 2021

100 Days To Offload
25 Apr 2020

← The one before
When Was the Last Time Tech Blew Your Mind?

Up next →
I Contributed to Badger Cruelty

Want to be informed when I post new articles? Simply enter your email address below and you will get an email whenever new posts are published.

Alternatively, you can subscribe via RSS instead.

Enjoyed this post?

I put a lot of work into maintaining this site and I really enjoy interacting with my readers.

My fuel of choice is coffee, so if you did enjoy this post, or found it in any way useful, I'd appreciate more fuel to keep me going. ❤️

Buy me a coffee