How Paku on Apple Watch helps people breathe easy
One morning in September 2020, Kyle Bashour, like all San Francisco residents, looked outside to find that the sky had turned orange.
A computer science major who graduated from the University of Tennessee, Knoxville, Bashour had moved to the Bay Area to work for a big tech company. But he took the curious occasion of the orange sky to launch an iOS side project: An app and widget called Paku that showed the air-quality data from the PurpleAir monitoring sensor nearest to the user.
Paku
Available on: iPhone, iPad, Mac, Apple Watch
Team size: 1
Based in: Portland, OR
“Widgets had just arrived,” says Bashour, who now lives in Portland, “so my v.1 was literally just a widget that showed PurpleAir data. I built and shipped it in a day. But it worked pretty well and got some interest, and that inspired me to keep working.”
In the weeks that followed, Bashour added a map view, “rounded out” a few AQI details, and began to integrate additional features like graphs and push notifications. When watchOS 10 debuted at WWDC23, he “redid the whole Watch app” to bring Paku to the platform. And today, now on iOS, iPadOS, macOS, and watchOS, Paku is a best-in-class title that offers easy-to-navigate Swift Charts, a spiffy Smart Stack widget, and glanceable (and hyperlocal) air quality updates.
"I wouldn’t say I’m an air-quality expert. Maybe just more in tune than the average person."
Paku — which is still a side project — is built using primarily SwiftUI, though Bashour says some screens use SwiftUI views wrapped in UIKit to “put them over the top.” The app has supported WidgetKit from day one, but over time has added support for MapKit, the Action Button, Live Activities, and App Intents. “Apple-provided APIs are easier and more cost-effective,” he says.
Elsewhere, Paku uses Swift Actors to ensure that memory caching is implemented safely and easily. “I use an in-memory cache of sensor data on my back end. It’s literally just a Swift Actor with a dictionary in it. This makes it super-easy to get data in my API implementation, which uses async functions, without worrying about data races when the sensors are being updated.”
What’s more, the app relies on server-side Swift, through which Bashour set up shared models to handle real-time AQI data monitoring. “It’s fast, lightweight, has a super-low memory footprint, and makes it so you don’t have to learn another language. And it’s really unlocked something that was maybe harder for indie and solo devs who aren’t as into back-end development.”
Bashour says he’s “not a designer” and prefers to design through code. “It helps that watchOS has a great design language,” he says. “To learn how to build charts, I watched WWDC videos and dug into the sample code. All the detailed guidelines made it pretty quick and easy — watchOS 10 really nailed that.”
Today, Bashour says about half of Paku users are on Apple Watch — and they only want the app to grow. It’s the classic example of an app doing one thing very well, even if its creator remains humble about it. “It’s inspiring to hear from people who are super-sensitive to air quality,” he says. “I wouldn’t say I’m an air-quality expert. Maybe just more in tune than the average person.”
Originally published June 9, 2025