Zach Waugh Profile Banner
Zach Waugh Profile
Zach Waugh

@zachwaugh

Followers
4,386
Following
596
Media
753
Statuses
9,386

Staff Swift Engineer @GoRewatch . Working on on the side. Previously: iOS @basecamp / @37signals ; Mastodon:

Baltimore, MD
Joined May 2008
Don't wanna be here? Send us removal request.
Explore trending content on Musk Viewer
Pinned Tweet
@zachwaugh
Zach Waugh
16 days
I’ve been working on a new app for macOS and iOS called Artifacts, which is an image + link organizer. A completely native, local first way to save all that stuff you find across the web.
Tweet media one
103
57
2K
@zachwaugh
Zach Waugh
5 years
JavaScript: “function” Swift: “func” Kotlin: “fun” Rust: “fn” If you’re writing a new programming language, you know what you have to do
389
2K
8K
@zachwaugh
Zach Waugh
3 years
After 7 years, today is my last day at Basecamp. I plan on taking a little time off, but if anyone is looking for an iOS engineer, I would love to chat, my DMs are open.
158
585
6K
@zachwaugh
Zach Waugh
2 years
I just discovered you can hit / in any macOS save dialog to open a Spotlight-esque quick folder search and even use things like ~ to jump to your home folder. No clue when that was added, but a handy shortcut instead of manually navigating a deep folder hierarchy
51
561
3K
@zachwaugh
Zach Waugh
4 years
Nice try Zoom, but not today!
Tweet media one
21
205
823
@zachwaugh
Zach Waugh
4 years
😂
Tweet media one
15
36
724
@zachwaugh
Zach Waugh
3 years
I’m a straight white man in a tech job, it doesn’t get much more privileged than that. It would be so easy for me to ignore things that don’t affect me. But I don’t want things to be easy, I want things to be better.
6
57
626
@zachwaugh
Zach Waugh
3 years
Setting up my new computer and noticed Notion is now approaching 500 MB. What could take up that much space? Electron of course, weighing in at ~200 MB, but then ~282 MB for node_modules! Almost half of which is a single module.
Tweet media one
25
39
400
@zachwaugh
Zach Waugh
3 years
Today’s project: started building a native iOS client for @linear
Tweet media one
16
3
301
@zachwaugh
Zach Waugh
8 years
Wanted a theme based on the WWDC16 colors, and looks like Xcode 8 has a new theme named Civic that is exactly that
Tweet media one
11
136
298
@zachwaugh
Zach Waugh
2 years
Me getting ready for 2020 vs me getting ready for 2022
Tweet media one
1
47
292
@zachwaugh
Zach Waugh
3 years
And I’ve learned so much and have become better from my co-workers at Basecamp that have pushed for more diversity, more equity, more inclusion, who have openly shared their lives and experiences. Like many others, I’m sad at the changes announced today.
5
12
299
@zachwaugh
Zach Waugh
7 years
The default movie rental time should be at least 48 hours. Unless you have kids, then you get an additional 12 weeks.
9
71
258
@zachwaugh
Zach Waugh
3 years
I’m totally blown away by all the support, going to take me a while to get back to everyone, but thank you all!
2
1
151
@zachwaugh
Zach Waugh
7 years
📝 Wrote a bit about the hybrid architecture we use for Basecamp 3 on iOS since I’ve had some people ask for details
2
34
141
@zachwaugh
Zach Waugh
5 years
Returning to work today after a full 6 weeks of paternity leave. Thanks to @jasonfried and @dhh for the generous parental leave policy @basecamp ! I can’t imagine not having that time, and the sad thing is every single person I talked to was shocked that I got that much leave
7
3
124
@zachwaugh
Zach Waugh
9 years
Reading the GIF spec (as you do), and noticed this bit about animation. ~25 years later, only used for animation now
Tweet media one
8
78
109
@zachwaugh
Zach Waugh
6 years
This may be sacrilegious coming from an iOS dev, but if your app is not your primary business (i.e - Instagram, Snapchat), just use completely stock UI and interactions. If you’re a bank, don’t try to get fancy.
3
18
106
@zachwaugh
Zach Waugh
3 years
I don’t generally bash on Electron, or worry too much about disk space, but the whole ecosystem just feels like a lack of consideration for your users. I bet a substantial portion of that could be stripped out of the release build.
3
1
99
@zachwaugh
Zach Waugh
4 years
Can confirm, this was absolutely not planned in any way. You might say "Basecamp is dumb, they should have known the rules". Well, we *thought* we did know the rules based on a decade of prior app approvals and updates...
@benthompson
Ben Thompson
4 years
I don’t particularly like many of @dhh ’s tweets either but you’re nuts if you think Basecamp is deliberately putting a multi-million investment at risk just so they can get free publicity. No one saw this block coming given what seemed to be settled law in the App Store.
29
44
903
2
6
81
@zachwaugh
Zach Waugh
3 years
✨ Today is my first day @GoRewatch ! Really excited to join the team and build the iOS app
9
0
81
@zachwaugh
Zach Waugh
2 years
The 30% gets so much focus, but this is the real problem with the App Store. Until Apple allows alternate means of distribution, they shouldn’t reject any apps except for malware/scams. Who cares if only 10 people find it useful, or it’s the 100th entry in a crowded category?
@Stammy
Stammy
2 years
Want to learn iOS dev & build your first, simple app? Don't. Apple will just call it spam. App Store called @StocketaApp spam (was going through testflight review) App Store should let you talk to them before you spend a year+ building an app for fun lol im so annoyed
Tweet media one
64
46
419
7
15
79
@zachwaugh
Zach Waugh
5 years
One unsung advantage of using software from small shops the ability to affect change. I have 0 confidence that I could get an idea through to Apple for , but I know I can not only contact @BearNotesApp , but also get a response from a human.
3
17
67
@zachwaugh
Zach Waugh
2 years
Xcode tip: if you ever need to manually add an init method to a struct such as when you’re extracting to a separate module, Code Actions (right-click Show Code Actions or cmd+click) > Generate Memberwise Initializer is your friend
1
15
60
@zachwaugh
Zach Waugh
2 months
Ok, let's hope for Xcode 16 then
Tweet media one
@zachwaugh
Zach Waugh
1 year
Alright, well this will surely start working reliably in Xcode 15 then
Tweet media one
2
0
13
5
6
59
@zachwaugh
Zach Waugh
4 years
Apple says “Pro” 86 times in this press release for the new iPad Pro, charges $300 for the new magic keyboard (almost half the cost of a Mac Mini), and yet I still can’t run Xcode or other dev tools I need on it
Tweet media one
13
13
55
@zachwaugh
Zach Waugh
3 years
A really nice touch in Xcode 13 is it seems to be intelligently autocompleting types based on what you name your variables and some other context. The first suggestion has been exactly what I want.
1
16
56
@zachwaugh
Zach Waugh
11 years
Does the Xcode team get some sort of bonus if they get you to enable snapshots?
4
51
54
@zachwaugh
Zach Waugh
4 years
But even so, we made sure to submit HEY and get it approved before public launch just to be safe since app review is never guaranteed. And they approved it. We could have delayed launch and made a different plan if we got the hard rejection for 1.0.
0
6
49
@zachwaugh
Zach Waugh
4 years
Our update was approved, so HEY can now be set as the default mail app in iOS 14! 🎉💌
Tweet media one
1
2
51
@zachwaugh
Zach Waugh
7 years
I guarantee if Apple hosted their sample code on GitHub someone would open a PR to fix the issues for new versions
2
9
46
@zachwaugh
Zach Waugh
6 years
One thing people miss in the Electron debate is that the alternative to an Electron app isn’t fully native apps on each platform. The alternative is the app not existing at all.
5
8
45
@zachwaugh
Zach Waugh
3 years
Making a portfolio for the first time in my life, and a suggestion for anyone earlier in their career: record and take screenshots of what you’re working on while you do it. Because later you won’t remember the what and when, and the app will probably be long gone.
3
4
44
@zachwaugh
Zach Waugh
3 years
📢 I just released Whirl, a new super simple sketching app for iOS: . It’s free and you can get it from the App Store now
8
6
42
@zachwaugh
Zach Waugh
4 years
A note on this before people ask: we don't have any links to sign up, any links to billing, any links to anything resembling payment in the app, nothing sneaky. You just need an existing account to use the app, that's it.
Tweet media one
@dhh
DHH
4 years
Wow. I'm literally stunned. Apple just doubled down on their rejection of HEY's ability to provide bug fixes and new features, unless we submit to their outrageous demand of 15-30% of our revenue. Even worse: We're told that unless we comply, they'll REMOVE THE APP.
938
4K
13K
7
8
41
@zachwaugh
Zach Waugh
6 years
📢 I’m working on a new app. It’s called ✨ Speck and it’s a web playground for iOS. Here’s a little demo of the current version. If that sounds like something you’d be interested in, let me know, I’ll be looking for testers soon!
9
5
40
@zachwaugh
Zach Waugh
7 years
Protip: if you can’t figure the right name for a font to use in code/config, check Font Book’s info. PostScript name was needed in this case
Tweet media one
0
12
40
@zachwaugh
Zach Waugh
3 years
@tenderlove Thanks! Glad to see the memory of Flint lives on
2
0
41
@zachwaugh
Zach Waugh
2 years
I love the keyboard functionality in this date picker where you can hit up/down arrow to easily get to the most common years like 0001 and 275760 instead of something useless like the next year
1
3
40
@zachwaugh
Zach Waugh
7 years
Nothing has re-affirmed my desire for minimalism like helping an aging relative clear out 50 years of shit from their house they never use.
1
2
38
@zachwaugh
Zach Waugh
4 years
My hobby the last year has been learning woodworking. I love software, but nothing quite like building a real thing with your hands. Most recent project, a custom entry table
Tweet media one
7
0
36
@zachwaugh
Zach Waugh
3 years
A lot of the attention has been on SwiftUI the last few years, but in the same time I’ve gotten the most value out of all the improvements to UICollectionView. Diffable data sources, compositional layout, cell registrations/configuration, etc. Never felt more productive in UIKit.
1
5
37
@zachwaugh
Zach Waugh
11 years
When you’re done with your Tesla, simply light it on fire and someone will come bring you a new one.
3
31
36
@zachwaugh
Zach Waugh
11 months
I’ve always wished a browser could let me know the path I took to get to a certain page since I often command+click to open links in a new tab and don’t remember how I got there. Feels like something @arcinternet by @browsercompany could implement really well. A rough mock up:
Tweet media one
5
0
33
@zachwaugh
Zach Waugh
3 years
Using CloudKit for the first time on my side project, and it’s actually really nice. App is local-first, persisted to SQLite using GRDB, and then using CloudKit to sync between devices. Almost done with a first pass on syncing, here using the CloudKit console to test
2
2
34
@zachwaugh
Zach Waugh
4 years
When this is all done, we better not see Ivanka on Fallon chumming it up. I never want to hear from another member of the Trump family or administration for the rest of my life.
0
2
31
@zachwaugh
Zach Waugh
3 years
I react to my toddler holding an uncapped marker like I do someone holding a knife. Hands up, slow movements, soft voices. “Let’s all just take it easy, you don’t want to do this.”
2
0
30
@zachwaugh
Zach Waugh
7 years
I never understood as a kid how adults liked to sit with coffee and a paper in the morning. Now it’s literally my favorite part of the day.
0
2
30
@zachwaugh
Zach Waugh
8 years
I’m ashamed to admit in all my years of using OS X, I never knew the exact reason for the ellipsis in menu items
Tweet media one
1
10
30
@zachwaugh
Zach Waugh
16 days
Someone asked about this, so will show a bit more of the UI. This is the detail screen, I automatically pull in metadata from the link to populate the description and then you can edit that as well as adding your own notes/tags.
Tweet media one
4
0
29
@zachwaugh
Zach Waugh
16 days
Something I’ve been debating, do I need Collections/Folders as well as Tags? They might be technically the same under-the-hood, but conceptually they serve different purposes, so I’m thinking yes. Was going to wait to see though if people actually requested it.
12
0
28
@zachwaugh
Zach Waugh
4 years
Confirmed in iOS 14 GM, default mail apps still don’t work in Safari if you click a mailto link. Cool, guess no one is testing this thing but us.
5
6
26
@zachwaugh
Zach Waugh
3 years
In general, I’d think I’d rather have a manual solution that is 100% reliable over an automatic solution that is 95% reliable.
1
1
27
@zachwaugh
Zach Waugh
3 years
Just shipped in Whirl support for dragging and dropping colors from other apps anywhere onto the canvas to set the ink color. @stroughtonsmith ’s Pastel app is perfect for this
0
1
28
@zachwaugh
Zach Waugh
12 years
“If I asked my customers what they want, they would have said I’m not interested in taking your survey, please stop calling.” - Henry Ford
3
32
27
@zachwaugh
Zach Waugh
7 years
Thinking about starting a blog where I take apart children’s toys and show how to disable the sound, or reduce to a non-deafening volume.
3
0
27
@zachwaugh
Zach Waugh
7 years
Me: "I can't get this song out of my head" Friend: "What song?" Me: *quietly singing Doc McStuffins theme song* "Um, Enter Sandman"
3
4
27
@zachwaugh
Zach Waugh
6 years
My almost 4 year-old son has started making up jokes but doesn’t understand punchlines, he thinks you just ask a question and give an answer. For example: Why did the cheetah run away from the zoo? Because he missed his family. They’re just kind of depressing.
0
3
26
@zachwaugh
Zach Waugh
4 years
I’m in my office trying to be quiet because my 5 year-old is on a Zoom call with his Kindergarten class. These are strange days
0
4
26
@zachwaugh
Zach Waugh
3 years
I’m working on a side project similar to Bear/Dropbox Paper/Notion/Craft where you can have a document with text/todos/lists/images all together. I’m curious how you would implement this on iOS?
5
0
25
@zachwaugh
Zach Waugh
7 years
[Modern Seinfeld] Everyone gets their identity stolen except George, who gets upset: “What’s wrong with me? Why am I not hack-worthy?”
0
3
26
@zachwaugh
Zach Waugh
3 years
Bakery on macOS is fantastic for side projects. I hate not having an app icon, and can throw something decent enough looking for dev in < 5 minutes with this app -
0
2
25
@zachwaugh
Zach Waugh
4 years
Downloading a RSS reader ( @netnewswire of course) for the first time since Google Reader shutdown in 2013. Ready for more personal blogs and less of everything else in 2020
Tweet media one
1
2
24
@zachwaugh
Zach Waugh
6 months
✨ Announcing Breaks, a new free focus/pomodoro timer for iOS. All the existing apps tried to do much and I wanted something much simpler, so I created Breaks to scratch that itch. Download from the App Store or read more at
5
4
25
@zachwaugh
Zach Waugh
3 years
This was a fun challenge to build, since animation isn’t really my strength
@heyhey
HEY
3 years
🎉 New in HEY for iOS (v1.2.3) - A brand new way to switch between Imbox, The Feed, and Paper Trail by dragging the HEY button. Plus, send from extensions, show the screener on widgets, and a big batch of bug fixes.
25
22
359
7
0
25
@zachwaugh
Zach Waugh
9 years
Twitter.app is com.atebits.tweetie2. Instagram is com.burbn.instagram. Slack is com.tinyspeck.chatlyio. Oddly, Pinterest is just “pinterest”
2
3
23
@zachwaugh
Zach Waugh
3 years
Been using SF Symbols a lot lately, which is incredibly helpful for a side project when I don’t have a designer. Almost alway has something close enough to what I need, at least for a placeholder.
Tweet media one
1
0
22
@zachwaugh
Zach Waugh
3 years
I open-sourced this experiment I’m calling Pilcrow if anyone wants to follow along or is just curious where I ended up. Still not 100% sold on the document/block architecture, so will keep exploring there -
2
3
21
@zachwaugh
Zach Waugh
7 years
If I was Tim, I’d just carry around weird shit in my pockets all the time. Deck of cards, bar of soap, tv remote
1
2
22
@zachwaugh
Zach Waugh
4 years
This all just doesn't make any sense. If you download an app from your bank, it doesn't work without an account. Everyone clearly understands that. You don't say that Bank of America's app has to work with every bank in the world
Tweet media one
Tweet media two
1
6
21
@zachwaugh
Zach Waugh
4 years
The main issue with IAP isn’t even the cost, it’s that we can’t help our customers. We can’t offer refunds, we can’t give them a temporary discount for a few months, can’t pause their billing, etc. Our support team does that a ton, and we can’t give that up.
0
3
20
@zachwaugh
Zach Waugh
8 years
@dhh phew, we are *so* glad to hear you say that…
Tweet media one
1
1
21
@zachwaugh
Zach Waugh
10 years
If we had the UIKit source, we could see UIActivityIndicatorView has a spokeCount property and do stuff like this - http://t.co/CyO05PTNWi
1
23
20
@zachwaugh
Zach Waugh
5 years
I’m really surprised how Apple rolled out the undo gestures on iOS 13. Usually you at least need to build against the iOS 13 SDK for that kind of thing take effect, but happens for iOS 12 apps too. Garageband is now unusable, can’t play a three-note chord, and no way to disable.
2
7
21
@zachwaugh
Zach Waugh
4 years
Customer: "Having trouble with your iOS app" Me: "Happy to help, is that the iOS app on iPhone, iOS app on iPad, the iOS app on mac ARM, the iOS Catalyst app on mac ARM, or the iOS catalyst app on mac Intel?"
1
1
21
@zachwaugh
Zach Waugh
4 years
*cracks knuckles, opens Xcode* Alright, guess I better get started on that iOS app then
@jasonfried
Jason Fried
4 years
HEY LAUNCH DATE: We will be begin rolling out invites to the ~40,000 people on the invite list starting on June 15, 2020. If you want to get on that list, go to and follow directions at the bottom. Here we go!
Tweet media one
87
149
1K
2
0
20
@zachwaugh
Zach Waugh
3 years
✨ I'm really excited to share what I've been working on the last four months, we just shipped 1.0 of Rewatch for iOS!
@GoRewatch
Rewatch
3 years
Rewatch for iOS is now live in the @AppStore 🎉 With our new mobile app, you can: 🎥 Browse your channel. ⏺️ Record & share videos. 💬 Collaborate on the go. 🔔 Stay in the know. Download the app today:
Tweet media one
0
1
12
2
2
20
@zachwaugh
Zach Waugh
11 months
Berkeley Mono may be the first font I ever bought just to use for myself (i.e. - not for an app/website), it’s just so good -
0
2
20
@zachwaugh
Zach Waugh
1 year
I have less than 24 hours to convince myself that I don’t need the Apple Headset while simultaneously convincing my wife that I do.
1
1
20
@zachwaugh
Zach Waugh
3 years
We added basic Shortcuts support to the most recent version of HEY for iOS. If you’re a HEY and Shortcuts user, let us know what else you’d like to be able to automate
3
2
19
@zachwaugh
Zach Waugh
4 years
Been working on a new simple sketching app I’m calling Whirl. I find that most times I need a whiteboard, not a notebook. I want to sketch something quickly and either share or discard it, so I built an app just for that. It’s a single screen with no saving and only 3 tools.
Tweet media one
2
1
20
@zachwaugh
Zach Waugh
12 years
Xcode needs achievements: "You've successfully typed the block declaration syntax from memory 10 times in a row!"
5
53
20
@zachwaugh
Zach Waugh
5 years
The transition to being an old man is so gradual that I didn’t even notice it until I found myself on looking at images on the internet attempting to identify a bird I saw.
2
0
20
@zachwaugh
Zach Waugh
3 years
I will never not confuse the paperclip and link icons in an editor. Petition to replace the paperclip with literally anything else.
1
0
20
@zachwaugh
Zach Waugh
7 years
Been working on a text editor (currently named Tx) in Swift as a side project. Working first on getting syntax highlighting correct.
Tweet media one
1
0
20
@zachwaugh
Zach Waugh
3 years
TIL macOS has a built-in app to help clean up storage. Maybe it’s been there for years, but I always used Daisy Disk in the past.  > About This Mac > Storage > Manage. This Mac is only a few months old, so not completely destroyed by Xcode yet.
Tweet media one
3
1
19
@zachwaugh
Zach Waugh
5 years
Really excited to see this launch, go read it! I’ve learned so much from @rjs and @jasonfried the last 5.5 years @basecamp , I feel like I have a MBA in product development and now you can too 👇
0
0
19
@zachwaugh
Zach Waugh
9 years
If I run fastlane and there isn’t an update, I fear something must have happened to @KrauseFx
Tweet media one
3
5
18
@zachwaugh
Zach Waugh
9 years
“You’ve been using iTunes for 14 years, but we’ve updated it so you no longer understand it, how about a tour?” http://t.co/lCECMS4rZr
Tweet media one
2
17
18
@zachwaugh
Zach Waugh
2 years
My foolproof system for learning SwiftUI. 1. Google term, 2. skip right over any Apple documentation until I find an article by @twostraws
1
2
17
@zachwaugh
Zach Waugh
10 years
#define nslog NSLog #define Nslog NSLog #define NSlog NSLog #define NSLOG NSLog There, I think that should do it.
8
16
18
@zachwaugh
Zach Waugh
8 years
Me, waiting for Xcode to finish processing symbol files
Tweet media one
0
5
18
@zachwaugh
Zach Waugh
7 years
Deleting code would be a lot more fun if your cursor was pacman 🤔🕹
0
8
18
@zachwaugh
Zach Waugh
10 years
No it’s not in fucking use Xcode, I hate you http://t.co/vyTU3hIQdT
Tweet media one
1
7
18
@zachwaugh
Zach Waugh
16 days
@maxvoltar Yup! Already all working on iOS and syncing with iCloud.
Tweet media one
1
0
18
@zachwaugh
Zach Waugh
3 years
I’m not sure there’s anything more frustrating in computing that magical things when they don’t work, like AirDrop. Or more recently, automatic AirPods switching that keeps flipping between devices and won’t stay connected to the one I want.
2
0
17
@zachwaugh
Zach Waugh
8 years
Exploring writing Swift command-line app with Sublime Text 3 and pretty happy with it. Inline errors and auto-complete working
Tweet media one
Tweet media two
2
2
16
@zachwaugh
Zach Waugh
3 years
I see how it is, he gets to play, but when I bring my kazoo I’m “being a nuisance” and “have to leave the building”
@kottke
kottke.org
3 years
After getting his second dose of the Covid-19 vaccine at a clinic at Berkshire Community College, Yo-Yo Ma got out his cello and performed a 15-minute impromptu concert for the others folks at the clinic. (He played Bach!)
1
7
38
0
1
17