On Digital Playgrounds
Building for fun, by solving problems you face
I've always been a bit of a nightmare when it comes to trying to solve problems for myself. I can't help myself, I just end up spending time tinkering to try and speed up my workflow and improve the outcomes of what I'm doing for future me.
Where it becomes a nightmare is when I spend more time on trying to solve the problem than I do actually taking advantage of the solution…
I've always felt that creating stuff for yourself is the best way to learn a new technology or how something works. Tutorials in a lot of ways are great, but you'll retain the info much better and keep coming back to learn more about it, if what you build benefits you personally and solves a real problem you regularly face.
Let's face it, whilst you can learn things from building yet another to-do list app, is that something you really need (he writes, via his home-grown markdown editor he didn’t need to make).
I started tinkering with my personal website (from HTML
and CSS
to Vue
and then React
), then got into hacking around Figma plugins to make designing easier, which then got me into writing SwiftUI apps to improve the rest of my workflows. But I also ultimately want to better understand any technology I’m interested in designing for. I’ve never felt I can design to the best of my ability unless I’m able to understand how the sausage is made.
A designer cannot claim to have truly designed something until they also know how it will be made — Terence Conran, Designer
But more than that, tinkering and building things for myself makes my life easier and keeps me deeply interested in the evolution of design and technology. It keeps me at the forefront of aspects of it and helps to ensure I don’t design for ideas that were 5-years-ago-good.
The biggest thing I’ve found is to be logical, take your time and step up slowly from simple to complex. My first app was just a basic pixel to rem calculator, then it could pass data between views via AppStorage, then I expanded to add other calculators, then adding widgets, and now it stores saved calculations in Core Data so it has persistence between restarts etc.
Recently I’ve been working on a series of micro apps that interface with the Cosmic API (my headless CMS of choice and also a team I work with). These little utilities allow me to extend the power of my CMS into native apps for my phone, iPad and Mac. They fundamentally make my life easier, but, they’re not essential. They’re also not release-worthy. And that’s okay, because they help me solve specific problems I have and allow me to more deeply understand the technology that interacts with the API, and also even better understand the API itself. This means, as the Design Lead, I can better understand what our end customers might also be trying to do with our API and therefore make suggestions and improvements to the API based on roadblocks I faced.
One example of this, was adding in the ability to edit content that was in a ‘draft’ state via the API itself rather than just within the web app. This was because I had blogs in draft on my Cosmic Go app that I wanted to tweak before I published. Helpful for me, but also, I couldn’t have been the only person needing this. I also had the backchannel to fix it and the visibility of the issue thanks to my tinkering.
In terms of those micro-apps; I’ve spent some time building an app that decodes JSON from my Cosmic CMS to show me my bookmarks, blogs, features and some key stats—as well as letting me edit them too! I’ve built a simple media uploader that returns a Cosmic link to your clipboard, an app to write this very blog post in a super simple markdown editor that saves to iCloud using native plaintext files, and even an app powered by GPT-3 to interface with ChatGPT, Codex and DALL-E.
If you use iOS or macOS and are interested in learning, I’d recommend you try SwiftUI, with live previews and a very declarative approach, it often feels like designing in code. It’s also super quick to pick up and build easy things. Check out Paul Hudson’s tutorial series’, they’re amazing and save me ages of hunting around. Also check out this post by Stammy on getting started with SwiftUI as a Designer. Stammy also wrote about building for yourself a couple of years back.
If you want to check out some great examples of people with digital playgrounds, check out Rauno Freiburg for example, to see some neat stuff. Or Julius Koroll for more design-specific playing around. And finally, Adrian Mato has been playing around with building a game recently!