Industry

Event Technology, Arts & Culture

Client

Griffith Observatory Star Party

AI-Assisted Photo Sharing Experience

AI-Assisted Photo Sharing Experience

Background

Background

Not every design project starts with a Figma file and a stakeholder deck. This one started with a conversation.

A telescope operator and astrophotographer who volunteers at LA's Griffith Observatory public star parties had a problem he couldn't solve with existing tools: he was capturing stunning images of the moon and night sky through his telescope, but had no easy way to get those photos into visitors' hands before the night was over. People would peer through the eyepiece, marvel at what they saw, and walk away.

Not every design project starts with a Figma file and a stakeholder deck. This one started with a conversation.

A telescope operator and astrophotographer who volunteers at LA's Griffith Observatory public star parties had a problem he couldn't solve with existing tools: he was capturing stunning images of the moon and night sky through his telescope, but had no easy way to get those photos into visitors' hands before the night was over. People would peer through the eyepiece, marvel at what they saw, and walk away.

ROLE

Solo Designer

Solo Designer

APPROACH

Vibe coding

Vibe coding

COLLABORATORS

1 Engineer

1 Engineer

TIMELINE

2026 - 2 days

2026 - 2 days

Understanding the problem

Sharing the Night Sky

Griffith Observatory's star parties draw curious visitors of all ages: families, first-timers, astronomy enthusiasts. The telescope operator's role isn't just scientific; it's an act of science outreach. Getting a photo of the moon into someone's camera roll can turn a one-time visitor into a lifelong stargazer.

But sharing images in the field is harder than it sounds. Bluetooth transfers are clunky across mixed devices. AirDrop excludes Android users. Emailing photos requires collecting addresses. And messaging apps assume a reliable internet connection, which Griffith's outdoor event area doesn't always guarantee.


Griffith Observatory's star parties draw curious visitors of all ages: families, first-timers, astronomy enthusiasts. The telescope operator's role isn't just scientific; it's an act of science outreach. Getting a photo of the moon into someone's camera roll can turn a one-time visitor into a lifelong stargazer.

But sharing images in the field is harder than it sounds. Bluetooth transfers are clunky across mixed devices. AirDrop excludes Android users. Emailing photos requires collecting addresses. And messaging apps assume a reliable internet connection, which Griffith's outdoor event area doesn't always guarantee.


How to get a high quality image into multiple visitor's camera rolls with limited time and internet connectivity?

How to get a high quality image into multiple visitor's camera rolls with limited time and internet connectivity?

The constraint

Working Within Limits

Most design briefs come with business constraints. This one came with a technical one that changed everything: the tool had to be hosted via a captive portal, the same network gateway technology used by hotel Wi-Fi and coffee shops. This meant:

  • No reliance on external internet connectivity

  • The entire experience had to be self-contained and locally served

  • The interface needed to load fast on any device, on the first try, with zero tolerance for failure at the moment a visitor scanned the QR code

This wasn't a nice-to-have constraint. It was the foundation every design decision was built on.

Most design briefs come with business constraints. This one came with a technical one that changed everything: the tool had to be hosted via a captive portal, the same network gateway technology used by hotel Wi-Fi and coffee shops. This meant:

  • No reliance on external internet connectivity

  • The entire experience had to be self-contained and locally served

  • The interface needed to load fast on any device, on the first try, with zero tolerance for failure at the moment a visitor scanned the QR code

This wasn't a nice-to-have constraint. It was the foundation every design decision was built on.

The idea

How it Works

A lightweight, mobile-first photo gallery, hosted locally via the captive portal, that visitors access instantly by scanning a QR code at the telescope. No app download. No account. No internet required.

A lightweight, mobile-first photo gallery, hosted locally via the captive portal, that visitors access instantly by scanning a QR code at the telescope. No app download. No account. No internet required.

SCAN

SCAN

BROWSE

SAVE

BROWSE

SAVE

The result: Visitors leave with a high-quality photo of something they couldn't have captured themselves.

The result: Visitors leave with a high-quality photo of something they couldn't have captured themselves.

Behind the build

Design Decisions

Every screen had to work in the dark, on any phone, with no internet. These three decisions trace back to that single constraint.

Every screen had to work in the dark, on any phone, with no internet. These three decisions trace back to that single constraint.

Every screen had to work in the dark, on any phone, with no internet. These three decisions trace back to that single constraint.

DECISION 01

Dark mode as function

At a star party, any bright screen disrupts night-adapted vision. A dark, low-luminance UI wasn't a style choice — it was a requirement for the environment.

DECISION 02

No login, no friction

No account. No email capture. The goal was delight, not a database.

Every barrier removed was one more visitor who actually left with a photo.

DECISION 03

Designed for one hand

Large tap targets, minimal text, a single-gesture save flow. Designed for someone cold, distracted, and holding their phone in one hand after seeing the moon.

The process

Vibe Coding with Claude

This project was built entirely through vibe coding, directing Claude with natural language prompts rather than writing code by hand. I used Claude to generate and iterate on the HTML and CSS and with only a few minor refinements, I got it to a working tool in a few hours.

This project was built entirely through vibe coding, directing Claude with natural language prompts rather than writing code by hand. I used Claude to generate and iterate on the HTML and CSS and with only a few minor refinements, I got it to a working tool in a few hours.

This project was built entirely through vibe coding, directing Claude with natural language prompts rather than writing code by hand. I used Claude to generate and iterate on the HTML and CSS and with only a few minor refinements, I got it to a working tool in a few hours.

The prompt that started it all

I described the full flow to Claude: the QR scan, the captive portal, the gallery, the save mechanic and it returned a working HTML interface in the same session.

I described the full flow to Claude: the QR scan, the captive portal, the gallery, the save mechanic and it returned a working HTML interface in the same session.

The prototype

No app. No account. Just the moon. Visitors scan, connect, and land directly in the photo gallery. One tap saves a high-quality astrophoto straight to their camera roll.

No app. No account. Just the moon. Visitors scan, connect, and land directly in the photo gallery. One tap saves a high-quality astrophoto straight to their camera roll.

Observations

Testing Under the Stars

With the tool live at the event, I watched a visitor scan the QR code and navigate the full flow in real time in the dark, on their phone, at the telescope. No prompting, no guidance.

With the tool live at the event, I watched a visitor scan the QR code and navigate the full flow in real time in the dark, on their phone, at the telescope. No prompting, no guidance.

With the tool live at the event, I watched a visitor scan the QR code and navigate the full flow in real time in the dark, on their phone, at the telescope. No prompting, no guidance.

Impact

The tool is currently in pilot, with plans to deploy at upcoming Griffith Observatory star parties. First test yielded 41 unique visitors.

The tool is currently in pilot, with plans to deploy at upcoming Griffith Observatory star parties. First test yielded 41 unique visitors.

Reflections

What I Learned from this Project

Vibe coding works best at the right scale

A tool with a few screens, no database, and no design system is the perfect candidate for vibe coding. Claude could generate the full interface in a single session because the scope was simple enough.

The most interesting briefs don't come from product teams

This project stood out from everything else in my portfolio because it started with a real person and a unique problem. No PRD, no personas, no sprint planning. That simplicity made the design work feel meaningful.