What it does
Answer 'what is happening downtown, where do I eat, and where do I park, right now' in one place on your phone, so you commit to a plan instead of playing travel agent across five tabs.
Currently
Live MVP. A mobile-first guide to Downtown Campbell: what is open right now, what is on this weekend, a filterable eat-and-shop directory with map and detail pages, curated tonight picks, and event-aware parking and street-closure guidance under the Water Tower. No login, free, your saves stay in your browser. The honest gap is that the surface is barely instrumented, so the North Star, acted-on downtown intents per week, is not yet a number I can steer by. Instrumentation is the next thing in.
Roadmap
/now-next-later-roadmapNow/Next/Later Roadmap- NSM instrumentation (6 events) + weekly dashboard
- Attribution pipe (business_id on every intent event)
- Event-aware parking + closure guidance (hero)
- Curated tonight picks / themed lists
- Lightweight freshness: suggest an edit / report wrong info
- Festival Mode timed to a Q3 concert or Wine Walk weekend
- Save + reminders + weekly digest (retention pairing)
- Claim-your-business freshness flywheel (full self-service listings)
- Event submission by businesses and the association
- Embeddable what's-on + parking widget
- Credible attribution: coupon / redemption close-the-loop
- AI concierge: ask downtown anything
- Association dashboard (breadth + foot-traffic proof)
- Full-site / platform replacement
- Local-promotion revenue product (featured listings)
- Downtown-in-a-box template / clone tooling
- SMS parking quick answer
Recently shipped
- Jun 16, 2026Shipped the consumer flagship: the mobile-first downtown-right-now surface, with parking and closure guidance, an eat-and-shop directory, events with add-to-calendar, and curated tonight picks.
How I know it's working
instrumented Β· awaiting trafficA weekly count of sessions in which a user takes at least one real-world-intent action on the surface: gets directions to a business or venue, opens parking or closure guidance for a planned trip, adds an event to their calendar, taps to call, reserve, or view a menu, or saves a business or event for later. A bounce is not an acted-on intent. It captures the consumer value moment and doubles as the foot-traffic proxy that makes the business side sellable later.
The events are wired into a privacy-first store. Counts populate here as people use it. This is the honest part of the work: instrument first, claim later.
How it's built
How I built it
Downtown Campbell started as the consumer half of a two-sided bet. The visible product is a mobile-first guide to one small downtown: what is open right now, what is on this weekend, and where to park under the Water Tower on a festival day. Behind it sits a quieter thesis, that a downtown association would pay for a current, foot-traffic-driving presence it cannot build itself. The consumer surface is the engine and the proof; the association product is where money would eventually come from. So I ran the full product process on it, the same one I would run for a client.
What the discovery surfaced
A jobs-to-be-done pass made the wedge sharp: this is really three jobs braided together, plan tonight, park without stress, and know what is open right now, and nothing else owns all three in one place. People default to Google and Yelp, which do not know Campbell-specific context like a festival street closure or the Sunday market. Maya, the regional night-out planner who always picks the spot, became the primary persona, with Dev, the newer local regular, as the retention and word-of-mouth engine.
That framing set the North Star: acted-on downtown intents per week. It is the rare metric that serves both halves at once. For a consumer it only fires when the surface actually helped them commit to a real plan, getting directions, opening parking guidance, adding an event. For the business side it is the foot-traffic proxy that makes the product sellable. And it refuses to inflate on festival pageviews, which a vanity metric would not.
What shipped, and what is honest about it
RICE ranked the backlog and a Now/Next/Later roadmap drew the line. The cheapest, highest-leverage items, instrumentation and the attribution pipe, rose to the top, and the parking-and-closure hero followed as the most acute job and the best demo. The first version is deliberately consumer-only, no login, with saves in local storage.
The pre-mortem named the two risks to design around from day one. The first is freshness: launch fresh, let the data rot, and one wrong-hours wasted trip undoes everything, so the moat is keeping data current, not adding surface area. The second is measurement: the flagship is barely instrumented today, which means the North Star is still an assumption rather than a number. So the honest next bet is not a new feature. It is instrumentation, then freshness, then timing a Festival Mode launch to the weekend when intent is highest.
The strategy behind it
A snapshot of the product process this app was built from. Each artifact comes from a k8 skill you can run yourself. It reflects the original plan, not the live state above.
Jobs to be done
/jtbd-analysisJTBD Analysis| When I⦠I want to⦠| Importance | Frequency |
|---|---|---|
| When I am deciding whether and where to go to Downtown Campbell, I want one current source for what is open, what is happening, and where to eat, so I can commit to a plan instead of cross-checking four apps and giving up. | high | high |
| When I am heading downtown, I want to know exactly where to park and whether the street is open, so I do not circle for twenty minutes or get caught out by a festival closure. | high | high |
| When I am already nearby or on my way, I want to know what is actually open at this hour, so I do not walk up to a closed door. | high | high |
| When life is busy, I want downtown's events and seasonal happenings to reach me in a glanceable way, so I catch the wine walk, the concert, or the market instead of hearing about it after. | medium | high |
| When I am bringing a date or out-of-town friends, I want to play the person who knows the cool independent spots, so the night feels curated, not generic. | medium | medium |
| When I run an independent shop or restaurant on Campbell Ave, I want the downtown's own channels to send me real foot traffic, so I get a return on my dues without having to run my own ads and social. | high | high |
Persona
/persona-createPersona Create- A fun, smooth night: good food or drinks, a walkable vibe, easy parking
- Ideally something happening, live music or a wine walk
- Look like she planned it well
- Stitches Google, Yelp, Instagram, and Eventbrite and still is not sure what is on
- Parking anxiety, especially the unpredictable festival closures
- Falls back to the same two chain-ish places because discovery is hard
Persona
/persona-createPersona Create- Make downtown his third place: the market on Sunday, a weeknight beer, the summer concert
- Feel like a local and support independents over chains
- A glanceable what's-on-this-week and open-now for a midday break
- Misses things he would have loved because nothing reaches him
- No glanceable this-week or open-now surface for a midday coffee or lunch
- Wants to back local businesses but the official directory is not useful enough to use
Persona
/persona-createPersona Create- Foot traffic and revenue: dues that actually send her customers
- Promote an event or a sale without learning ad platforms
- See whether the downtown's channels drive her any traffic
- The current directory is a static logo; she cannot tell if it does anything
- She competes with chains that have marketing budgets she does not
- No way to see whether the downtown's channels send her any traffic
Prioritization and risks(the internal detail)
RICE prioritization
/rice-scoreRICE Score| Feature | Reach | Impact | Conf. | Effort | Score |
|---|---|---|---|---|---|
| NSM instrumentation (6 events) | 10 | 2 | 90% | 1 | 18 |
| Attribution pipe (business_id on intent events) | 8 | 1.5 | 70% | 0.5 | 17 |
| Event-aware parking + closure guidance (hero) | 8 | 3 | 80% | 2 | 10 |
| Perf / a11y / mobile + schema + AI-crawlable | 10 | 2 | 90% | 2 | 9 |
| Visit hub / downtown right now home | 9 | 2 | 80% | 2 | 7 |
| Events product: filters + map + add-to-calendar | 9 | 3 | 80% | 3 | 7 |
| Curated tonight picks / themed lists | 6 | 2 | 70% | 1.5 | 6 |
| Eat & Shop directory: filterable + map + detail | 8 | 2 | 80% | 3 | 4 |
Pre-mortem risks
/pre-mortemPre-mortemThe data went stale and the surface became worse than the incumbent. The flagship launched fresh, then nobody kept events, hours, and listings current, and a wrong-hours wasted trip destroyed trust.
highMitigation: Ship suggest-an-edit and visible freshness timestamps in Now, full claim-your-business in Next. Treat freshness as the moat and resource it like one; seed only as much data as can be kept current.
The surface stayed uninstrumented, so the North Star never got a trustworthy baseline and every later bet stayed a guess. Today almost nothing fires.
highMitigation: Ship the six-event instrumentation bundle plus the attribution pipe first, before any feature work, and establish the NSM baseline before tuning anything.
The cold-start surface felt empty at the first visit, so users bounced before taking a single intent action and the value moment never landed.
mediumMitigation: Lead with the hero parking-and-closure guidance and curated tonight picks, and time a Festival Mode launch to a real concert or Wine Walk weekend when intent is highest.
The festival acquisition spike leaked straight out because there was no return trigger, so a 40,000-person weekend produced a one-time bump and no retained users.
mediumMitigation: Ship save, reminders, and the weekly digest with Festival Mode, not after it, so the spike has somewhere to land.
The honest market is small, so the project gets judged on a venture scale it was never meant to hit and reads as a failure when it is actually a strong flagship.
mediumMitigation: Name the scale openly up front: this is a real flagship plus a modest recurring line, not a venture business, and judge success accordingly.