# Eli Perkins's Blog

A bunch of ramblings from Eli Perkins.

## Posts

### [Tools I Love: Plannotator](https://blog.eliperkins.com/tools-i-love-plannotator)
*2026-03-18* · 2 min read

Make working with your clanker feel more like collaborating in Google Docs.

### [I don't look at the code](https://blog.eliperkins.com/i-dont-look-at-the-code)
*2026-02-17* · 2 min read

It's not the flex you think it is.

### [Tools I Love: xcrun simctl io booted recordVideo](https://blog.eliperkins.com/tools-i-love-xcrun-simctl-recordVideo)
*2026-01-30* · 2 min read

Record high quality videos of the iOS simulator right from the command line.

### [One Year with Kagi](https://blog.eliperkins.com/one-year-with-kagi)
*2026-01-28* · 5 min read

Restore your mental health with a quality search engine sans AI slop.

### [Gardening](https://blog.eliperkins.com/gardening)
*2026-01-16* · 2 min read

It's not only for your veggies and herbs.

### [Tools I Love: mise (mise-en-place)](https://blog.eliperkins.com/tools-i-love-mise)
*2026-01-15* · 3 min read

Use different versions of different languages and their toolchains with ease.

### [Stackless Stacked Pull Requests](https://blog.eliperkins.com/stackless-stacked-prs)
*2024-10-24* · 6 min read

How I've made my workflow more efficient with `git-pile` and gotten feedback on my work faster and easier.


### [Writing Great Release Notes Doesn't Need to Be Hard](https://blog.eliperkins.com/great-release-notes)
*2024-08-23* · 9 min read

Passing on the opportunity to engage with your customers means giving up on showing your biggest fans that you're putting work into polishing and improving your app.

### [What makes a great contribution to a codebase?](https://blog.eliperkins.com/great-contributions-to-a-codebase)
*2024-06-05* · 9 min read

Guidelines and principles learned in going from two to seven ICs.

### [Migrating from Gatsby to Next.js](https://blog.eliperkins.com/migrating-from-gatsby-to-next)
*2024-05-24* · 3 min read

Sometimes paying off tech debt comes at the cost of a rewrite

### [Validating Relay Queries With This One Weird Trick™](https://blog.eliperkins.com/what-is-relay-validate)
*2019-03-22* · 5 min read

tl;dr: Use `relay --validate` to catch Relay validation errors in CI.


### [SE-0117, API Design, and You](https://blog.eliperkins.com/se0117-has-the-power-to-change-sdk-design)
*2016-07-19* · 4 min read

Use composition over inheritance. Pass values into functions.

### [Mocks in Swift via Protocols](https://blog.eliperkins.com/mocks-in-swift-via-protocols)
*2015-10-01* · 5 min read

How to use protocols to mock types in Swift to test your iOS apps without relying on Objective-C runtime hacks and swizzles.

### [WWDC 2014 Predictions](https://blog.eliperkins.com/wwdc-2014-predictions)
*2014-05-28* · 2 min read

Boy, was I wrong... maybe?

### [Get Off My Lawn](https://blog.eliperkins.com/get-off-my-lawn)
*2014-02-13* · 2 min read

Respect each other's opinions in the iOS community and let's focus on creating cool things with the tools we like.

### [How We Learn](https://blog.eliperkins.com/how-we-learn)
*2014-02-04* · 3 min read

Find success by seeking to learn more, shaping one's own personal opinion, and changing one's mind.

---

- Website: https://eliperkins.com
- Blog: https://blog.eliperkins.com
- RSS: https://blog.eliperkins.com/rss.xml
- GitHub: https://github.com/eliperkins
