shipping/JOG — 03:41 GMT+7/48.3 °C CPU/v 07.0 · build 2026.05.12
lat −7.7956 · lon 110.3695/ntwk · online/open for projects
back to notesnotes2026slc-discipline-edmund-yong
[ essay no. 07 ]solo-buildmay 15, 20268 min1,634 wordsrevision 1live

SLC, tested in my own pipeline

Simple · Lovable · Complete. Edmund Yong ships a profitable app every few months holding that line. I ran one weekend through the same filter — trade-offs sharper than the YouTube edits make them look.

d
devrangga hazza mahiswaracreative engineer · jogja, id
share on 𝕏

SLC, tested in my own pipeline

Simpleone feature path · no detours
Lovablepolish at v1, not v2
Completeauth, pay, core flow · day one
1 wkndthe test I ran on it
Edmund Yong@edmundyong

Solo founder building profitable apps with AI tooling. Slow launches, real revenue, real rejection counts.

The first time I heard "Simple · Lovable · Complete" I dismissed it as an acronym. It's three words, and acronyms are how people sell consulting frameworks. Then I watched a second Edmund Yong video, then a third, and noticed every shipping decision in his process rolled back to those three letters. By the fifth video I was paused at 03:14 of his YouTube Transcripts.io build, writing the words on a sticky note above my monitor.

The discipline isn't the acronym. It's the order. Simple first, then lovable, then complete. Most engineers reverse it — they build complete, polish toward lovable, and accidentally arrive at over-complicated. SLC inverts the pressure.

This post is what I learned applying that order to a side project I'd been bloating for two months.

01

what SLC actually says

Edmund's framing across the playlist is consistent. You ship v1 of something simple, not v0.1 of something complex.

  • Simple: one feature path. One clear problem solved one clear way. The opposite of "and then we could also..."
  • Lovable: polish at v1. The UI doesn't have to be feature-rich; it has to be a thing people want to use, not a thing they tolerate.
  • Complete: every essential surface ships on day one. Auth, payments, the core loop. No "we'll add login later."
— source · Edmund Yong · @edmundyong · full · roadmap framing"How I Code Profitable Apps SOLO (no wasted time)"— source · Edmund Yong · @edmundyong · SLC defined · founder goggles section"Building a Profitable App from Scratch SOLO ($1K+ MRR in 1 Month)"

The most counterintuitive piece is "complete." Most engineering culture defaults to MVP — minimum viable, ship-it, the rest comes later. SLC says: if the loop isn't complete, you don't have v1; you have a demo. Demos don't convert. Complete loops do.

02

scratch your own itch is the first filter, not a slogan

Edmund's first rule across every project: build what you'd use yourself. Easy to dismiss as romantic advice. It isn't. It's a motivation hedge.

— source · Edmund Yong · @edmundyong · YouTube Transcripts.io origin story"How I Coded ANOTHER Profitable App SOLO"

Every side project hits a wall around week three when the novelty wears off and the work becomes plumbing. If you don't personally use what you're building, week three kills the project. If you do use it, the plumbing becomes annoying-but-tolerable, because every fix you make is a fix you also benefit from.

The corollary nobody says out loud: this rules out a lot of "good ideas." A SaaS for restaurant inventory management is a fine idea. If you're not a restaurant operator, you will quit it in November. SLC is honest about this — the funnel starts at "would I open this app on a Tuesday morning before coffee?"

03

validate before building

Edmund's "painkiller framework" — does this product solve a painkiller need, or is it a vitamin? — is the validation step before code.

— source · Edmund Yong · @edmundyong · painkiller framework · landing page test"How I Built ANOTHER Profitable App From Scratch SOLO (Fluently)"

The mechanics are blunt. Search volume on the problem. Reddit threads with people complaining about the gap. Competitor research to confirm the market exists. A landing page with a waitlist before the first commit. If the landing page doesn't convert at some honest baseline, you've found out the cheap way that nobody wants this.

For engineers this is uncomfortable because it pushes the gratifying work — writing the code — back by a week or two. The week feels like procrastination. It isn't. It's the only week where you can still cheaply discover that the project shouldn't happen.

04

competitors are validation, not blockers

This is the most counterintuitive piece for engineers specifically. We see a 350,000-user incumbent and conclude the market is taken. Founders see the same incumbent and conclude the market is real.

