Weeknotes vol. 6: Web and hybrid and native, oh my!

By Garrett,

(It’s Tuesday but I’m pretending it’s last Friday.)

I’ve gone back and forth on Native v.s. Web v.s. Hybrid v.s. Native v.s. ∞ quite a bit. There are pros and cons to all of the options, but, for the initial launch, I have officially landed on the following:

  • Web app (Rails, baby!)
  • iOS (Hotwire Native)
  • macOS (A hybrid Swift app generating a web view)
  • watchOS (Native, primarily for the voice to text)

(ducks from the lettuce, etc. that Chris is going to throw.)

This way, deploying updates is as easy as git push origin master (the cheeseburger of computers) and we’ll have minimal App Store risk. What this does mean is that we need an API for watchOS, which I took care of during the early part of last (this?) week. Though it’s the core of any modern day digital product, I had little experience creating an API and did run into a few gotchas around authenticating with tokens v.s. web logins and sessions. After wrapping my head around the issue I was able to read, write, delete, etc. from the API and had a very quiet celebration in my mind.

I quickly prototyped the native watchOS app to read, write, delete via the API and get an understanding of how this particular app will look and feel so we can understand our design boundaries. And what a good use of time it was. I quickly learned that the simple app I had in my head needed to be about 10x simpler to decrease the clicks it takes from open to posted due to the required native voice to text screens and interactions. I also learned how easy it is to get that sexy swipe to delete on the listing view.

Design for the Web/Mac app is underway and is really starting to look like something. This next week will be spent excitedly getting the working app in line with this week’s design progress and answering Matt’s questions on GitHub so we can finally toggle this codebase’s invincibility mode to the on position.

More insights:

  • The trust problem that you already solved

    Every developer who has spent time with AI coding tools carries the same low-grade anxiety. You ask the model to build something, it hands you back a file, and then you stare at it like a customs inspector wondering whether the suitcase has a false bottom. Line by line, function…

  • The flatness of the machine

    You can feel it before you can name it. A paragraph arrives, fluent and frictionless, and something in the back of your reading brain flinches. The sentences are grammatically flawless, the structure orderly, the tone warm but not too warm, authoritative but not too authoritativ…

  • Software was never meant to last forever

    There is a particular kind of frustration that anyone who has worked inside a mid-sized organisation will recognise. You are eighteen months into a Salesforce implementation. The original scope was clean and reasonable. But somewhere around month four, somebody realised that you…

  • The vibe coding spectrum: from weekend hacks to the dark factory

    A year ago, Andrej Karpathy posted a tweet that would come to define how an entire industry talks about itself. “There’s a new kind of coding I call ‘vibe coding,’” he wrote, “where you fully give in to the vibes, embrace exponentials, and forget that the code even exists.” He d…

  • Claude Opus 4.6 just shipped agent teams. But can you trust them?

    Anthropic shipped Claude Opus 4.6 this week. The headline features are strong: a 1M token context window (a first for Opus models), 128K output tokens, adaptive thinking that adjusts reasoning depth to the task, and top-of-the-table benchmark scores across coding, finance, and l…

All blog posts

Book a call

Have a challenge in mind or just want to connect? Schedule a call with Garrett, or reach out via email or LinkedIn.

A playful, hand-drawn illustration of a group of characters holding up scorecards with the number ‘11’. They sit behind a table scattered with various other numbers.