Uses

Tools, setup, and workflow.

The hardware, software, and small workflow decisions I rely on to build, write, design, explore, and stay organised.

Michael’s desk setup

Main machine

2023 Apple iMac

The desk machine. Quiet, simple, and comfortable for longer sessions.

Portable machine

2024 MacBook Pro

The same environment in a smaller form when I want to work away from the desk.

Workflow

Dotfiles-led

My shell, Git defaults, and terminal tools are managed through a small public dotfiles setup.

Hardware

I prefer a setup that gets out of the way: Apple hardware, a clean desk, and input devices that feel familiar.

Main device

2023 Apple iMac

Apple M3 chip · 16GB unified memory · 1TB SSD · 24″ 4.5K Retina display.

Support device

2024 MacBook Pro

Apple M4 chip · 16GB unified memory · 512GB SSD · 14.2″ Liquid Retina XDR display.

Input

Magic Mouse, Magic Trackpad, and Magic Keyboard

I use both the Apple Mouse and Trackpad, but the Mouse is still the one I reach for most.

Audio

AirPods Pro and Blue Yeti

AirPods for everyday listening, and a Blue Yeti when I need a clearer microphone.

Development

My development setup leans towards tools that are fast, predictable, and pleasant to spend time in. I like software that feels powerful without constantly demanding attention.

Most web work starts in Emacs, Apple-platform experiments happen in Xcode, and GitLab acts as the long-term record of what I have built, changed, and abandoned.

Core tools

Emacs

Code & text

Xcode

Swift & SwiftUI

GitLab

Source & project history

Terminal

A calm shell matters more than a clever one.

A lot of my workflow lives in the terminal, but I try to keep it readable rather than overloaded. The setup is designed to be useful every day: quick navigation, visible Git state, good defaults, and tools that degrade gracefully.

Read the dotfiles case study
zshStarshipHomebrewfzfzoxideezaripgrepfdbat

dot
gs
ll
cdf
gacp "Improve uses page rhythm"

Languages & frameworks

The technologies I reach for most often when building modern interfaces, websites, and Apple-platform apps.

TypeScriptAstroReactNext.jsSwiftSwiftUITailwind CSSFramer Motion

Deployment & workflow

I like a simple path from idea to production, with enough automation to help without making the process feel hidden.

Idea

Sketch the shape of the thing.

GitLab

Commit the work and keep history visible.

CI/CD

Let automation catch the obvious things.

Vercel

Preview, ship, and iterate quickly.

Everyday tools

The smaller tools and services that support development, writing, communication, testing, and general organisation.

Apple NotesSafariApple TerminalDiscordBlueskyGitLabLinkedIn

Photography & personal tools

Not everything here is purely about development. Photography, music, and exploration all shape how I think about interfaces and detail.

PhotographyUrban explorationPianoApple PhotosWhisky notes

At home

Search site

HomeReturn to homepageWorkProjects, research and digital archaeologyPhotographyUrban exploration and photographyToolsUseful browser-based utilitiesAboutAbout me, current interests and my setupContactGet in touchNowAbout · Current projects and interestsUsesAbout · Hardware, software and workflowPortalAccount, applications and connected services (opens in a new tab)Report a bugReport and follow issues in apps and websites (opens in a new tab)Request a featureSuggest and follow ideas for apps and websites (opens in a new tab)Breadcrumb Path BuilderWeb tool · Generate clean breadcrumb navigation with Markdown, HTML, and JSON-LD structured data output.Case ConverterText tool · Convert text between lowercase, uppercase, title case, sentence case, kebab-case, snake_case, camelCase, PascalCase, and CONSTANT_CASE.Colour ConverterDesign tool · Convert colours between HEX, RGB, HSL, and OKLCH with live previews and copy buttons.Duplicate Line RemoverText tool · Remove repeated lines from copied text, exports, usernames, logs, tags, and messy lists.HTML Entity Encoder / DecoderWeb tool · Encode and decode HTML entities locally in your browser.JSON FormatterDeveloper tool · Format, validate, minify, and sort JSON with a clean local-only editor.List AlphabetiserText tool · Sort lists alphabetically, reverse them, remove duplicates, trim whitespace, and clean up empty lines.Markdown PreviewerDocumentation tool · Write Markdown and preview the rendered output locally in your browser.Secret GeneratorSecurity tool · Generate passphrases, passwords, PINs, recovery codes, and other local-only secrets in your browser.Slug GeneratorText tool · Turn titles and phrases into clean URL-friendly slugs for pages, posts, and filenames.Text Diff CheckerText tool · Compare two pieces of text and highlight added, removed, and unchanged lines.Timestamp FormatterDate & Time tool · Convert Unix timestamps, ISO dates, local times, UTC times, and Discord timestamp formats.Tree GeneratorDocumentation tool · Turn indented notes into clean directory trees for documentation, READMEs, and project pages.URL Encoder / DecoderWeb tool · Encode and decode URLs, query strings, and text locally in your browser.Word CounterText tool · Count words, characters, sentences, paragraphs, and estimated reading time from plain text.ABP BathgatePhotography albumAirth CastlePhotography albumBalrossie OrphanagePhotography albumBangour Village HospitalPhotography albumBirkhill Fireclay MinePhotography albumCalachem GrangemouthPhotography albumCallendar SquarePhotography albumCastlebridge CollieryPhotography albumCummins Diesel Engine FactoryPhotography albumDTM AutosPhotography albumDunfermline CottagePhotography albumDunmore PineapplePhotography albumEDS Print FacilityPhotography albumForth Valley CollegePhotography albumGlendevon DungeonsPhotography albumGray Dunn AND CO Biscuit FactoryPhotography albumHartwood HospitalPhotography albumHeathhall CAR FactoryPhotography albumKilbagie Paper MillPhotography albumLathallan HousePhotography albumLongannet Generating StationPhotography albumNorth Queensferry GUN BatteryPhotography albumPennine TowerPhotography albumPirniehall Residential SchoolPhotography albumPort EdgarPhotography albumPrudential CraigforthPhotography albumST Peters SeminaryPhotography albumStirling Royal InfirmaryPhotography albumStobhill HospitalPhotography albumStrathmartine HospitalPhotography albumTHE Leisure BowlPhotography albumViewforth High SchoolPhotography albumRaiderGames and exploration (opens in a new tab)LumenAn independent desktop OS (opens in a new tab)Lighthouse RadioApps for Apple and AndroidBlogFirst posts coming soon (opens in a new tab)GitLabView source repositories (opens in a new tab)BlueskySocial profile (opens in a new tab)

Use the arrow keys to browse, Enter to open, or Escape to close.