Blog

Building an Interactive Markdown Textarea June 29, 2024 – Re-creating some of the features of the GitHub markdown editor, especially image pasting and file dropping. Creating Awesome Embeddable Scripts June 23, 2024 – I was looking at a video about the new version of Apple's MapKit JS, their web maps library, and they showed how to initialise the SDK by loading the... Switching My Blog to Zola June 8, 2024 – Switching from Next.js on Vercel to a much simpler site generated using Zola. Building Composable React Components May 26, 2024 – Imagine you're building a component. You might add some props to control the appearance, like variant or size. You end up with a component… Writing JSDoc for React Components May 22, 2024 – I'm starting to get into the habit of consistently writing JSDoc comments for our front-end components, which helps with explaining usage… Tags - From UX to Implementation May 20, 2024 – Recently, I've become a really massive fan of tags and attributes as ways of allowing users on the platforms I build to structure data. Upgrading Your AWS Lambdas to Node 20 February 19, 2024 – The Node 16 runtime on Lambda will be deprecated in June. Launching Flexible Feed December 20, 2023 – I released my first Shopify app a few years ago. It’s called Flexible Fulfillment, and it helps store owners distribute orders to… Going back to Obsidian December 2, 2023 – Back in 2020 and 2021, I was a heavy user of personal knowledge management (PKMS) tools. Initially Roam Research, where I built up a graph… Advent of Code 2023 December 2, 2023 – Trying some new tool combinations this year with Jupyter Notebooks and Node.js. Comparing Cypress and Playwright October 22, 2023 – Cypress and Playwright are both end-to-end testing frameworks, usually used to simulate user behaviour in front-end applications. Hybrid Encryption in Node.js October 21, 2023 – I recently learned how to implement what is called hybrid encryption in Node.js. Finding a Direct Link to a Google Business Profile October 6, 2023 – The other day, I was trying to find a way to link directly to a business listing in Google. There’s a lot of information available about… Learning Some Vim September 3, 2023 – I finally decided to start learning some of the basics of vim, something that always seemed elusive to my focus. Building a RSS Customizer Tool September 1, 2023 – Vercel makes buying domains and deploying apps way too simple, which is how I end up building things like **feedfixer.xyz** as soon as the idea enters my brain. Communicate, Navigate, Aviate August 10, 2023 – Pilots learn a thing very early on in their training. It’s the phrase “aviate, navigate, communicate”. It teaches them to focus first on… Improving Content Quality by Using EXIF Image Data July 23, 2023 – Last week, we implemented some functionality in Street Art Cities where we’re reading the EXIF metadata from JPEG files uploaded to the… Digital Archival with RClone July 16, 2023 – I got a notification the other day that my Dropbox storage was full. Weird, because I haven’t used my Dropbox account in about 5 years, but… Moving to Visual Studio Code July 1, 2023 – Replacing my trusty workhorse PhpStorm, which I've been using for about a decade now. Changing my Relationship with Email July 1, 2023 – In the last year, I’ve switched from a partnerships-related role to a role that solely involves engineering leadership. Together with that,… Some Ideas from Get Together June 30, 2023 – I've recently been reading the book Get Together. It's all about building communities around a hobby, habit or a product. Exploring Folksonomies June 26, 2023 – I've been getting very obsessed with tagging systems around the internet in the last couple of weeks. It all started with me thinking about a new tagging system for artworks on Street Art Cities, and... Moving over Street Art Cities to PMtiles and MapLibreGL June 8, 2023 – Street Art Cities is basically one big map. Well, lot’s of individual maps. The power of `.toString()` June 2, 2023 – Using `.toString` on functions in JavaScript is a powerful way to create reflection-like behaviours. What Good Looks Like May 21, 2023 – When I think of a successful company, I imagine a team of about 10 to 20 people who earn good wages, love working together and do work… Processing Incoming Email with AWS SES May 9, 2023 – AWS Simple Email Service is a service I've never been that big of a fan of, because it feels like a bit of a black box. Things have… Building Social Features Using DynamoDB and Lambda April 8, 2023 – How we built a personalised feeds service and following using serverless on AWS. Returning to slower social media February 6, 2023 – No more algorithmically generated feeds with something new every time you refresh, no companies fighting for your attention. Creating a Production-Ready Public API Using Serverless January 1, 2023 – How to build an API using Lambda and API Gateway for use by external developers. Memories: The Relative Score December 28, 2022 – Lessons learned as a 16-year old entrepreneur about how simple product features can have a big impact. The Craft October 3, 2020 – There’s something unique about creating something from scratch, with nothing but your own vision of what it should be like, with no… Digital gardens July 24, 2020 – Something that I recently came across is the concept of a digital garden. It's not a new concept, although this terminology for it seems to…