Back home

The Solo Stack

The Stack I Use to Build Apps Solo

Every tool, framework, and service behind Ocean Drop and this site. Not a “best tools” list — these are the specific choices that let one developer ship production apps without a team.

The selection principle

Every tool here was chosen for the same reason: it lets me move fast without accumulating debt. If a service requires a dedicated ops person, it's out. If a framework fights the way I think, it's out. The stack should disappear and leave only the thing I'm trying to build.

Mobile Frontend

What the user touches

React Native

Cross-platform UI

One codebase, two platforms. The component model maps perfectly to how I think about interfaces. No Kotlin or Swift context-switching.

Expo

Build toolchain & runtime

EAS Build handles native compilation in the cloud. OTA updates let me ship fixes in minutes, not days. The managed workflow removes 80% of native config pain.

TypeScript

Type safety

When you're the only developer, TypeScript is your pair programmer. It catches the mistakes you'd miss at 2 AM.

Backend & Data

Where the truth lives

Supabase

Auth, database, edge functions, realtime

Postgres with batteries. Row-level security means I write access rules once and they apply everywhere — API, realtime, edge functions. No separate auth server, no ORM gymnastics.

Supabase Edge Functions

Server-side logic

Deno-based functions that run at the edge. I use these for AI chat processing, partner notifications, and daily plan generation. Cold starts under 200ms.

Row-Level Security

Data privacy

Multi-user data isolation without middleware. Partners can share data with consent, but RLS ensures no one sees what they shouldn't. Security as a database feature, not an afterthought.

AI Layer

Intelligence without lock-in

OpenRouter

Multi-model AI gateway

One API, access to every model. I route different features to different models — Claude for nuanced conversations, faster models for daily plan generation. Swap models without changing code.

Streaming Responses

Real-time AI output

Token-by-token streaming through edge functions to the mobile client. Users see the AI "thinking" in real time, not staring at a spinner for 5 seconds.

Web Frontend

The portfolio & blog you're reading

Next.js (Static Export)

Framework

App Router with static export. Zero server costs, instant page loads, full React ecosystem. The static output deploys to Vercel with zero config.

Tailwind CSS

Styling

Utility-first means I can prototype at the speed of thought. Custom theme tokens (cosmic, gold, parchment) keep the brand consistent without a component library.

Framer Motion

Animation

Declarative animations that feel alive. Scroll-triggered reveals, staggered lists, physics-based springs. The cosmic UI would feel flat without motion.

MDX

Content

Markdown with React components embedded. Blog posts can include interactive demos, custom callouts, or newsletter forms without leaving the writing flow.

Video & Creative

Programmatic content

Remotion

Programmatic video generation

React components rendered as video frames. I can generate social content at scale — each video is just a React component with props for data, style, and timing.

Infrastructure

What keeps it all running

Vercel

Web hosting & CDN

Static site hosting with global edge network. Pre-built HTML means sub-100ms TTFB. Deploys automatically on push.

Expo EAS

Mobile builds & OTA updates

Cloud builds for iOS and Android. EAS Update pushes JavaScript bundles over the air — bug fixes ship in minutes, not through 3-day app store review.

Git + GitHub

Version control

Single source of truth. Every feature on a branch, every deploy traceable to a commit.

Why This Works Solo

Minimal moving parts

Supabase handles auth, database, functions, and realtime. That's four services replaced by one.

Security by default

Row-level security and edge function auth. I don't build security layers — I configure them.

Ship in minutes

OTA updates for mobile, CLI deploys for web. No CI/CD pipelines to maintain for a solo project.

One language everywhere

TypeScript from mobile UI to edge functions to static site. Context-switching kills solo velocity.

Stay in the Current

Transmissions from the workshop

Dispatches on code, craft, and consciousness — what I'm building, what I'm learning, and the patterns between.

No spam. Unsubscribe anytime.