— source · Edmund Yong · @edmundyong · competitor analysis section"How I Coded ANOTHER Profitable App SOLO"

The failure mode this prevents is the engineer's instinct to find an empty market and build the first product in it. Empty markets are usually empty for a reason. Competing against a 350k-user incumbent on UX, price, or a specific differentiator is a real fight, but it's a fight where someone has already done the expensive work of proving the problem.

The Edmund Yong move is: pick the part of the incumbent's product that's worst, build only that part, charge less or care more.

05

speed is the solo-founder edge — and not for the reason you think

The line "ship to production multiple times a day, no meetings, no sign-offs" gets repeated enough that it sounds like a productivity flex. It isn't.

— source · Edmund Yong · @edmundyong · rock + app store rapid launch"How I Coded a Mobile App in 48 Hours SOLO"

The real point is that iteration speed compounds. A solo founder shipping daily learns three things a week. A team shipping fortnightly learns three things a quarter. Six months in, the solo founder has had 78 learning cycles to the team's 13. The compounding gap is the actual advantage; speed is just the mechanism.

The constraint people miss: you only get this advantage if every deploy is small enough to deploy. The discipline isn't speed; it's keeping changes small enough that shipping them isn't a project of its own.

06

the test — one weekend through the SLC filter

I had a side project I'd been bloating for two months. A small tool for indexing my own notes and answering questions across them. Original scope: vector embeddings, a custom UI, sync to multiple devices, OAuth, a billing layer for "future maybe."

I ran it through SLC over one weekend.

Simple killed the OAuth and the billing. The product solves one problem — search across my notes — and adds nothing else. If I never need to ship it to anyone but me, it doesn't need login.

Lovable killed the custom UI I'd half-built. The honest version is a search input and a list of results with snippets. I designed it once, in Figma, in 25 minutes, and committed not to redesign it for the v1 cycle.

Complete killed sync. Sync is a feature I'd want at month three of using the tool, not at week one. The week-one need is "search works fast on the laptop I'm sitting in front of." If sync mattered, I'd ship it later; if it didn't, I'd just have learned that I never actually used the tool from a second device.

The weekend produced a working tool. It indexes about 3,400 of my notes and answers questions in under 200ms on my laptop. I've opened it most days since. That's the SLC test: did I actually use it the week after I shipped it?

07

where the framework leaks

SLC works well for B2C consumer apps with a clear painkiller. It gets weird in three places I want to be honest about.

B2B with mandatory integrations. You can't ship "simple" if the IT review process needs SSO, audit logs, and a SOC 2 attestation. The "complete" requirement balloons into things that take six months. SLC for B2B works only if you target the no-procurement segment — solopreneurs, small teams using personal cards.

Regulated domains. A health-data tool, a financial tool, anything with PII compliance. Auth, payments, and the core flow on day one becomes auth, payments, audit trail, encryption-at-rest, BAAs, region-specific compliance, and an incident-response process on day one. The "complete" definition is just bigger.

Tools for engineers. Engineers tolerate v0.1 differently than consumers do. We'll use a tool with a broken UI if the underlying capability is real. Lovable becomes less important; complete becomes more important. The SLC weight shifts.

In each case, the framework still works — you just have to be honest about what the words mean in your domain.

08

what I'm reusing forever

The single most durable piece is "Lovable" being at v1, not v2. That line cuts the death spiral of "I'll fix the UI later."

Lovable means people want to use it. Not feature-packed — polished enough that opening it doesn't feel like a chore.

edmund yong · solo apps playlist

In my Hino Workflow build for a separate enterprise client, the v1 surfaces had been functional-but-rough for three weeks before someone in ops said the line that re-anchored me — "the platform is the first thing I open in the morning and the last thing I close." That's the Lovable test, said back to me in plain language by the user. If your v1 isn't there, you don't have v1 yet. You have a beta you forgot to call a beta.

The Edmund Yong playlist is small — seven videos — but it lands because the framework has been pressure-tested across actual products that made actual money on actual timelines. That's the only kind of advice worth importing into your own work.

— end of essay · published may 15, 2026 · 1,634 words · 8 min
[ if this moved you ]

keep reading.

three essays in the same key · pick one