Skip to main content

The Indie Hacker's Guide to Building on Open Source

·OSSAlt Team
indie-hackeropen-sourcestartupself-hosting2026

The Indie Hacker's Guide to Building on Open Source

As an indie hacker, your two scarcest resources are money and time. Open source gives you both back — if you use it strategically.

The Indie Hacker's OSS Stack

Your Product Stack (Build With)

NeedToolWhy
DatabaseSupabase (self-hosted) or PocketBaseAuth + database + storage in one
BackendPocketBase (Go binary) or SupabaseZero infrastructure for MVP
AuthSupabase Auth or LogtoDon't build auth yourself
SearchMeilisearchInstant search, simple API
Email (transactional)Resend or SES ($0.10/1K)OSS tools send, SaaS delivers
PaymentsStripeNo OSS alternative that works
HostingCoolify on HetznerDeploy anything, $7/month

Your Business Stack (Run With)

NeedToolReplacesSavings
AnalyticsPlausibleGoogle AnalyticsPrivacy + accuracy
Email marketingListmonkMailchimp$0 vs $20+/month
Customer supportChatwootIntercom$0 vs $39+/month
SchedulingCal.comCalendly$0 vs $12/month
MonitoringUptime KumaBetter Stack$0 vs $25/month
Link trackingDubBitly$0 vs $35/month
FormsFormbricksTypeform$0 vs $29/month
CRMTwentyHubSpot$0 vs $20+/month
Automationn8nZapier$0 vs $49/month

Total SaaS cost replaced: $230+/month → $0 (software) + $7-14 (hosting)

The $14/Month Indie Stack

Everything you need to launch and run a product:

ComponentToolServer
Product backendPocketBaseServer 1
Product hostingCoolifyServer 1
AnalyticsPlausibleServer 2
Email marketingListmonkServer 2
Customer supportChatwootServer 2
SchedulingCal.comServer 2
MonitoringUptime KumaServer 2
Link shortenerDubServer 2
Reverse proxyCaddyBoth

Server 1: Hetzner CX22 ($4.50) — Your product Server 2: Hetzner CX32 ($7) — Your business tools SMTP: Amazon SES ($2.50) Total: $14/month

Building With OSS: Practical Patterns

Pattern 1: PocketBase MVP

Ship an MVP in a weekend:

// PocketBase gives you auth + database + API + file storage
const pb = new PocketBase('https://api.yourapp.com')

// Auth
await pb.collection('users').authWithPassword('user@email.com', 'pass')

// CRUD
const posts = await pb.collection('posts').getList(1, 20)
await pb.collection('posts').create({ title: 'Hello', body: '...' })

// Realtime
pb.collection('posts').subscribe('*', (e) => console.log(e))

No backend code needed. Frontend talks directly to PocketBase.

Pattern 2: Supabase Full-Stack

For more complex apps:

// Supabase: PostgreSQL + Auth + Storage + Realtime + Edge Functions
import { createClient } from '@supabase/supabase-js'
const supabase = createClient(url, key)

// Auth with magic link
await supabase.auth.signInWithOtp({ email: 'user@email.com' })

// Query with row-level security
const { data } = await supabase
  .from('posts')
  .select('*')
  .eq('user_id', user.id)

// File upload
await supabase.storage.from('avatars').upload('avatar.png', file)

// Realtime subscriptions
supabase.channel('posts').on('postgres_changes',
  { event: 'INSERT', schema: 'public', table: 'posts' },
  (payload) => console.log(payload)
).subscribe()

Pattern 3: Coolify Deploy Pipeline

# 1. Install Coolify on your VPS
curl -fsSL https://cdn.coollabs.io/coolify/install.sh | bash

# 2. Point your repo at Coolify
# Push to main → Coolify auto-deploys

# 3. Add services from Coolify marketplace
# PostgreSQL, Redis, Meilisearch — one click each

No Docker knowledge required. No CI/CD to configure. Push and deploy.

Monetization-Friendly OSS Stack

Revenue ModelOSS Tools to Support It
SaaS (subscriptions)Supabase (user management) + Stripe + Plausible (track conversions)
MarketplaceMedusa (e-commerce) + Meilisearch (search) + Stripe
Content/coursesPocketBase (content delivery) + Listmonk (email marketing) + Plausible
ConsultingCal.com (booking) + Twenty (CRM) + Chatwoot (communication)
CommunityMattermost (chat) + Outline (knowledge base) + Formbricks (feedback)

Automation Recipes for Indie Hackers

Using n8n to automate your indie business:

New Customer Onboarding

Stripe webhook (new subscription)
  → Create user in PocketBase
  → Send welcome email via Listmonk
  → Add to CRM (Twenty)
  → Notify you in Mattermost

Content Publishing

New blog post (webhook)
  → Create short link (Dub API)
  → Schedule social posts
  → Add to email newsletter (Listmonk)
  → Track in Plausible (custom event)

Support Triage

New Chatwoot message
  → Check if customer (PocketBase lookup)
  → If paying customer → priority label
  → If common question → auto-respond with link
  → If urgent → notify Mattermost channel

Common Mistakes

1. Over-Engineering the Stack

Mistake: Self-hosting 15 tools before you have customers. Fix: Start with PocketBase + Plausible + Listmonk. Add tools as needs emerge.

2. Building Instead of Shipping

Mistake: Spending 2 weeks perfecting your self-hosted setup. Fix: Use managed options (Supabase Cloud, Plausible Cloud) for MVP, self-host when revenue justifies it.

3. Ignoring Backups

Mistake: "I'll set up backups later." Fix: Set up automated daily backups on day 1. It takes 15 minutes.

4. Premature Self-Hosting Everything

Mistake: Self-hosting email (Mailu/Mail-in-a-Box) to save $6/month. Fix: Some things are worth paying for. Email deliverability is hard.

The Decision Framework

StageApproachBudget
Idea validationAll free tiers (SaaS)$0
MVPPocketBase/Supabase + Coolify$7-14/month
First customersAdd Plausible + Listmonk + Chatwoot$14/month
$1K MRRFull self-hosted stack$14-30/month
$5K MRRUpgrade servers, add redundancy$50-100/month
$10K+ MRRConsider managed options for sanity$100-300/month

The Bottom Line

As an indie hacker, open source is your unfair advantage:

  • $0 software costs means more runway
  • Full control means no feature limitations
  • Data ownership means you can pivot freely
  • Self-hosting skills compound over your career

Start with 3-4 tools. Ship your product. Add more as you grow.


Find every tool you need for your indie stack at OSSAlt.