Ashton Nath

Founder · Solo · March 2026 to Present

Bulletin

A campus events app for the University of Florida, built around a hand-baked 3D map of campus.

Bulletin's live map screen: a hand-built campus at night with colored event pins and an event card at the bottom.

The problem

Campus events lived nowhere in particular.

UF has events happening constantly: club meetings, lectures, games, parties. None of it lived in one place. It was scattered across a dozen apps, group chats, and flyers, so most students found out about the good ones after they had already happened.

The decision

A custom map, not a Google Maps API call.

The obvious move was to drop event pins on Google Maps and move on. Instead I built a custom map engine from scratch: over 10,500 hand-baked map pieces across four times of day, including 2,546 individually placed street lamps, with its own gesture physics, event pins, and landmark labeling.

The reason was credibility, not novelty.

If every building on campus is mapped correctly, the app reads as something built specifically for UF, not a generic events template with pins dropped on top. That hyperlocal accuracy is the actual moat. The software behind a map is replicable in a weekend. Months of hand-placed detail are not.

The cost was real. A Google Maps integration would have taken a day. The custom engine took months I could have spent on other features, and I would make the same call again.

What shipped

Screens, flows, the real artifact.

Designed, built, and shipped solo: product, design, and engineering, end to end.

Creating a new event: cover art selection, theme options, and event details form.
Creating an event, from cover art to visibility.
An individual event page showing category tags, date and time, location, and club details.
Every event gets its own page.
Organization tools showing category tags for recruitment, info sessions, and club events.
Built for orgs: recruitment, info sessions, and club tools.
A day-grouped list of events from today through tomorrow, including an event photo.
The whole weekend, grouped by day.
A per-event group chat with messages, reactions, and a shared photo.
Every event can chat: reactions, replies, GIFs, photos.
Seven clay mascot characters representing different students in the app.
Seven mascot characters stand in for students across the app.

Under the hood

  • 10,700+ designed assets: UI icons, badge medallions, category pin sprites, and seven mascot characters
  • PostgreSQL backend with row-level security on every table, across 46 migrations
  • An automated feed connecting verified campus events to the live map on scheduled jobs
  • Realtime chat with reactions, replies, GIFs, and photo sharing, moderated to App Store Guideline 1.2
  • 800+ commits, 29,000+ lines of TypeScript
  • Built by orchestrating AI coding agents across parallel sessions, with a review gate on every schema change

What it cost, what it taught

Zero to App Store submission in five months.

Solo. Currently in beta with real users.

The map taught me that the unglamorous decision is often the real product. Nobody opens Bulletin because they admire the migration count. They open it because campus finally looks like campus.