Newton Consulting Etc

THE SOLO DEV
LAUNCH KIT

A complete field guide for shipping production-ready web apps — without a desktop, laptop/Mac, or an excuse. Built from a real iPad workflow.

00
Domain & Branding
Before you write a line of code
01
Mindset
Constraints as a superpower
02
Stack
Tools that make it possible
03
Scaffold to Ship
Vite + React + Tailwind
04
Database & Auth
Supabase from mobile
05
Payments
Stripe without a desktop
06
Deploy & DNS
DigitalOcean + nginx
07
Monetize
Turning apps into income
Your next product in the series
00
Domain & Branding
Before you write a line of code
PRE-BUILD

Before you write a single line of code, you need a home for your product on the internet. This module walks you through choosing a domain name, checking it's legally clear, and registering it — all from your iPad.

Step 1 — Brainstorm Your Domain Name

Your domain name is your brand. It should be short, memorable, and clearly connected to what you're building. Aim for under 15 characters.

  • Stick to .com first — it's still the most trusted TLD for paid products
  • Avoid hyphens and numbers — hard to say aloud and look unpolished
  • Make it descriptive OR brandable, not both ("financeapp.com" vs "peppermintfi.com")
  • Test it: say it out loud. Could someone spell it after hearing it once?
  • Check that a matching Instagram/X handle is available before you commit

Step 2 — Trademark & Copyright Check (Do Not Skip)

Using a name that's already trademarked can get your product taken down and expose you to legal liability — even if you registered the domain first.

CheckWhereWhat to Look For
US Trademarktmsearch.uspto.govSearch exact name AND similar names in Class 42 (software services)
Google Searchgoogle.comSearch "your name + app" — look at first 3 pages for existing products
Domain WHOISwhois.domaintools.comCheck if taken and when registered — old domains may carry brand rights
Social Handlesnamechk.comCheck all major platforms at once for consistency
UK/EU Trademarkeuipo.europa.euIf selling internationally, check this registry too

Step 3 — Register Your Domain

Once confirmed clear, register it immediately — before announcing anything.

RegistrarBest ForNotes
NamecheapBest value overallFree WHOIS privacy, easy DNS management, iPad-friendly UI
Google DomainsSimplicityClean UI, auto-renew, integrates with Google Workspace
CloudflareCost + securityAt-cost pricing (no markup), excellent DNS — requires Cloudflare account
IONOSBundlingGood if also buying email hosting from them
GoDaddyAvoidAggressive upsells, privacy costs extra, hard to leave

Step 4 — Subdomain Strategy

Once you have a root domain, serve multiple apps from subdomains — all pointing to your single droplet via A records.

  • yourapp.com — main marketing / landing page
  • app.yourapp.com — the actual product (authenticated app)
  • docs.yourapp.com — documentation or API reference
  • status.yourapp.com — uptime page (professional touch)

Step 5 — Email Setup

A branded email (you@yourapp.com) is non-negotiable for credibility. Options: Zoho Mail (free tier), Google Workspace ($6/mo), or Mailgun for transactional email only.

TIP: Register the domain the day you decide on the name. Domains cost $10–15/year. Losing a name you've built a product around costs far more.
01
The iPad Dev Mindset
Constraints as a superpower
FOUNDATION

Most developers wait for the perfect setup. Meanwhile, the market doesn't wait. This module reframes the iPad not as a limitation — but as a filter that forces clarity, speed, and shipping bias.

"Done on an iPad" is not an excuse. It's a flex.

Why Constraints Win

  • You can't over-engineer from a glass screen — ship or nothing
  • Mobile-first workflows produce mobile-aware products
  • The constraint becomes your story, and your story sells
  • You prove to buyers that you shipped under pressure — they trust the guide

The Shipping Mindset Checklist

  • I will deploy before it's perfect
  • I will use real payment links, not demo mode
  • I will post the Stripe dashboard screenshot
  • I will document the process as I build
  • I will sell access to what I know, not just what I built
TIP: Write one sentence about what you're building and who it helps before you write one line of code. That sentence becomes your marketing.
02
Your Stack
Tools that make it possible
INFRASTRUCTURE

This isn't a list of apps — it's a system. Every tool has a specific job and connects to the others. Swap nothing until you've shipped your first paid product.

The Full Stack

Termius
SSH Client
Your terminal. Full keyboard support, persistent sessions, profiles per server.
VS Code Server
IDE
Full VS Code running on your DigitalOcean droplet, accessible from Safari/Opera on iPad.
GitHub
Version Control
Every project gets a repo. Push from VS Code Server via the built-in terminal.
DigitalOcean
Cloud Host
Ubuntu droplet at a fixed IP. nginx serves your React apps. $6/mo.
Opera
Browser
Best iPad browser for dev: tab management, built-in VPN, doesn't fight VS Code Server.
Supabase
Backend
PostgreSQL + auth + storage. Full dashboard from iPad browser. No local DB needed.
Stripe
Payments
Payment Links require zero code. Dashboard is fully functional on iPad.
TIP: Set up VS Code Server on your droplet once, then bookmark it in your browser. This is your primary IDE for everything that follows.
03
Scaffold to Ship
Vite + React + Tailwind
CORE WORKFLOW

You will scaffold, build, and deploy a React app without touching a desktop. This is the core workflow that underlies every app in the Newton Associates portfolio.

Step 1 — SSH into your droplet

ssh root@YOUR_DROPLET_IP

Step 2 — Scaffold the app

npm create vite@latest my-app -- --template react cd my-app && npm install npm install -D tailwindcss postcss autoprefixer npx tailwindcss init -p

Step 3 — Configure Tailwind

content: ["./index.html", "./src/**/*.{js,jsx}"]

Step 4 — .env file rules (critical)

