sidequest.

Sep 2024 - Nov 2025

Pokemon Go for Event Discovery. This is an app I spent a year developing. I designed, built, and launched the product 0 to 1 covering the full-stack including frontend, backend, and infrastructure. I also lead user research, produced marketing content/videos, and conducted real-life events attracting 100s of attendees.

Map-Based Discovery

Intro

Sidequest was my first attempt at building a startup. The idea was inspired by my 3 month backpacking and hostel hopping trip across Europe with my younger brother where I discovered the wonder of unexpected shared experiences. I time-boxed the project to 1 year to see how far I could take it, building out a mobile app, web admin dashboard, full backend, and infrastructure. Prior to transitioning off the startup, the app gained 100+ users and was tied to 3 self-organized events totalling 100s of attendees.

Tech Stack + Important Frameworks

  • Mobile:

    React Native/Typescript, Expo, Vite, Reanimated, Mapbox

  • Web:

    Next.js, Tailwind, TypeScript, Vercel

  • Backend:

    Python Django, PostgresSQL, Docker, JWT, Refresh Tokens, Google & Apple OAuth

  • Infrastructure:

    Terraform + AWS, ECS, S3, RDS, Docker

What I Built

This section covers the core features of the app from both a user and admin perspective. Each subsection will contain a demo, features, and at least one deep dive.

Map-Based Discovery | Filters, Regions, Maps, Events, Geofencing

Discovery screen 1
Discovery screen 2
Discovery screen 3
Discovery screen 4
Discovery screen 5
Discovery screen 6
Discovery screen 6
Discovery screen 6

Features

  • Browse events by integrated Mapbox map view or list view on a custom bottom sheet

  • Filter by city, region, date, start time, and category + sort by distance or start time

  • View and interact with events in their own custom view card and screen view

  • Save events to calendar, profile, or share with friends via external links to the companion site. Provides directions and ability to check in and collect as well.

  • Users can check in and collect events by geo-fenced check-in system. Backend service checks is user is within X meters of the event and if so, event is marked as collected. Also used to track attendance. (Feature code completed but not deployed in current app version).

Creation Pipeline | Submission, Approval, Image Organizer & Cropper, Timezones

Creation screen 1
Creation screen 2
Creation screen 3
Creation screen 4
Creation screen 5
Creation screen 6
Creation screen 7
Creation screen 8
Creation screen 9

Features

  • Multi-step submission flow for discovered events + local drafts. Events submitted by users are reviewed on a custom admin dashboard and if approved appear on the map.

  • Image picker with custom-built image crop system.

  • Chosen images could be reordered by long-pressing and then dragging them to the desired position. This reorder-enabled ScrollView is a custom component which can be used with any component item in the middle. For example this was also used to reorder badges.

  • Address autocomplete and map pin with reverse geocoding.

  • Custom KeyboardAvoidingView to replace React Native's default buggy one. Effectively this view made it so the keyboard would not cover up the input fields when the keyboard is opened.

  • Timezone support for events. Event timezones were converted and stored in the backend based on geocoded event coordinates, instead of the user's timezone.

Personalization | Profiles, Badges, Color Palettes

Profile screen 1
Profile screen 2
Profile screen 3
Profile screen 4
Profile screen 5
Profile screen 6
Profile screen 7
Profile screen 8
Profile screen 9

Features

  • My Sidequests section houses drafts, Sidequests submitted in reivew, and Sidequests which were submitted and approved by the user

  • Liked Sidequest section shows liked Sidequests and can be clicked into which then allows for the ability to swipe to unlike. Sidequests are ordered by soonest start time.

  • Custom color palette system with themed components and custom useTheme() hook allowing for ease of creating new color palettes. At launch light and dark exist but setup makes it easy to add more by just changing out colors.

  • Profile badges awarded for achievements. Badges earned by completing tasks such as attending X events, submitting X events, attending Sidequest exclusive activations and many more tasks. Badges had rarity tiers from Common to Relic. The profile is limited to displaying 6 badges which can be reordered. Accounts are determined eligible for a badge by custom service in the backend upon certain criteria. (Code completed but not deployed in current app version).

User Accounts and Persistence | Auth, Creation Flow, Roles, Security

Account screen 1
Account screen 2
Account screen 3
Account screen 4
Account screen 5
Account screen 6

Features

  • Custom JWT + Refresh Token auth system setup in the backend with 4 distinct user roles and permissions. Login will persist based on a refresh token as long as it hasn't expired.

  • Social login with Google and Apple, securely verified on both the client and server side.

  • Login with email possible with one-time-password sent to email by the backend.

  • Custom User Creation Flow with server and client side validation, encryption, and security

Companion Website

Website landing page
Website contact page

Features

  • Landing page with overview of app, features, screenshots, and social links.

  • Contact page which submits to a custom email address on the backend.

  • App events also accessible via the website. These event links deep link to the mobile app and allow for ease of sharing with friends.

Moderation/Administration

The admin dashboard is admin only and allows for easy management of users, events, and other data. All screenshots are samples.

Admin main
Admin users
Admin events list
Admin event create
Admin event instances
Admin approval
Admin stats
Admin errors

Features

  • Custom stat emitter with stats stored in PostgresSQL database. Metrics are derived from API call data, failures, event clicks, logins, etc. Collected information is collated and displayed on the dashboard

  • User management page allows for editing of user roles and permissions as well as displays all users.

  • Event management page allows for the creation, updating, viewing, deletion, and approval of events. Events also have instances based on recurrence logic which can be manually created and overridden on this page. User submitted event approvals and rejections also occur on this page.

Event Recurrence

Purpose of this feature is to allow better customization of events so repeating events can easily be changed saving hours of labor for copy pasting and manually managing events.

Recurrence daily
Recurrence weekly
Recurrence monthly
Recurrence yearly
Recurrence instances
Recurrence edit instance

Features

  • Recurrence logic based on RRULE format with nightly cron job generating out 60 days of future events based on the rule string

  • There is a custom base event model in the database with an associated Event Instance model built on top for recurring events with custom information. This allows for quick access of the database and adhoc generation as needed.

  • Recurring event logic similar to Google Calendar where it starts on the first event date and then can be simple such as every day or month on a certain day or complex such as every week on monday, tuesday, friday. Custom exclusions and overrides are possible on the admin dashboard.

Real World Activations | Events I Organized

As part of Sidequest, I began organizing events in the later stages to test my theory that the best way to make an event app successful is to build the culture around it. Turns out my theory was correct. All events were hosted at Proof Coffee Roasters in NYC, a local cafe I partnered with.

Karaoke Cafe

Karaoke Cafe Recap

View on Instagram

Highlights

  • Organized and hosted a 40+ person karaoke cafe event

Pumpkin Decorating Contest

Pumpkin Decorating Promo

View on Instagram

Pumpkin Decorating Recap

View on Instagram

Highlights

  • Hosted a 12 person pumpkin decorating contest with a prize pool of $50 for best pumpkin

  • Due to the event, the cafe revenue for allotted time period was 5x the norm

Re:Made Market

Re:Made Hand Promo

View on Instagram

Re:Made Promo 2

View on Instagram

Highlights

  • Collaborated with 2 other startups to organize an 8 local vendor, 100+ attendee popup sustainable/upcycled clothing market in less than 30 days with no prior experience in fashion

  • The event featured a major brand sponsorship from Yerba Madre and had a live DJ