Founder, Designer, Developer

Nightmarks

2026–present

Visit live site →

An independent SaaS product I designed, built, and operate solo, featuring an interactive map of paranormal sightings with a real community around it.


Context

Nightmarks is an independent product I built and run on my own: a worldwide map of paranormal sightings, backed by a custom geospatial database, with a community layer where people contribute, discuss, and follow each other. It began as a long-held idea I finally had the tools to build solo.


Challenge

Building and running a real product alone meant owning every decision: what the product should be, how the experience should feel, how to architect it to scale, and how to sustain it, all without a team to divide the work across.


Approach

The map as the product

The core decision was putting the map at the center of the experience rather than building a traditional feed or directory. A sighting is inherently spatial. The map makes geographic patterns visible in a way a list never could: clusters of activity, regional concentrations, the relationship between sightings and terrain. Everything else in the product (search, filtering, discovery) flows from that spatial foundation.

Community as a product layer

A database of sightings without people around it is just a dataset. The community layer includes threaded comments, a follow system, an activity feed, and user profiles. It was built because the product needed to be a place people come back to, not just a reference they visit once. The follow system lets users track specific contributors or regions. Threaded comments turn individual sightings into conversations. The product reasoning was straightforward: if the community is engaged, the dataset grows organically.

Architecture for one

The stack was chosen for what a solo operator could sustain. Next.js with the App Router and React Server Components keeps the rendering model simple and performant. Supabase provides PostgreSQL with PostGIS for geospatial queries and Row Level Security for authorization (a managed database layer that handles the infrastructure I didn’t want to operate myself). MapLibre GL JS powers the interactive map. Stripe handles the donation flow. The entire product deploys on Vercel.

Revenue without gates

Rather than gating features behind paid memberships, the product stays fully open. Revenue comes from a donation flow plus affiliate and paranormal-tour-operator partnerships. The reasoning was product-level, not ideological: a community product grows by lowering friction, not raising it. Every paywall is a reason for someone not to contribute a sighting, not to leave a comment, not to come back. Keeping it open was a growth decision as much as a values one.

AI-assisted development

Building something at this scope solo was feasible in part because of an AI-assisted development workflow. Claude Code became a core part of the practice, not as a shortcut, but as a way to move through implementation decisions faster while maintaining the quality bar. The product thinking and design decisions are mine; the AI partnership made it practical to execute them without a team.


Outcome

Live

& operating

Solo

built & maintained

Global

sightings dataset

Open

community model

A live, operating product with an active community, a worldwide dataset of sightings, and a sustainable model through donations and partnerships.


Selected Visuals

Map view — worldwide sightings with clustering
Map view — worldwide sightings with clustering
Sighting details — location context and enriched descriptions
Sighting details — location context and enriched descriptions
Community profile and activity feed
Community profile and activity feed
Mobile experience — sighting submission flow
Mobile experience — sighting submission flow
Account onboarding flow
Account onboarding flow

Reflection

Building and operating Nightmarks has been the clearest lesson in what “product-first” actually means when there’s no one else to defer to. Every feature ships or doesn’t based on whether it serves the people using the product, not a roadmap or a stakeholder. The constraint of doing it solo has made the prioritization sharper because there’s no room for features that sound good in a planning document but don’t earn their complexity.