Ship log
Why it's so hard to make money on the internet (Physician Forge by the numbers)
116 pageviews, 32 visitors, a month on hold, and a full Stripe stack — what first-party analytics actually show about building online when medicine keeps winning the calendar.

I’ve been running Physician Forge long enough to have a podcast, a Facebook group, essays people still email me about, and a Stripe account that could take your money tomorrow.
What I didn’t have, until last week, was a honest count of who actually showed up.
So I wired first-party analytics — same idea as The Direct Care List — SQLite on the VPS, no Google, a public Stats page anyone can load. Then I kept building: Discord OAuth checkout, a Grok bot, dark-mode articles, ship logs, expense packets for employed members who might reimburse $390/yr.
This essay is what the numbers say when you stop pretending the infra equals revenue.
The numbers (Sep 2, 2026)
All of this is live on /analytics/. Refresh it; the counts move.
| Metric | Value |
|---|---|
| Pageviews (measured) | 116 |
| Unique visitors | 32 |
| Peak day | Aug 31 — 50 views, 18 uniques |
| Countries | 4 (US 100, CA 11, CN 3, VN 1) |
| Days with data | 5 (Aug 29 → Sep 2) |
| Paying members in Stripe↔Discord map | 0 |
116 pageviews is not a typo. The homepage got 42 of them. Join and Journal tied at 14 each. My long financial freedom essay — the one I tell every writer on this site to match — got 2.
The only ship log with real reading signal so far is Launching on OrthoAndSpineTools: 2 views, 2 engaged (30+ seconds), 1 scroll past 75%, 1 to the end. Sample size of two. Still: that’s what “someone actually read it” looks like in the database.

Aug 31 was the spike — 50 views. That’s the day the rebuild, Search Console sitemap, and ship logs hit together. Not organic gravity yet. A launch pulse.


I show you this because the internet sells a different movie. The movie says: build audience, flip a switch, print. The spreadsheet says: you can ship OAuth-to-Stripe-to-Discord-role automation for a month and still be at zero mapped subscriptions while you’re in the OR.
That’s not failure. That’s the default.
The project was dormant before it was “new”
The brand is older than this VPS repo. Essays and podcast episodes lived on SiteGround for years while I operated, raised kids, and kept a spine practice.
The 2026 repo timeline is sharper:

- Jul 2 — Bootstrapped the standalone project on the VPS. Same night: on hold until drewalbertmd.com proved the Astro + headless WordPress path.
- Jul 2 → Jul 28 — Twenty-six days dormant in git. Not because I lost interest. Because surgery and one migration at a time.
- Jul 28 — Hold lifted. SiteGround export, Astro scaffold, CMS staging.
- Aug 10 — Cutover attempt. DNS reverted to SiteGround for
@/www. Live traffic kept hitting the old host while I fixed permalinks and imports. - Aug 29 — Redesign on staging, analytics shipped, Discord bot scaffold.
- Aug 30–31 — Stripe OAuth, dark UI, Stats globe, ship logs, article engagement tracking, IndexNow, Search Console.
Code says “launched Aug 10.” SQLite says tracking started Aug 29. Nineteen days of “live” I can’t graph.
If you’ve ever wondered why your side project feels like it stalls — this is it. Calendar time ≠ compound time. Dormant weeks don’t show up in GitHub green squares as “loss,” but they show up everywhere that matters: search rank, email list temperature, member habit, your own momentum.
What we built for 116 views
Here’s the uncomfortable part. The build surface is not small:
- Astro frontend, WordPress headless CMS, staging → promote pipeline
- First-party analytics + live GeoIP globe
- Discord bot with Grok (
/ask), moderation,/expense, strict admin gate on paid roles - OAuth → Stripe Checkout → webhook → Forge Member role (with pending retry)
- Expense packet — invoice, vendor sheet, W-9 worksheet — for hospital reimbursement
llms.txt, JSON-LD, markdown twins, IndexNow, RSS,/feed.json- Ship logs in the Journal feed, dark/light theme, article scroll depth
That’s easily a $20–50k agency SOW if you quoted it cold. Revenue so far from membership in our Stripe map: zero.
The join page got the same 14 views as the journal index. Fourteen people saw $39/mo · $390/yr. I don’t know how many started OAuth. I know how many completed into the role map: none recorded.
So when people ask “can you make money online?” — I read it as two questions:
- Can humans pay for things on the internet? Yes.
- Does building the thing that collects money mean you will collect money? No. Not even close.
Why it’s hard (the boring reasons)
Free is the strongest competitor. My essays compete with Reddit, White Coat Investor, ChatGPT, and a thousand “physician side hustle” threads. Discord competes with free Facebook groups I run. The paid pitch has to beat $0 and good enough — not beat a worse paid product.
Distribution ≠ product. I can wire Stripe in a week. I cannot wire trust in a week. Trust is rereads, screenshots in group chats, someone saying “I joined and it wasn’t weird,” showing up for a year.
Attention is cheap; intent is rare. Fifty views on a rebuild day is easy. Fifty employed physicians who want to build and will type a card number is a different species. Stats mixes them unless you separate funnel steps — which we now can, and which still won’t flatter you.
Time is zero-sum with medicine. Every OR day pushes the project one day further from habit. The internet rewards continuity. Medicine rewards showing up for patients. Something had to give; for three weeks in July, it was this repo.
AI raised the floor on “content.” It did not raise the floor on verified human judgment in a niche. It flooded the zone with “10 passive income ideas for doctors” sludge. That makes real writing harder to find, not easier to monetize.
What the graph doesn’t show (but still costs)
- Years of WordPress essays still indexed from the old host era
- Podcast episodes on Spotify/Anchor
- Facebook group culture (free layer)
- Ortho & Spine Jobs, The Direct Care List, OrthoAndSpineTools — sibling products that eat the same founder hours
- Reputation among surgeons who don’t show up in pageviews
Physician Forge is one node in a portfolio. That’s smarter than betting everything on one landing page — and still one human’s calendar.
What might actually be durable in the AI era
I’m not going to sell you a framework poster. These are the patterns I trust after doing this with real numbers and real time constraints.
1. Tools where someone already has a job to do
Directories, job boards, clinic finders, MAUDE charts, scheduling — places where the user arrives with intent, not mood. AI summarizes; it doesn’t replace “show me every open spine job in Texas” or “map DPC clinics near this ZIP.” TDCL’s sponsor rail works because the visitor is shopping. Physician Forge’s Join page is harder because the visitor is browsing.
2. Proof that a human was there
NPI verification, founder badges, named case studies, ship logs with screenshots and broken parts included. Models can generate copy. They can’t generate your OR schedule and the week the DNS reverted. Durability looks like verifiable specificity.
3. Small rooms with a high bar
Not “community” as a SKU — a room where paying is cheaper than missing a hire, a referral, or a teardown of your cap table. Discord at $390/yr only works when the alternative is lonely building or bad advice from people who’ve never invoiced anything.
4. B2B slices of your own niche
Recruiting fees, featured listings, verified vendor slots — money from budgets, not wallets. Physicians spend their own $39 reluctantly. Hospitals spend someone else’s four figures for a filled locums slot.
5. Assets that sleep
Essays, SEO pages, automation, bots, checkout — things that keep working when you’re in clinic. The goal isn’t passive income fairy dust. It’s not starting from zero every Saturday.
6. Writing that survives summarization
If ChatGPT can replace your post in one paragraph, you wrote a paragraph’s worth of value. The financial freedom essay still gets emails because it reads like a person thinking, not a listicle. That’s slower. It’s also why it’s still there years later.
What I’m doing with this
I’m not abandoning Physician Forge. I’m also not lying about the curve.
The site stays the trust layer — essays, ship logs, transparent stats. Money probably lands harder on OSJ, TDCL, OST first (transactional intent), with Discord as the inner circle for people who want the room.
I’ll keep publishing with ./scripts/publish.sh so sitemap, RSS, and IndexNow don’t depend on my memory. I’ll watch engaged reads, not vanity views. I’ll write in public when there’s something true to say, not because cadence cosplay.
If you’re building alongside medicine: 116 pageviews and zero mapped subs is a normal Tuesday, not evidence you should quit. It’s evidence the internet bills upfront in time and rarely pays on the same calendar.
Build something useful enough that a stranger pays while you sleep — or while you’re in a case. Measure it honestly. Rest when surgery wins the week. Come back. That’s the whole game.
All traffic figures from first-party SQLite analytics on physicianforge.com, snapshot Sep 2, 2026. Live counters: /analytics/.
Keep reading
- What I Wish I Would Have Known About Building Financial FreedomWhere the W2 plan stops and assets start.
- Starting the Forge rebuild in publicThe August rebuild this essay measures.
- Don't Quit Medicine. Build Leverage.Keep the license. Build anyway.
- Launching ortho startups on OrthoAndSpineToolsProduct-led distribution in one subspecialty.
- I got tired of running five Discord bots, so I built oneMembership, moderation, and Grok in one Physician Forge bot — what broke with the bot pile, what’s live now, and how /ask actually works.
- Leadership Principles: A field guide for Resident and Attending Physicians, 1st Ed.Introduction What makes this book stand out? Many concepts and quotes in this section come straight from research we hav