Vite reads variables prefixed with VITE_. Never use backticks in .env values — they break the parser silently.

VITE_SUPABASE_URL=https://yourproject.supabase.co VITE_SUPABASE_ANON_KEY=eyJhbGci...

Step 5 — nginx config for React Router SPAs

Without this, direct URL hits return a 404. Add inside your server block:

location / { try_files $uri $uri/ /index.html; }

Step 6 — File permissions fix

chmod o+x /root

nginx runs as www-data and can't read files in /root without execute permission. This is the silent 403 fix.

TIP: Build in VS Code Server. Deploy by running 'npm run build' and copying /dist into your nginx serve directory. No CI/CD needed on day one.
04
Database & Auth
Supabase from mobile
BACKEND

Supabase gives you PostgreSQL, row-level security, and auth — all configured from a browser. No local database. No Docker. Everything you need is at app.supabase.com from your iPad.

Core Tables to Set Up First

profiles: user_id (FK to auth.users), display_name, created_at waitlist: email, source, created_at — UNIQUE on email accounts: user_id, name, type, balance transactions: user_id, account_id, amount, category, date

Row-Level Security Pattern

Always enable RLS on every table. The core policy that covers 90% of use cases:

USING (auth.uid() = user_id)

Apply as both SELECT and INSERT policy. Users only see and write their own rows.

Supabase Auth in React

import { createClient } from '@supabase/supabase-js' const supabase = createClient(VITE_URL, VITE_KEY) await supabase.auth.signInWithPassword({ email, password }) await supabase.auth.signUp({ email, password })
TIP: Use Supabase's Table Editor (browser UI) to seed test data and verify RLS is working before writing any frontend code.
05
Payments in a Weekend
Stripe without a desktop
REVENUE

Stripe's redirectToCheckout was deprecated in late 2025. The new standard is Payment Links — and they're actually better for iPad-first devs because you create them entirely in the Stripe dashboard, no code required.

Creating a Payment Link (no code)

  1. Go to dashboard.stripe.com → Payment Links → Create
  2. Add your product (name, price, image)
  3. Set the success redirect URL (e.g. your app + /success)
  4. Copy the Payment Link URL
  5. Paste it as your CTA button's href — done

Switching Sandbox to Live Mode

  • Toggle the dashboard from 'Test mode' to 'Live mode' (top-left switch)
  • Recreate your Payment Links in live mode — test links don't carry over
  • Replace .env STRIPE keys with live keys (sk_live_ and pk_live_)
  • Submit business details under Settings → Business to activate payouts

Persisting Purchase State Across Redirect

localStorage.setItem('pending_product', productId) // On /success page: const pending = localStorage.getItem('pending_product')
TIP: Get your first Stripe live payment before building any more features. One real dollar beats 1,000 sandbox transactions.
06
Deploy & DNS
DigitalOcean + nginx from iPad
DEVOPS

Your droplet is your production server. Every app gets its own nginx config and subdomain. This is the full deploy sequence, runnable entirely from Termius or VS Code Server terminal on your iPad.

Full Deploy Sequence

  1. npm run build — build the app
  2. cp -r dist/* /var/www/myapp/ — copy to serve dir
  3. Create nginx config at /etc/nginx/sites-available/myapp
  4. ln -s .../sites-available/myapp .../sites-enabled/
  5. nginx -t — test config
  6. systemctl reload nginx
  7. certbot --nginx -d app.yourapp.com

nginx Config Template

server { listen 80; server_name app.yourapp.com; root /var/www/myapp; index index.html; location / { try_files $uri $uri/ /index.html; } }

DNS at DigitalOcean

Add an A record pointing your subdomain to your droplet IP. TTL of 300 means changes propagate in 5 minutes.

TIP: Use journalctl -u nginx -f to tail nginx logs in real time while you debug — runs fine from Termius.
07
Monetize the Build
Turning apps into income
INCOME STRATEGY

Every app you ship is also a content asset, a proof-of-expertise artifact, and a distribution node. Extract income from the same work at multiple price points — without building anything new.

The Three-Layer Income Stack

Layer 1
$0–$27
Free content → email list. Reels and posts about the build process. Give away the "what". Sell the "how".
Layer 2
$27–$197
Digital products: this guide, Notion templates, checklists, code starters. Sell on Gumroad, Etsy, or your own site.
Layer 3
$497–$2,000+
Consulting / done-with-you. Office hours. Code reviews. 1-hour build session calls. Sell access to you, not just docs.
Layer 2 add-on — The Solo Dev Notion Add On: Step-by-step instructions for building the Notion workspace that runs alongside your app: a project tracker, launch checklist, client dashboard, and content calendar — all as ready-to-duplicate templates. The perfect companion to this guide. Available separately.
"You already did the hard part — you shipped. Most people never ship. That gap between you and them is the product."

Where to Sell This Guide

PlatformSetupBest For
Gumroad15 minInstant — zero code, handles tax
Your site1 hourFull brand control, Stripe direct
Etsy30 minDiscovery — buyers searching "dev guides"
Payhip20 minEU VAT handled automatically
TIP: Price this guide at $27 to start. After 10 sales, raise to $47. After 25, raise to $97. The content doesn't change — the social proof does.

Now ship it.

You have the stack. You have the workflow. You have the receipts. Choose your platform, list the product, and get it in front of people.

For support contact help@newton.associates

What Comes Next

Your Next Product in the Solo Dev Series

Market Your App — The Solo Dev Playbook: the complete system for getting your app in front of the people who need it. Marketing is not optional. You could have the world's greatest app — but if no one knows it exists, it essentially doesn't. It's the multiplier on everything you've built. Market Your App: The Solo Dev Playbook covers content strategy, Instagram funnels, email sequences, and launch tactics — Available separately.

For support contact help@newton.associates