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 UIOne codebase, two platforms. The component model maps perfectly to how I think about interfaces. No Kotlin or Swift context-switching.
Expo
Build toolchain & runtimeEAS 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 safetyWhen 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, realtimePostgres 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 logicDeno-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 privacyMulti-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 gatewayOne 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 outputToken-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)
FrameworkApp Router with static export. Zero server costs, instant page loads, full React ecosystem. The static output deploys to Vercel with zero config.
Tailwind CSS
StylingUtility-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
AnimationDeclarative animations that feel alive. Scroll-triggered reveals, staggered lists, physics-based springs. The cosmic UI would feel flat without motion.
MDX
ContentMarkdown 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 generationReact 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 & CDNStatic site hosting with global edge network. Pre-built HTML means sub-100ms TTFB. Deploys automatically on push.
Expo EAS
Mobile builds & OTA updatesCloud 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 controlSingle 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.
Dive deeper into how the stack comes together:
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.