Selected work

Active project · Native iOS · 2026

SideQuest

A SwiftUI map app that helps people find overlooked places worth a detour and weighs distance, timing, weather, access, and past visits.

Role
Design + engineering
Timeline
2026
Stack
SwiftUI · MapKit · Core Location · Supabase · Open-Meteo · Swift Testing
Metrics
11 adventure categories · 55 Swift tests · Shared catalog + moderation

Overview

SideQuest combines a dense discovery map and sortable nearby list with conditions-aware recommendations, detailed safety and access notes, offline state packs, and a shared catalog.

Interesting local places are scattered across saved pins, personal lists, and word of mouth. General-purpose maps rank by popularity, not whether a place fits the user, the weather, or the time of day.

What I built

  • Built the native SwiftUI map, nearby drawer, search and category filters, place details, MapKit handoff, visit history, and offline state downloads.

  • Designed the Best Now scoring model around distance, arrival time, daylight, season, weather, access, vehicle needs, and past visits.

  • Added Supabase email and password auth, a synced catalog, photo-backed submissions and corrections, shared ratings, and role-gated moderation tools.

Key choices

  • Kept the map as the main discovery surface while using a draggable drawer for fast search, sorting, and comparison.

  • Explained each recommendation with visible timing, weather, safety, and access reasons instead of exposing an unexplained score.

  • Kept pending photos private, gated admin tools with a server-managed role, and used an Edge Function for atomic publication.

Outcomes

  • Supports one flow from finding a nearby idea to judging whether it works now, opening directions, and recording how the visit went.

  • Lets signed-in users improve a shared catalog without granting direct public writes to approved places or media.

  • Includes 55 Swift tests covering scoring, legacy decoding, cache round trips, submission diffs, and shared rating math.

App screens

Built around the decision to go.

The interface moves from broad discovery to the details that matter before someone leaves: timing, travel, effort, weather, and access.

SideQuest discovery map with category filters, color-coded pins, and a nearby sidequests drawer
01 / Discovery map

The main map keeps category filters, nearby results, location controls, and the recommendation flow within one screen.

SideQuest place detail for Camel's Back Sunset Steps with timing, access, and map information
02 / Place details

Place details explain timing, travel, effort, vehicle needs, safety, and access before sending the user to Maps.