[{"data":1,"prerenderedAt":780},["ShallowReactive",2],{"navigation":3,"\u002Fpete-the-indie-hacker":28,"\u002Fpete-the-indie-hacker-surround":775},[4,8,12,16,20,24],{"title":5,"path":6,"stem":7},"Overview","\u002Foverview","1.overview",{"title":9,"path":10,"stem":11},"The ICP","\u002Ficp","2.icp",{"title":13,"path":14,"stem":15},"Pete","\u002Fpete-the-indie-hacker","3.pete-the-indie-hacker",{"title":17,"path":18,"stem":19},"Max","\u002Fmax-the-product-engineer","4.max-the-product-engineer",{"title":21,"path":22,"stem":23},"Laura","\u002Flaura-the-founding-cto","5.laura-the-founding-cto",{"title":25,"path":26,"stem":27},"Marcus","\u002Fmarcus-the-platform-engineer","6.marcus-the-platform-engineer",{"id":29,"title":30,"body":31,"cover":744,"description":745,"extension":746,"meta":747,"navigation":748,"path":14,"persona":749,"seo":773,"stem":15,"__hash__":774},"personas\u002F3.pete-the-indie-hacker.md","Pete, the indie hacker",{"type":32,"value":33,"toc":726},"minimark",[34,39,107,111,115,122,126,341,345,361,365,524,527,531,593,596,600,617,620,624,638,642,645,651,654,658,675,681,685,696,700,708,712],[35,36,38],"h2",{"id":37},"snapshot","Snapshot",[40,41,42,55],"table",{},[43,44,45],"thead",{},[46,47,48,52],"tr",{},[49,50,51],"th",{},"Fact",[49,53,54],{},"Detail",[56,57,58,67,75,83,91,99],"tbody",{},[46,59,60,64],{},[61,62,63],"td",{},"Age",[61,65,66],{},"16-38",[46,68,69,72],{},[61,70,71],{},"Team size",[61,73,74],{},"Solo: product, support, billing, and infrastructure are one person",[46,76,77,80],{},[61,78,79],{},"Company",[61,81,82],{},"One to three products in production, at least one making money",[46,84,85,88],{},[61,86,87],{},"Revenue",[61,89,90],{},"$0-$30k MRR; every subscription re-justified monthly",[46,92,93,96],{},[61,94,95],{},"Location",[61,97,98],{},"Anywhere: Lisbon, Austin, Bali, Berlin, Lagos; often nomadic",[46,100,101,104],{},[61,102,103],{},"Tell",[61,105,106],{},"Signs up with a personal email; the workspace is \"Pete's Workspace\"",[35,108,110],{"id":109},"a-day-in-their-life","A day in their life",[112,113,114],"p",{},"Wakes up, checks Stripe before coffee. Scrolls X, replies to a customer, ships a feature their coding agent mostly wrote, deploys straight to production at 11pm because there is no one to ask. There is no staging environment worth the name, no runbook, and no monitoring beyond the platform dashboard they forget to open. When something breaks, the discovery mechanism is a customer email, a refund request, or a dip on the revenue graph. The worst incidents are the quiet ones: a cron job that stopped three weeks ago, a queue silently retrying forever.",[112,116,117],{},[118,119],"img",{"alt":120,"src":121},"Pete's desk at 4am: laptop glow, cold coffee, city lights","\u002Fart\u002Fpete-scene.jpg",[35,123,125],{"id":124},"stack-and-tools","Stack and tools",[40,127,128,138],{},[43,129,130],{},[46,131,132,135],{},[49,133,134],{},"Tool",[49,136,137],{},"The job it does",[56,139,140,151,162,173,189,200,216,227,238,254,265,276,287,298,314,325],{},[46,141,142,148],{},[61,143,144,146],{},[118,145],{"alt":146,"src":147},"TypeScript","\u002Flogos\u002Ftypescript.svg",[61,149,150],{},"The whole product in one language, end to end",[46,152,153,159],{},[61,154,155,157],{},[118,156],{"alt":157,"src":158},"Cloudflare","\u002Flogos\u002Fcloudflare.svg",[61,160,161],{},"Workers, Pages, D1, R2, KV, Queues: often the entire product",[46,163,164,170],{},[61,165,166,168],{},[118,167],{"alt":168,"src":169},"Vercel","\u002Flogos\u002Fvercel.svg",[61,171,172],{},"The other common home; deploys straight from the repo",[46,174,175,186],{},[61,176,177,181,182,184],{},[118,178],{"alt":179,"src":180},"Fly.io","\u002Flogos\u002Ffly.svg","Fly.io \u002F ",[118,183],{"alt":184,"src":185},"Render","\u002Flogos\u002Frender.svg",[61,187,188],{},"A container or a cron when something will not fit a Worker",[46,190,191,197],{},[61,192,193,195],{},[118,194],{"alt":195,"src":196},"Supabase","\u002Flogos\u002Fsupabase.svg",[61,198,199],{},"Postgres, auth, and storage in one signup",[46,201,202,213],{},[61,203,204,208,209,211],{},[118,205],{"alt":206,"src":207},"PlanetScale","\u002Flogos\u002Fplanetscale.svg","PlanetScale \u002F ",[118,210],{"alt":211,"src":212},"Turso","\u002Flogos\u002Fturso.svg",[61,214,215],{},"The database once it needs to be serious, or SQLite at the edge",[46,217,218,224],{},[61,219,220,222],{},[118,221],{"alt":222,"src":223},"Upstash","\u002Flogos\u002Fupstash.svg",[61,225,226],{},"Redis and queues, paid by the request",[46,228,229,235],{},[61,230,231,233],{},[118,232],{"alt":233,"src":234},"GitHub","\u002Flogos\u002Fgithub.svg",[61,236,237],{},"Everything; deploy config lives next to the code",[46,239,240,251],{},[61,241,242,246,247,249],{},[118,243],{"alt":244,"src":245},"Claude","\u002Flogos\u002Fclaude.svg","Claude Code \u002F ",[118,248],{"alt":249,"src":250},"Cursor","\u002Flogos\u002Fcursor.svg",[61,252,253],{},"Writes most of the code; they review less of it than they admit",[46,255,256,262],{},[61,257,258,260],{},[118,259],{"alt":260,"src":261},"OpenAI","\u002Flogos\u002Fopenai.svg",[61,263,264],{},"The API behind whatever the product's AI feature is this month",[46,266,267,273],{},[61,268,269,271],{},[118,270],{"alt":271,"src":272},"Stripe","\u002Flogos\u002Fstripe.svg",[61,274,275],{},"Revenue, checked before coffee",[46,277,278,284],{},[61,279,280,282],{},[118,281],{"alt":282,"src":283},"Resend","\u002Flogos\u002Fresend.svg",[61,285,286],{},"Transactional email in ten minutes",[46,288,289,295],{},[61,290,291,293],{},[118,292],{"alt":293,"src":294},"Clerk","\u002Flogos\u002Fclerk.svg",[61,296,297],{},"Auth they refuse to build themselves",[46,299,300,311],{},[61,301,302,306,307,309],{},[118,303],{"alt":304,"src":305},"PostHog","\u002Flogos\u002Fposthog.svg","PostHog \u002F ",[118,308],{"alt":309,"src":310},"Plausible","\u002Flogos\u002Fplausible.svg",[61,312,313],{},"Just enough analytics to see the graph dip",[46,315,316,322],{},[61,317,318,320],{},[118,319],{"alt":320,"src":321},"Notion","\u002Flogos\u002Fnotion.svg",[61,323,324],{},"The doc that functions as the company",[46,326,327,338],{},[61,328,329,333,334,336],{},[118,330],{"alt":331,"src":332},"Axiom","\u002Flogos\u002Faxiom.svg","Axiom \u002F ",[118,335],{"alt":336,"src":337},"Better Stack","\u002Flogos\u002Fbetterstack.svg",[61,339,340],{},"Free-tier logs and an uptime check; anything heavier is enterprise prices for enterprise problems",[35,342,344],{"id":343},"goals-and-motivations","Goals and motivations",[346,347,348,352,355,358],"ul",{},[349,350,351],"li",{},"Keep the products alive and the revenue graph up with minimum operational attention.",[349,353,354],{},"Wake up to resolved problems, not alerts. They do not want a monitoring practice; they want the outcome of one.",[349,356,357],{},"Look more professional than a one-person shop: fast incident response makes a solo product feel like a company.",[349,359,360],{},"Stay in flow. Anything that demands configuration, threshold tuning, or dashboard-watching is a tax on shipping.",[35,362,364],{"id":363},"where-they-hang-out","Where they hang out",[40,366,367,377],{},[43,368,369],{},[46,370,371,374],{},[49,372,373],{},"Where",[49,375,376],{},"What it is to them",[56,378,379,393,405,433,445,462,485,506],{},[46,380,381,390],{},[61,382,383],{},[384,385,389],"a",{"href":386,"rel":387},"https:\u002F\u002Fx.com",[388],"nofollow","X\u002FTwitter",[61,391,392],{},"The build-in-public scene, revenue screenshots, launch threads. Their primary social and professional graph",[46,394,395,402],{},[61,396,397],{},[384,398,401],{"href":399,"rel":400},"https:\u002F\u002Fnews.ycombinator.com",[388],"Hacker News",[61,403,404],{},"Lurks daily, comments occasionally, launches with a Show HN",[46,406,407,430],{},[61,408,409,414,415,414,420,414,425],{},[384,410,413],{"href":411,"rel":412},"https:\u002F\u002Fwww.indiehackers.com",[388],"Indie Hackers",", ",[384,416,419],{"href":417,"rel":418},"https:\u002F\u002Fwip.co",[388],"WIP.co",[384,421,424],{"href":422,"rel":423},"https:\u002F\u002Fwww.reddit.com\u002Fr\u002FSaaS\u002F",[388],"r\u002FSaaS",[384,426,429],{"href":427,"rel":428},"https:\u002F\u002Fwww.reddit.com\u002Fr\u002FSideProject\u002F",[388],"r\u002FSideProject",[61,431,432],{},"Peer group and accountability",[46,434,435,442],{},[61,436,437],{},[384,438,441],{"href":439,"rel":440},"https:\u002F\u002Fwww.producthunt.com",[388],"Product Hunt",[61,443,444],{},"Launch days, theirs and others'",[46,446,447,459],{},[61,448,449,414,454],{},[384,450,453],{"href":451,"rel":452},"https:\u002F\u002Fdiscord.cloudflare.com",[388],"Cloudflare Developers Discord",[384,455,458],{"href":456,"rel":457},"https:\u002F\u002Fcommunity.vercel.com",[388],"Vercel community",[61,460,461],{},"Platform communities for whatever they build with",[46,463,464,467],{},[61,465,466],{},"YouTube",[61,468,469,414,474,414,479,484],{},[384,470,473],{"href":471,"rel":472},"https:\u002F\u002Fwww.youtube.com\u002F@t3dotgg",[388],"Theo (t3.gg)",[384,475,478],{"href":476,"rel":477},"https:\u002F\u002Fwww.youtube.com\u002F@Fireship",[388],"Fireship",[384,480,483],{"href":481,"rel":482},"https:\u002F\u002Fwww.youtube.com\u002F@ThePrimeagen",[388],"ThePrimeagen"," clips",[46,486,487,490],{},[61,488,489],{},"Podcasts",[61,491,492,414,496,414,501],{},[384,493,413],{"href":494,"rel":495},"https:\u002F\u002Fwww.indiehackers.com\u002Fpodcast",[388],[384,497,500],{"href":498,"rel":499},"https:\u002F\u002Fwww.mfmpod.com",[388],"My First Million",[384,502,505],{"href":503,"rel":504},"https:\u002F\u002Fsyntax.fm",[388],"Syntax",[46,507,508,511],{},[61,509,510],{},"Newsletters",[61,512,513,414,518,523],{},[384,514,517],{"href":515,"rel":516},"https:\u002F\u002Ftldr.tech",[388],"TLDR",[384,519,522],{"href":520,"rel":521},"https:\u002F\u002Fbytes.dev",[388],"Bytes",", platform changelogs",[112,525,526],{},"They follow individual builders and founding engineers, not brands; founder-posted content outperforms company accounts with them by a wide margin. In person, rarely: a local indie hacker meetup, maybe MicroConf once. The internet is the venue.",[35,528,530],{"id":529},"how-to-reach-them","How to reach them",[40,532,533,543],{},[43,534,535],{},[46,536,537,540],{},[49,538,539],{},"What works",[49,541,542],{},"Why it lands",[56,544,545,553,561,569,577,585],{},[46,546,547,550],{},[61,548,549],{},"Marketplace listings on Cloudflare and Vercel",[61,551,552],{},"Discovered at the exact moment they are wiring up infrastructure",[46,554,555,558],{},[61,556,557],{},"Founder-led content on X and HN",[61,559,560],{},"War stories, real incident writeups, product progress. They buy from people, not brands",[46,562,563,566],{},[61,564,565],{},"The shareable topology map",[61,567,568],{},"\"Here is what an agent can see in my Cloudflare account\" is exactly the artifact they screenshot and share",[46,570,571,574],{},[61,572,573],{},"Show HN and Product Hunt launches",[61,575,576],{},"A genuinely free tier and no credit card removes every excuse",[46,578,579,582],{},[61,580,581],{},"SEO for the 1am searches",[61,583,584],{},"\"cloudflare workers monitoring\", \"vercel cron failed silently\"",[46,586,587,590],{},[61,588,589],{},"Host-read sponsorships",[61,591,592],{},"The YouTube\u002Fpodcast circuit above, read by the host, not a pre-roll",[112,594,595],{},"What fails: cold email and LinkedIn anything (they live on X), gated whitepapers and \"book a demo\" (a demo request is a bounce), and enterprise social proof (they want a solo founder's testimonial, not a bank's).",[35,597,599],{"id":598},"what-they-resonate-with","What they resonate with",[346,601,602,605,608,611,614],{},[349,603,604],{},"\"Nobody should be on-call in 2026\" lands perfectly, because for them on-call is not a rotation, it is a life sentence.",[349,606,607],{},"Small, sharp tools made by small, opinionated teams. Linear, Raycast, Fly.io, Plausible aesthetics: dense, fast, no fluff.",[349,609,610],{},"Pay-for-value pricing with a real free tier. Flat price plus usage they can see. They deeply distrust per-seat and per-host pricing.",[349,612,613],{},"Underdog and craftsmanship narratives. A founder who ships in public and answers their email personally.",[349,615,616],{},"Radical transparency: public roadmaps, honest postmortems, changelogs with personality.",[112,618,619],{},"What turns them off: AI hype language without evidence, \"contact sales\", per-seat pricing for a team of one, tools that need a week of setup, anything that emails too much.",[35,621,623],{"id":622},"hobbies-and-personality","Hobbies and personality",[346,625,626,629,632,635],{},[349,627,628],{},"Their side projects are the hobby; building is what they do to relax, which is also the problem.",[349,630,631],{},"Typical off-screen interests: cycling or bouldering, specialty coffee, mechanical keyboards, gaming (factory and strategy games disproportionately), home automation and a modest self-hosting habit.",[349,633,634],{},"Personality: optimistic, scrappy, impatient, allergic to process. High agency, low tolerance for friction. Makes buying decisions in minutes, alone, usually at night.",[349,636,637],{},"Financially self-reliant and proud of it; the flip side is cost anxiety about every recurring charge.",[35,639,641],{"id":640},"journey-through-the-product","Journey through the product",[112,643,644],{},"The whole journey happens in one sitting, alone, usually at night. The first detected issue is the fork in the road: it either gets screenshotted or the tab gets closed.",[112,646,647],{},[118,648],{"alt":649,"src":650},"Pete's journey through the product","\u002Fdiagrams\u002Fpete-journey.svg",[112,652,653],{},"They live mostly outside the console afterward: the weekly digest, an issue-detected email, autofix pull requests appearing in GitHub, the occasional production question asked from the editor over MCP. The upgrade is never a decision meeting; it is the morning after the free tier held back a second real incident, or a bad week drained the credit pool while things were on fire.",[35,655,657],{"id":656},"feature-affinities","Feature affinities",[346,659,660,663,666,669,672],{},[349,661,662],{},"The topology map and the first detected issue: first value, and the thing they show others.",[349,664,665],{},"Autofix pull requests: a fix waiting for review, mergeable from a phone.",[349,667,668],{},"Autonomous rollback on their deployment platform, once trust is earned; it is the closest thing to \"the site heals itself\".",[349,670,671],{},"The weekly digest as their entire operations review.",[349,673,674],{},"Setup through the coding agent they already use; zero new tools to learn.",[112,676,677],{},[118,678],{"alt":679,"src":680},"While Pete sleeps, something small and diligent fixes production","\u002Fcartoons\u002Fpete-cartoon.jpg",[35,682,684],{"id":683},"objections-and-friction","Objections and friction",[346,686,687,690,693],{},[349,688,689],{},"Cloud token permissions feel scary: they are being asked to hand over keys to their livelihood. Read-only by default, minimal scopes, and plain-English explanations of every permission are what get them through the connect screen.",[349,691,692],{},"Cost anxiety: credits are abstract until the usage page makes them concrete. The $80 step needs a story like \"this caught the thing that would have cost me a weekend\".",[349,694,695],{},"Zero noise tolerance: one false alarm is forgiven, two and the emails get filtered, three and they churn silently.",[35,697,699],{"id":698},"what-success-looks-like","What success looks like",[346,701,702,705],{},[349,703,704],{},"A problem was detected, investigated, and a correct fix PR was waiting before they knew anything was wrong. They tweet about it, which is also the growth loop.",[349,706,707],{},"The weekly digest becomes the only operations ritual they have, and it is enough.",[35,709,711],{"id":710},"in-their-own-words","In their own words",[346,713,714,717,720,723],{},[349,715,716],{},"\"I don't want observability. I want to not think about this.\"",[349,718,719],{},"\"If connecting takes more than ten minutes, I'm out.\"",[349,721,722],{},"\"Show me the permissions you're asking for and why, in English.\"",[349,724,725],{},"\"$80 is a lot until the night it isn't.\"",{"title":727,"searchDepth":728,"depth":729,"links":730},"",1,2,[731,732,733,734,735,736,737,738,739,740,741,742,743],{"id":37,"depth":729,"text":38},{"id":109,"depth":729,"text":110},{"id":124,"depth":729,"text":125},{"id":343,"depth":729,"text":344},{"id":363,"depth":729,"text":364},{"id":529,"depth":729,"text":530},{"id":598,"depth":729,"text":599},{"id":622,"depth":729,"text":623},{"id":640,"depth":729,"text":641},{"id":656,"depth":729,"text":657},{"id":683,"depth":729,"text":684},{"id":698,"depth":729,"text":699},{"id":710,"depth":729,"text":711},null,"Solo builder on Cloudflare or Vercel who is their own on-call and finds out about outages from customers.","md",{},{"title":13},{"name":13,"photo":750,"archetype":751,"pronouns":752,"plan":753,"role":754,"quote":755,"accent":756,"order":728,"pains":757,"aha":767},"\u002Fportraits\u002Fpete.jpg","Indie hacker \u002F solo founder","they\u002Fthem","Free → Starter ($80)","Core","I found out the checkout was broken because a customer DMed me on X. It had been down for nine hours.","amber",[758,761,764],{"title":759,"detail":760},"Downtime is discovered by customers","There is no pager. Outages arrive as refund requests and DMs on X, hours late.",{"title":762,"detail":763},"AI-written code breaks in production","Bugs surface live, in code they never read line by line, and are harder to debug for it.",{"title":765,"detail":766},"Things fail silently","Crons and queues just stop. Modern PaaS has no native ops tooling to notice, and neither do they.",{"moment":768,"anticipation":769},"They wake up to a problem that fixed itself: detected overnight, investigated, and waiting as a pull request they can merge from their phone.",[770,771,772],"\"Fix production before you wake up\" is the whole pitch: repeat it at signup, on the topology map, and in the first digest.","Treat the first detected issue as a preview of that morning: here is what the agent can already see; connect GitHub and next time it will fix, not just find.","Frame every connect nudge as a countdown: each rung removes one reason the fix could not have shipped by itself.",{"title":30,"description":745},"tQE_qvlPEZUaKZwT25hNo0Y7OJupJk6hrYS9GEKBMkM",[776,778],{"title":9,"path":10,"stem":11,"description":777,"children":-1},"The ideal customer is a software team that is happy using AI-first tools, at any scale. Not teams building AI products; teams that build with AI.",{"title":17,"path":18,"stem":19,"description":779,"children":-1},"Full-stack engineer at a small startup, ships daily with a coding agent, dreads the pager.",1790523225097]