# Why it's so hard to make money on the internet (Physician Forge by the numbers)

> Source: https://physicianforge.com/building/why-making-money-online-is-hard/
> Author: Drew Albert
> Published: 2026-09-03
> Reading time: 7 min
> Tags: business, analytics, side-projects, ai
> Type: Ship log
> Site: Physician Forge — Where physician-builders find each other

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](https://thedirectcarelist.com/analytics/) — SQLite on the VPS, no Google, a public [Stats page](/analytics/) 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/](/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](/what-i-wish-i-would-have-known-about-building-financial-freedom/) — 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](/building/launching-startups-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.

![Daily pageviews since analytics went live](/images/journal/pf-analytics-daily-traffic.png)

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.

![Cumulative traffic and daily uniques](/images/journal/pf-analytics-cumulative-traffic.png)

![Where the 116 views went](/images/journal/pf-analytics-top-paths.png)

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:

![Physician Forge repo timeline — bootstrap, hold, cutover, analytics](/images/journal/pf-project-timeline-2026.png)

- **Jul 2** — Bootstrapped the standalone project on the VPS. Same night: **on hold** until [drewalbertmd.com](https://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:

1. **Can humans pay for things on the internet?** Yes.
2. **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](https://orthoandspinejobs.com), [The Direct Care List](https://thedirectcarelist.com), [OrthoAndSpineTools](https://orthoandspinetools.com) — 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](https://thedirectcarelist.com/#sponsor) 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](/what-i-wish-i-would-have-known-about-building-financial-freedom/) 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/](/analytics/).*

---

Canonical HTML: https://physicianforge.com/building/why-making-money-online-is-hard/
Journal: https://physicianforge.com/journal/
Membership: https://physicianforge.com/physician-forge-community/
