<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Shipping Apps on Chinese Man</title><link>https://chineseman.net/categories/shipping-apps/</link><description>Recent content in Shipping Apps on Chinese Man</description><image><title>Chinese Man</title><url>https://chineseman.net/logo.jpg</url><link>https://chineseman.net/logo.jpg</link></image><generator>Hugo</generator><language>en-us</language><lastBuildDate>Mon, 22 Jun 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://chineseman.net/categories/shipping-apps/index.xml" rel="self" type="application/rss+xml"/><item><title>Why I Build Small Apps Instead of Chasing One Big Idea</title><link>https://chineseman.net/why-i-build-small-apps/</link><pubDate>Mon, 22 Jun 2026 00:00:00 +0000</pubDate><guid>https://chineseman.net/why-i-build-small-apps/</guid><description>The case for shipping a portfolio of small apps instead of betting years on one big idea: faster learning, lower risk, compounding skills, and why a stream of small bets suits a solo builder better than one giant swing.</description><content:encoded><![CDATA[<p>Everyone romanticizes the one big idea, the startup you pour three years into and either
win huge or lose everything. I do the opposite. I build <strong>small apps</strong>, ship them fast,
and let the winners reveal themselves. That is not settling for less. It is the smarter
game for a solo builder, and here is the full reasoning.</p>
<h2 id="small-apps-actually-ship">Small apps actually ship</h2>
<p>A big idea has a hundred features standing between you and launch, and you will build most
of them before you ever learn whether anyone wants the thing at all. A small app has <em>one</em>
clear job. You can build it, ship it, and get real-world feedback in days or weeks instead
of years. Shipped-and-learning beats unshipped-and-perfect every single time, because an
app in the store is generating information and an app on your hard drive is generating
nothing but anxiety. The faster you ship, the faster reality starts correcting your
assumptions.</p>
<h2 id="each-app-is-a-cheap-bet">Each app is a cheap bet</h2>
<p>Think like a portfolio, not an all-in wager. Every small app is an inexpensive bet on a
hypothesis: &ldquo;people want private, offline transcription,&rdquo; &ldquo;people want a cute endless
arcade game.&rdquo; Most bets return little. Some return a lot. The math of this is what makes it
work, you only need a couple to hit, and the only way to find which ones hit is to place
enough bets. You can only afford to place many bets if each one is small, which is the
entire argument in one sentence.</p>
<p>A big-idea founder makes one bet with everything. If they are wrong about the market, and
most people are wrong about the market, they find out after years and at enormous cost. A
portfolio builder is wrong constantly, cheaply, and quickly, and that turns out to be a
massive advantage.</p>
<h2 id="learning-velocity-compounds">Learning velocity compounds</h2>
<p>Every app teaches you something the last one could not: a new market, a new technical
constraint, a marketing channel that works, a kind of user you did not understand before.
Ship ten small apps and you have run ten experiments across product, distribution, and
craft. Spend the same time on one big app and you have run exactly one. The person who ships
ten learns ten times as fast, and in a game where nobody knows the right answer in advance,
learning speed <em>is</em> the edge. It is the whole edge.</p>
<h2 id="lower-risk-faster-feedback">Lower risk, faster feedback</h2>
<p>When a small app flops, you have lost a couple of weeks, shrugged, and moved on, a little
wiser. When a big app flops, you have lost years and possibly your savings, and the lesson
cost a fortune. Small apps fail cheaply and quietly, which means you can afford to be wrong,
and being wrong repeatedly and cheaply is precisely how you eventually get it right. Risk
that would be reckless on one giant bet is perfectly reasonable spread across many tiny
ones.</p>
<h2 id="skills-stack-across-the-portfolio">Skills stack across the portfolio</h2>
<p>The apps are not really separate projects. The auth flow, the on-device inference, the
store listing, the privacy architecture, the analytics setup, each one carries directly
into the next. My <a href="/building-offline-ai-chat-app-personal-llm/">offline AI chat app</a>
and my <a href="/building-private-speech-to-text-whisper-app/">on-device transcription app</a>
share a whole thesis and a lot of hard-won technique, and the second one was far faster to
build because the first one taught me the pattern of running models on a phone. Even a
<a href="/building-capybara-crossing-arcade-game/">casual game</a> sharpened instincts about
feel and polish that followed me right back into the serious tools. Nothing is wasted. The
portfolio compounds into a body of skill that no single project could have built.</p>
<h2 id="a-niche-emerges-that-you-did-not-plan">A niche emerges that you did not plan</h2>
<p>Build enough small things and a thread quietly appears. Mine turned out to be <strong>on-device,
privacy-first AI</strong>, taking capabilities people assume require the cloud and proving they fit
in your pocket. I did not start with that thesis. I found it by shipping, by noticing which
of my bets resonated and why. One big idea locks you into a guess you made before you knew
anything. A stream of small ones lets the right direction surface from real results, which
is a far more reliable way to find a direction worth committing to.</p>
<h2 id="the-honest-trade-off">The honest trade-off</h2>
<p>I want to be fair about the cost. Small apps will not make you a unicorn overnight, and each
one individually looks unimpressive next to a grand vision. If your single goal is to build
one world-changing company, this is not your path, and you should ignore me. But if your
goal is to keep shipping, keep learning, build real income across several products, and
dramatically raise your odds of stumbling into something that genuinely takes off, then a
portfolio of small, fast bets beats betting the farm on one idea you cannot yet validate.</p>
<p>It also fits the reality of being one person. You can hold a small app entirely in your
head, ship it without a team, and support it without it consuming your life. Ten of those is
a sustainable practice. One enormous thing is a gamble that can quietly eat years.</p>
<h2 id="small-is-not-the-same-as-careless">Small is not the same as careless</h2>
<p>To be clear, building small is not building careless. Each app still earns real design, real
polish, and an honest privacy stance, because a portfolio of sloppy apps just fails ten times
instead of once. Small is a statement about scope, not about standards. The discipline is to
ship something genuinely good with a deliberately narrow surface area and then stop, rather
than letting one app quietly sprawl into the very multi-year commitment you were trying to
avoid. Done right, each small app is complete and proud of itself, not a half-built fragment
of a bigger dream. That is the line that separates a focused portfolio from a graveyard of
abandoned prototypes, and it is the part most people get wrong when they hear &ldquo;build small.&rdquo;</p>
<p>Ship small, ship often, and let traction tell you where the big idea actually was all along.
For the part right after shipping, finding the first people who care, see
<a href="/first-100-users-no-budget/">getting your first 100 users with no budget</a>.</p>
]]></content:encoded></item><item><title>How to Get Started Publishing Mobile Apps: iOS and Android Developer Accounts</title><link>https://chineseman.net/how-to-publish-mobile-apps-developer-accounts/</link><pubDate>Wed, 10 Jun 2026 00:00:00 +0000</pubDate><guid>https://chineseman.net/how-to-publish-mobile-apps-developer-accounts/</guid><description>Before your app reaches a single user, you need Apple and Google developer accounts set up. A practical, first-timer guide to the costs, the steps, the identity checks, and the gotchas (like Google&amp;#39;s 20-tester rule) that quietly eat weeks off your launch.</description><content:encoded><![CDATA[<p>You can finish a great app and still be weeks away from your first user, because
publishing has its own setup that nobody warns you about. The accounts, the identity
checks, the review processes, and a few surprise requirements all take real, unavoidable
time. Here is exactly what you need to get an app onto the App Store and Google Play, what
it costs, and the traps that catch first-timers, so the publishing phase is a planned step
instead of a panicked scramble the week you wanted to launch.</p>
<h2 id="the-two-accounts-and-what-they-cost">The two accounts and what they cost</h2>
<ul>
<li><strong>Apple Developer Program:</strong> $99 per year, recurring.</li>
<li><strong>Google Play Console:</strong> $25, one time.</li>
</ul>
<p>So budget about <strong>$124 for your first year</strong> to publish on both stores, and $99 a year
after that. That is entirely separate from anything you spend building the app. These fees
are cheap. The real cost, as you will see, is time, not money.</p>
<h2 id="apple-developer-program-ios">Apple Developer Program (iOS)</h2>
<ol>
<li>Create an <strong>Apple ID</strong> with two-factor authentication enabled. You need to be 18 or
older to enroll.</li>
<li>Enroll in the Apple Developer Program at developer.apple.com.</li>
<li>Choose <strong>Individual</strong> or <strong>Organization</strong>:
<ul>
<li><em>Individual</em> is the fastest path, and your legal name appears as the seller on the
store.</li>
<li><em>Organization</em> shows a company name as the seller, but you first need a <strong>D-U-N-S
number</strong> for the business. It is free to request, but verification can take several
days to a couple of weeks, so start it early if you want to publish under a company.</li>
</ul>
</li>
<li>Pay the $99 and wait for approval, usually quick but occasionally a day or two.</li>
</ol>
<p>You will also need a <strong>Mac with Xcode</strong> to build, sign, and submit your app, <em>or</em> a cloud
build service such as Expo EAS or Codemagic if you use a cross-platform framework and want
to avoid buying a Mac. Apple&rsquo;s signing system (certificates and provisioning profiles) is
genuinely confusing the first time, so budget an afternoon just to get a build onto a real
device. Your listings, builds, and submissions are all managed in <strong>App Store Connect</strong>,
and <strong>TestFlight</strong>, built into App Store Connect, is how you distribute beta builds to
testers before going live.</p>
<p><strong>App review:</strong> Apple reviews every app and every update, typically within a day or two,
and it is the stricter of the two stores. Read the App Review Guidelines before submitting.
The usual rejections are broken features, missing or inaccurate privacy details, misleading
screenshots, and the dreaded &ldquo;this app does not provide enough lasting value.&rdquo; Expect a
rejection or two on your first app, respond politely in the Resolution Center, fix what they
flag, and resubmit. It is a normal part of the process, not a catastrophe.</p>
<h2 id="google-play-console-android">Google Play Console (Android)</h2>
<ol>
<li>Use or create a Google account.</li>
<li>Go to play.google.com/console and register as a developer. Pay the one-time $25.</li>
<li>Choose a <strong>personal</strong> or <strong>organization</strong> account. Organizations need a D-U-N-S number
here too.</li>
<li>Complete <strong>identity verification</strong>. Google now requires this for all developers: legal
name, address, phone, and sometimes a government ID. Start it early, because it can take
a few days and you cannot publish until it clears.</li>
</ol>
<p><strong>The gotcha that surprises everyone:</strong> for new <strong>personal</strong> developer accounts, Google
requires you to run a closed test with <strong>at least 20 testers for 14 continuous days</strong> before
you can promote the app to production. That clock is unavoidable and it does not start until
you actually have testers opted in, so line them up early, friends, a community, a dedicated
testing group, and start the closed test the moment you have a working build. Treat those 20
testers as a real task on your launch checklist, not an afterthought. Organization accounts
are currently exempt from the 20-tester rule, which is one reason some people choose that
route despite the extra D-U-N-S step.</p>
<p>You will also fill out a <strong>Data safety</strong> form and a content rating questionnaire. Google&rsquo;s
review is generally faster and more lenient than Apple&rsquo;s, but it still reviews apps, and
updates can take anywhere from a few hours to a few days.</p>
<h2 id="what-both-stores-require-from-you">What both stores require from you</h2>
<p>Before you can publish on either, have these ready, ideally prepared during development
rather than scrambled together at the end:</p>
<ul>
<li>A clear <strong>app icon</strong> and <strong>screenshots</strong> for each required device size.</li>
<li>A <strong>title</strong> plus short and full <strong>descriptions</strong>. This is also where App Store
Optimization begins, so the words are worth real thought.</li>
<li>A <strong>privacy policy URL</strong>. Both stores require one, even for a simple app. This is one
practical reason a small website is handy: somewhere stable to host the policy where it
will not disappear.</li>
<li>A <strong>content and age rating</strong> questionnaire.</li>
<li><strong>Data disclosures</strong>: Apple&rsquo;s &ldquo;App Privacy&rdquo; labels and Google&rsquo;s &ldquo;Data safety&rdquo; form.
Answer honestly about exactly what you collect. If your app runs on-device and collects
nothing, say so loudly, because &ldquo;we collect no data&rdquo; is a genuine selling point that the
store will display to users.</li>
</ul>
<h2 id="a-sane-order-to-do-this-in">A sane order to do this in</h2>
<ol>
<li><strong>Register both developer accounts on day one</strong> of the project, not the week you want to
launch. Verification and D-U-N-S delays are the silent killers of launch dates.</li>
<li>If you are taking the <strong>organization</strong> route on either store, start the D-U-N-S request
immediately, since it is the longest pole in the tent.</li>
<li>For Google, <strong>start the 20-tester closed test as early as you have a build</strong>, so the
14-day clock runs in the background while you finish the app instead of after.</li>
<li>Prepare your <strong>store assets</strong>, icon, screenshots, descriptions, privacy policy, in
parallel with development, not after.</li>
<li>Submit to Apple expecting a possible rejection, and to Google expecting the testing
requirement, so neither one surprises you.</li>
</ol>
<h2 id="the-takeaway">The takeaway</h2>
<p>Building is the fun part, but the publishing setup is where first-timers lose weeks they
never budgeted for. The accounts themselves are cheap, about $124 for year one across both
stores. The real cost is time: identity verification, D-U-N-S numbers, Apple&rsquo;s review, the
signing setup, and Google&rsquo;s 20-tester rule. None of it is hard, but all of it has a clock,
and the clocks run in serial if you start late and in parallel if you start early. Kick off
the slow, bureaucratic pieces at the very beginning of the project, and a multi-week
surprise turns into a quiet background task that is already done by the time your app is
ready.</p>
<p>Once you are live, the next problem is getting found, which is where
<a href="/app-store-optimization-aso-guide/">App Store Optimization</a> and
<a href="/first-100-users-no-budget/">getting your first 100 users with no budget</a> take over.</p>
]]></content:encoded></item><item><title>How to Price Your App: Free, Paid, Freemium, or Subscription</title><link>https://chineseman.net/how-to-price-your-app/</link><pubDate>Tue, 09 Jun 2026 00:00:00 +0000</pubDate><guid>https://chineseman.net/how-to-price-your-app/</guid><description>Pricing decides who installs your app, how much you earn, and how you are reviewed. A practical breakdown of free, paid, freemium, and subscription models for indie developers, with the trade-offs and when each one actually fits.</description><content:encoded><![CDATA[<p>Pricing is the decision indie developers agonize over least and should agonize over most. It
quietly determines who installs your app, how much you earn per user, how your reviews read,
and whether you have a business or a hobby. There is no universally correct answer, but there
is a right answer for <em>your</em> app, and you can reason your way to it. Here is how to think
about the four main models.</p>
<h2 id="free">Free</h2>
<p>A free app with no monetization is not a business model, it is a gift. That is fine if the
goal is portfolio, learning, audience, or a funnel to something else. Free maximizes
installs because it removes every ounce of friction, which makes it a legitimate strategy when
your real goal is reach rather than revenue.</p>
<p>The trap is drifting into free by default because pricing felt scary, then resenting the work
when nobody pays. Choose free deliberately, knowing what you are trading away. If you genuinely
want income from this app, free with no plan attached is usually the wrong starting point.</p>
<h2 id="paid-up-front">Paid up front</h2>
<p>The user pays once to download, then owns it forever. This model is honest and simple: no ads,
no nagging, no subscription guilt. People who pay up front tend to be higher-quality users who
actually wanted the thing, and your reviews often reflect that.</p>
<p>The downside is brutal install friction. A price tag, even a small one, cuts your downloads
dramatically compared to free, because most people will not pay for something they have not
tried. Paid up front works best when the value is obvious before installing, when you have a
clear niche audience who already wants the solution, or when &ldquo;no ads, no subscription, no
tracking&rdquo; is itself the selling point. For a focused utility with a clear job, a one-time price
can be a feature, not a barrier.</p>
<h2 id="freemium">Freemium</h2>
<p>The app is free to download, with a paid upgrade that unlocks more. This is the dominant model
for a reason: it removes install friction like free, while still creating a path to revenue
like paid. People try before they buy, which suits anything whose value is hard to convey from
a store listing alone.</p>
<p>Freemium lives or dies on where you draw the line. Give away too little and the free tier feels
like a crippled demo that generates angry reviews. Give away too much and nobody ever upgrades
because they already have everything they need. The art is making the free tier genuinely
useful and complete for casual users, while the paid tier solves the problems that only your
most engaged users have. A good test: would you be happy if someone used the free version
forever and told their friends? If yes, you have probably drawn the line well.</p>
<h2 id="subscription">Subscription</h2>
<p>The user pays repeatedly, monthly or yearly, for ongoing access. Subscriptions produce the
best revenue per user and the most predictable income, which is why so much of the industry has
moved to them. For an app with genuine ongoing value, a service that keeps delivering, content
that keeps updating, costs that recur, a subscription is fair and sustainable.</p>
<p>But subscriptions carry real obligations and real risk. Users increasingly resent subscription
fatigue, and they will punish you in reviews if your app does not clearly justify a recurring
charge. The honest question is: does this app deliver continuous value, or is it a one-time
tool wearing a subscription costume? A flashlight app should not be a subscription. A service
with ongoing server costs or constantly refreshed content reasonably can be. If you cannot
articulate why the value recurs, neither can your users, and they will cancel.</p>
<h2 id="on-device-apps-and-the-cost-question">On-device apps and the cost question</h2>
<p>One factor people forget: your costs shape your honest pricing options. If your app runs on a
server, every user costs you money every month, which pushes you toward subscriptions just to
stay alive. If your app runs entirely on-device, with no servers to pay for, you have far more
freedom. You can give it away, charge once, or offer a small upgrade, without a recurring bill
forcing your hand. That freedom is one of the quiet advantages of building on-device, which I
wrote about in <a href="/why-i-build-small-apps/">why I build small apps</a>.</p>
<h2 id="how-to-actually-decide">How to actually decide</h2>
<p>Work backward from two questions. First, where does the value live: is it obvious before
install, revealed during use, or delivered continuously over time? Second, what does each user
cost you to serve? Map those answers onto the models:</p>
<ul>
<li>Value obvious before install, low cost to serve: <strong>paid up front</strong> can work.</li>
<li>Value revealed during use: <strong>freemium</strong>, with a generous free tier.</li>
<li>Value delivered continuously, real ongoing costs: <strong>subscription</strong>, clearly justified.</li>
<li>Goal is reach, not revenue, costs are near zero: <strong>free</strong>, on purpose.</li>
</ul>
<h2 id="you-can-change-it-later">You can change it later</h2>
<p>Pricing is not a permanent tattoo. Many successful apps started free to build an audience, then
introduced a paid tier once they understood who their users were and what those users valued
most. Others launched paid and moved to freemium when they realized the price was the only thing
standing between them and a much larger base. You will almost certainly get the first guess
somewhat wrong, because you are pricing before you have the data that pricing decisions really
need. That is fine and expected. Ship a reasonable model, watch how people actually respond, and
adjust with what you learn. The goal is to start with something defensible, not to agonize
forever toward a perfect number that does not exist yet.</p>
<h2 id="the-honest-closing">The honest closing</h2>
<p>Whatever you pick, price with respect for the user. The fastest way to tank an app is a pricing
model that feels like a trap: a free tier that is secretly useless, a subscription for a
one-time tool, an upgrade nag every thirty seconds. Pick the model that matches where your value
actually lives, make the deal obvious and fair, and let people feel good about paying you. Good
pricing is not extraction. It is an honest exchange where both sides come out ahead, and apps
built on that hold up far longer than ones built on dark patterns. When you start charging,
revisit <a href="/first-100-users-no-budget/">getting your first 100 users</a>, because price and
acquisition are two halves of the same decision.</p>
]]></content:encoded></item><item><title>How to Validate an App Idea Before You Build It</title><link>https://chineseman.net/how-to-validate-an-app-idea/</link><pubDate>Mon, 08 Jun 2026 00:00:00 +0000</pubDate><guid>https://chineseman.net/how-to-validate-an-app-idea/</guid><description>Most app ideas fail not in the building but in the assuming. A practical guide to validating an app idea before you write a line of code, so you spend your weeks building something people actually want.</description><content:encoded><![CDATA[<p>The most expensive mistake in app development is not a bug. It is spending two months building
something nobody wanted, which you could have learned in two days. Validation is the cheap
work you do up front to avoid the expensive work of building the wrong thing. It is also the
step solo builders skip most, because building is fun and validating feels like a chore. Here
is how to do it without it becoming a chore, or a crutch.</p>
<h2 id="start-with-a-problem-not-a-feature">Start with a problem, not a feature</h2>
<p>The strongest ideas begin with a problem you have personally felt or watched someone struggle
with, not with a cool feature looking for a use. &ldquo;Wouldn&rsquo;t it be neat if&rdquo; is a weak foundation.
&ldquo;I keep running into this specific annoyance and so do others&rdquo; is a strong one. Before anything
else, write down the problem in one plain sentence, and the specific person who has it. If you
cannot, that is your first signal to slow down.</p>
<h2 id="check-that-the-problem-is-real-and-shared">Check that the problem is real and shared</h2>
<p>A problem you have is a hypothesis, not a market. The cheapest validation is finding out
whether other people have it too, and you can do that without writing any code:</p>
<ul>
<li><strong>Search where people complain.</strong> If your problem is real, people are already asking about it
in subreddits, forums, and reviews of existing apps. Read those threads. The language people
use is gold, both for confirming demand and for your future store listing.</li>
<li><strong>Read the one-star and three-star reviews</strong> of apps adjacent to your idea. Those reviews are
a free list of unmet needs and frustrations, written by people who care enough to complain.</li>
<li><strong>Ask people directly,</strong> but ask about their problem and their current behavior, never about
your idea. &ldquo;How do you handle X today?&rdquo; tells you the truth. &ldquo;Would you use an app that does
Y?&rdquo; only tells you people are polite.</li>
</ul>
<h2 id="watch-what-people-do-not-what-they-say">Watch what people do, not what they say</h2>
<p>This is the single most important validation skill. People will enthusiastically tell you they
would use your app, download it, and pay for it, and then do none of those things. Stated
intent is nearly worthless. Revealed behavior is everything. So look for evidence of what
people <em>already do</em>: the workarounds they have cobbled together, the spreadsheets they
maintain, the competing apps they actually pay for, the time they already spend on the problem.
A clumsy workaround that people use every day is far stronger validation than a hundred people
saying &ldquo;great idea.&rdquo;</p>
<h2 id="look-at-the-competition-honestly">Look at the competition honestly</h2>
<p>Finding existing apps that solve your problem is good news, not bad. It means the problem is
real enough that someone built for it and someone pays for it. A completely empty market
usually means no demand, not untapped opportunity. The question is not &ldquo;is there competition,&rdquo;
it is &ldquo;can I serve some slice of these users meaningfully better, cheaper, simpler, more
private, or more focused?&rdquo; Read their reviews to find the gap they are leaving open, and aim
there.</p>
<h2 id="build-the-smallest-possible-test">Build the smallest possible test</h2>
<p>Once you believe the problem is real and shared, validate the <em>solution</em> as cheaply as
possible before committing months. Options, in rough order of effort:</p>
<ul>
<li>A <strong>landing page</strong> describing the app with a &ldquo;notify me&rdquo; or store link, shared in the
communities where your users already are. Do people click and sign up?</li>
<li>A <strong>tiny prototype</strong> that does the one core thing, ugly and incomplete, put in front of ten
real people. Do they reach for it again unprompted?</li>
<li>A <strong>manual version</strong> where you solve the problem by hand for a few people first. If they will
not accept the solution done manually for free, an app will not save it.</li>
</ul>
<p>The goal is to get a real signal with days of effort, not months. You are trying to be wrong
cheaply, fast, on purpose.</p>
<h2 id="know-what-a-real-signal-looks-like">Know what a real signal looks like</h2>
<p>Validation is not a single yes or no, it is a strengthening or weakening of your confidence.
Strong signals: people use your rough version more than once without you nudging them, people
get visibly frustrated when you take it away, people ask when they can have more, strangers
share it. Weak signals: polite encouragement, &ldquo;I would totally use this,&rdquo; likes on a post,
your friends being supportive. Learn to discount the weak signals ruthlessly, because they are
the ones that feel best and mean least.</p>
<h2 id="do-not-let-validation-become-procrastination">Do not let validation become procrastination</h2>
<p>A warning, because this cuts both ways. Validation can curdle into an excuse never to ship.
You will never get certainty, and at some point the only remaining test is to build the real
thing and put it in the store. The point of validation is not to eliminate risk, it is to
avoid the obvious, expensive mistakes before you commit. Once you have a real problem, evidence
others share it, and a cheap test that pointed the right way, stop researching and start
building. Shipping is itself the ultimate validation, which is exactly why I favor
<a href="/why-i-build-small-apps/">building small apps</a>: each one is a real test in the market,
not just a guess on a whiteboard.</p>
<h2 id="a-quick-gut-check-before-you-commit">A quick gut check before you commit</h2>
<p>When you think you are done validating, run one last honest check. Can you name the specific
person who has this problem, in one plain sentence? Can you point to evidence that they currently
do something, anything, to solve it today? Did your cheap test produce actual behavior, not just
encouragement? And would you, personally, reach for this thing if someone else had built it? If
you can answer yes to all four with a straight face, you have done enough, and more research is
just fear wearing a productive disguise. If you cannot, you have found exactly where your idea is
still a guess, and that is the precise part to test next, before you write a single line of code.</p>
<h2 id="the-takeaway">The takeaway</h2>
<p>Validation is the difference between betting weeks on a hunch and betting them on evidence. Find
a real problem, confirm other people share it, watch what they actually do instead of what they
say, study the competition for the gap, and run the smallest possible test before you commit.
Do that, and most of your build time goes toward things people genuinely want, which is the
whole game when your time is your scarcest resource.</p>
]]></content:encoded></item><item><title>Time Management for Solo Founders: Shipping Without Burning Out</title><link>https://chineseman.net/time-management-for-solo-founders/</link><pubDate>Sat, 06 Jun 2026 00:00:00 +0000</pubDate><guid>https://chineseman.net/time-management-for-solo-founders/</guid><description>As a solo founder you are the developer, designer, marketer, and support team at once. A practical guide to managing your time and energy so you keep shipping for years instead of flaming out in months.</description><content:encoded><![CDATA[<p>As a solo founder you are the developer, the designer, the marketer, the support team, and the
accountant, all at once, with no one to hand anything to. The constraint is never ideas and
rarely skill. It is time and energy, and how you spend them decides whether you ship for years
or flame out in months. After building and shipping a string of apps alone, here is what
actually keeps the machine running.</p>
<h2 id="accept-that-you-cannot-do-it-all-then-choose">Accept that you cannot do it all, then choose</h2>
<p>The first mental shift is accepting that there is genuinely more to do than you can ever do.
That sounds bleak, but it is freeing, because it means your job is not &ldquo;finish everything,&rdquo; it
is &ldquo;choose the few things that matter most right now and let the rest wait.&rdquo; Solo founders who
try to do everything do everything badly and burn out. The ones who last get ruthless about
priority. On any given day, a small number of tasks actually move the needle. Find them, do
them, and forgive yourself for the rest.</p>
<h2 id="protect-maker-time-fiercely">Protect maker time fiercely</h2>
<p>Building requires long, unbroken blocks of focus, and those blocks are the most valuable and
most fragile thing you have. An hour chopped into six pieces by notifications, emails, and
&ldquo;quick checks&rdquo; produces almost nothing. So protect it. Pick the hours your brain works best,
guard them like an appointment with your most important client, and do your hardest building
then. Email, support, and admin can fill the shallow hours. Never spend your peak focus on
shallow work, because that is the trade that quietly kills solo projects.</p>
<h2 id="batch-the-context-switches">Batch the context switches</h2>
<p>Every switch between coding, marketing, support, and admin has a hidden cost: your brain has to
spin down one mode and spin up another, and that reload is expensive. Doing a little of
everything all day means paying that tax constantly. Instead, batch. A block for building, a
block for support and email, a block for marketing. One mode at a time. You will get more done
in a batched four hours than a scattered eight, and you will end the day less fried.</p>
<h2 id="use-the-tools-that-compress-the-work">Use the tools that compress the work</h2>
<p>Solo founders win by getting more done per hour, and the right tools are a genuine force
multiplier. AI coding assistants let you ship features in a fraction of the time, which is the
whole premise of <a href="/what-vibe-coding-actually-is/">vibe coding</a>. Boring, well-documented
frameworks mean less time fighting your stack. Static hosting and on-device architecture mean
no servers to babysit. Every choice that removes ongoing maintenance gives you back hours you
can spend building or living. Optimize relentlessly for less to maintain, not more to manage.</p>
<h2 id="decide-what-not-to-build">Decide what not to build</h2>
<p>Half of shipping is saying no. Every feature you add is a feature you have to build, test,
support, and maintain forever, alone. The backlog will always be longer than your life, so the
skill is cutting it down, not working through it. Keep a running list of ideas so they stop
nagging you, then deliberately pick the smallest version that delivers the value, and ship
that. Scope creep is the silent killer of solo projects, because there is no one to push back
on you except you.</p>
<h2 id="manage-energy-not-just-hours">Manage energy, not just hours</h2>
<p>Time management is really energy management. A burned-out hour produces nothing useful, while a
fresh hour can move a project forward dramatically. So treat your energy as the real resource.
Sleep is not a luxury you trade for productivity, it is the input that makes productivity
possible. Take real breaks, get outside, and stop working before you are empty, not after.
Pushing through exhaustion feels productive and is usually the opposite, because tired code is
buggy code and tired decisions are bad decisions you pay for later.</p>
<h2 id="build-a-sustainable-rhythm-not-a-sprint">Build a sustainable rhythm, not a sprint</h2>
<p>The romantic image of the founder grinding eighteen-hour days is a great way to ship for three
months and quit. Solo building is a long game, often years before a real hit, so the goal is a
pace you can hold indefinitely. That means a rhythm with room in it: focused work, genuine
rest, and a life outside the app. Consistency beats intensity over any timeline that matters. A
steady four good hours a day, every day, for a year, will out-build heroic all-nighters that
end in collapse.</p>
<h2 id="watch-for-the-warning-signs">Watch for the warning signs</h2>
<p>Burnout does not announce itself politely. It creeps in as dread about opening your editor,
resentment toward the project you used to love, shipping slowing to a crawl, and small problems
feeling insurmountable. Learn your own signs and treat them as data, not weakness. When they
show up, the answer is not to push harder, it is to rest, narrow your scope, and reconnect with
why you started. The project can wait a few days. Your ability to keep going for years cannot
be rebuilt as easily.</p>
<h2 id="separate-the-urgent-from-the-important">Separate the urgent from the important</h2>
<p>A specific trap deserves its own warning: as a solo founder, the urgent constantly drowns out the
important. Support emails, a small bug, a notification, these feel pressing and demand immediate
attention, while the important work, building the next core feature or the marketing that will
actually grow the app, has no deadline and so never screams for you. Days disappear into urgent
trivia while the important work quietly stalls. The discipline is to schedule the important first,
in your best hours, before the urgent has a chance to fill the day. Let some small urgent things
wait, or drop them entirely. Almost none of them matter as much as they feel like they do in the
moment, and protecting the important from the urgent is most of what good solo time management
actually is.</p>
<h2 id="the-takeaway">The takeaway</h2>
<p>Your time and energy are the entire budget of a solo company, so spend them like the scarce
resources they are. Protect your focus, batch your modes, lean on tools that compress the work,
say no to most things, manage your energy as carefully as your hours, and set a pace you can
hold for the long haul. The founders who win solo are rarely the ones who worked the hardest in
any given week. They are the ones who were still shipping, calmly, a year later, when everyone
else had burned out and quit.</p>
]]></content:encoded></item><item><title>How to Handle App Store Rejections Without Losing Your Mind</title><link>https://chineseman.net/handling-app-store-rejections/</link><pubDate>Thu, 04 Jun 2026 00:00:00 +0000</pubDate><guid>https://chineseman.net/handling-app-store-rejections/</guid><description>Getting rejected by the App Store or Google Play is normal, not fatal. A practical guide to the common reasons apps get rejected, how to respond calmly and effectively, and how to avoid most rejections in the first place.</description><content:encoded><![CDATA[<p>The first time the App Store rejects your app, it feels like a personal verdict on your worth as
a developer. It is not. Rejections are a routine, expected part of publishing, they happen to
everyone, and almost all of them are fixable. Learning to handle them calmly, instead of
spiraling, is a real skill that saves you time and stress on every app you ship. Here is how to
think about rejections and how to get through them.</p>
<h2 id="first-it-is-normal-and-it-is-not-personal">First: it is normal, and it is not personal</h2>
<p>App review is a checklist process, often partly automated, run by a reviewer who spends a few
minutes with your app against a long list of rules. A rejection is the system catching one item
on that list, not a judgment that your app is bad or that you failed. Even experienced studios
get rejected regularly. Internalize this early, because the developers who take rejections
personally burn enormous energy on something that is just a normal step. Treat it like a failing
test: information about what to fix, nothing more.</p>
<h2 id="the-common-reasons-apps-get-rejected">The common reasons apps get rejected</h2>
<p>Most rejections fall into a handful of buckets, and knowing them helps you both fix and prevent:</p>
<ul>
<li><strong>Bugs and crashes.</strong> The reviewer hit something broken. The most common and most avoidable
cause, often from not testing on a real device or a fresh install.</li>
<li><strong>Broken or incomplete features.</strong> A button that does nothing, a sign-in that fails, a
placeholder left in. Reviewers explore, and they find the cracks.</li>
<li><strong>Missing or inaccurate privacy information.</strong> Wrong privacy labels, a missing privacy policy,
or data practices that do not match what you declared.</li>
<li><strong>Misleading metadata.</strong> Screenshots or descriptions that do not match what the app actually
does. Stores take this seriously.</li>
<li><strong>Not enough value, or &ldquo;spam.&rdquo;</strong> Apple in particular rejects apps it considers too thin, too
similar to others, or lacking lasting value. This one stings because it is subjective.</li>
<li><strong>Permissions without justification.</strong> Asking for the camera, location, or contacts without a
clear in-app reason.</li>
</ul>
<h2 id="how-to-respond-without-spiraling">How to respond without spiraling</h2>
<p>When the rejection lands, resist the urge to fire off a defensive reply. Instead:</p>
<ol>
<li><strong>Read the reason carefully.</strong> The notice tells you the specific guideline and usually the
exact problem. Read it twice before reacting, because the real issue is often more specific
than your first panicked reading.</li>
<li><strong>Reproduce it yourself.</strong> If they say a feature is broken, go find the break. Often the
reviewer is right and you simply missed it, and fixing it quietly is faster than arguing.</li>
<li><strong>Fix it, then resubmit.</strong> For most rejections, the path is fix and resubmit, and the second
review is usually faster.</li>
<li><strong>If you genuinely believe they are wrong, reply politely with specifics.</strong> Stores have a
resolution or appeal channel. Calmly explain, with steps or screenshots, why the app actually
complies. Sometimes a reviewer misunderstood, and a clear, respectful explanation resolves it.
Never be hostile, because a human reads your reply.</li>
</ol>
<h2 id="when-you-disagree-pick-your-battles">When you disagree, pick your battles</h2>
<p>Sometimes you are right and the reviewer made a mistake, and a clear appeal is worth it. Other
times you are technically right but it is faster and cheaper to just give them what they want, a
clearer screenshot, an extra sentence of justification, a small change, than to win an argument
that delays your launch by a week. Ask yourself whether being right is worth the time, and often
the pragmatic move is to comply and move on. Save your appeals for the cases that genuinely
matter to your app.</p>
<h2 id="prevent-most-rejections-before-you-submit">Prevent most rejections before you submit</h2>
<p>The best way to handle rejections is to avoid them, and most are avoidable with a short
pre-submission checklist:</p>
<ul>
<li><strong>Test on a real device, from a fresh install,</strong> the way a reviewer will, not just in your
comfortable development setup.</li>
<li><strong>Walk through every feature</strong> as if you had never seen the app, looking for anything broken,
placeholder, or dead-ended.</li>
<li><strong>Make sure your privacy labels and policy are accurate</strong> and match what the app actually
does. This trips up a huge share of submissions.</li>
<li><strong>Check that your screenshots and description match reality.</strong> No promising features that are
not there.</li>
<li><strong>Justify every permission</strong> with a clear, visible reason inside the app.</li>
<li><strong>Read the relevant guidelines</strong> before you submit, especially for anything unusual your app
does.</li>
</ul>
<p>Doing this honestly before you submit catches most of what reviewers would catch, and turns the
review into a formality instead of a coin flip. It also pairs naturally with the setup work in
<a href="/how-to-publish-mobile-apps-developer-accounts/">getting started publishing mobile apps</a>.</p>
<h2 id="work-with-the-process-not-against-it">Work with the process, not against it</h2>
<p>It helps to reframe app review entirely. The reviewer is not your adversary, and the guidelines,
frustrating as they sometimes are, mostly exist to keep the store safe and usable, which benefits
you too. Developers who approach review as a fight, firing off angry replies and trying to sneak
things past, have a worse time and often invite more scrutiny on future submissions. Developers
who treat it as a collaboration follow the rules, communicate clearly, and fix what is flagged,
building a track record of clean, compliant submissions that tends to make every later review go
smoother. Your relationship with the store is a long one, spanning every update of every app you
ship. Investing in being an easy, trustworthy developer to review pays off across years, not just
on this one submission. Patience and professionalism here are not only virtues, they are strategy.</p>
<h2 id="the-takeaway">The takeaway</h2>
<p>Rejections are a normal checkpoint, not a verdict. Read the reason calmly, reproduce the
problem, fix it or appeal politely with specifics, and resubmit. Better still, run a real
pre-submission walkthrough so most rejections never happen. The developers who ship steadily are
not the ones who never get rejected, they are the ones who treat a rejection as a quick, routine
fix rather than a crisis. Keep that mindset and the review process stops being scary and becomes
just another step on the way to live.</p>
]]></content:encoded></item><item><title>Privacy as a Product Strategy, Not Just a Policy</title><link>https://chineseman.net/privacy-as-a-product-strategy/</link><pubDate>Wed, 03 Jun 2026 00:00:00 +0000</pubDate><guid>https://chineseman.net/privacy-as-a-product-strategy/</guid><description>Privacy is usually treated as a legal box to tick. For an indie developer it can be a genuine product advantage. How building privacy in from the start can differentiate your app, build trust, and simplify your business.</description><content:encoded><![CDATA[<p>For most companies, privacy is a legal department problem: a policy to publish, a box to tick, a
risk to manage. For an indie developer, privacy can be something far more useful, a genuine
product strategy that differentiates your app, earns trust, and quietly simplifies your whole
business. The companies built on collecting data cannot easily copy you, because their model
depends on the very thing you are refusing to do. That asymmetry is an opportunity. Here is how
to think about privacy as a feature instead of a chore.</p>
<h2 id="the-market-has-shifted">The market has shifted</h2>
<p>People are tired. Tired of being tracked, tired of data breaches, tired of finding out the free
app was selling their information all along. That fatigue is now a buying signal. A meaningful
and growing share of users will actively choose the app that respects them, and many will pay
for it. Privacy has moved from a niche concern of the paranoid to a mainstream preference, and
most apps have not caught up. That gap is where an indie developer can win, by offering the
respectful option in a category full of extractive ones.</p>
<h2 id="we-do-not-collect-your-data-is-a-feature">&ldquo;We do not collect your data&rdquo; is a feature</h2>
<p>Walk through any app store category and notice how few listings can honestly say they collect
nothing. Now imagine yours can. &ldquo;Your data never leaves your device. No account, no tracking, no
servers.&rdquo; That is not a disclaimer, it is a headline. It is concrete, it is rare, and it speaks
directly to a worry your user already has. The stores even display data practices prominently
now, so &ldquo;collects no data&rdquo; becomes a visible badge that sets your listing apart from competitors
burying a long list of collected data types.</p>
<h2 id="on-device-is-how-you-make-the-promise-real">On-device is how you make the promise real</h2>
<p>The catch is that privacy as a strategy only works if it is true, and users and reviewers are
increasingly able to tell. You cannot credibly promise privacy while quietly shipping data to
your analytics provider. The cleanest way to make the promise real is architectural: build so
the sensitive data never leaves the device in the first place. On-device AI makes this possible
for whole categories that used to require the cloud, transcription, chat, classification, and
more. I dug into the trade-offs in <a href="/on-device-vs-cloud-ai/">on-device vs cloud AI</a>, and
told the build stories in <a href="/building-offline-ai-chat-app-personal-llm/">my offline chat app</a>
and <a href="/building-private-speech-to-text-whisper-app/">my transcription app</a>. When the
architecture guarantees privacy, your marketing claim is just a description of how the app works,
which is the only kind of privacy claim worth making.</p>
<h2 id="privacy-simplifies-your-business">Privacy simplifies your business</h2>
<p>Here is the part people miss: choosing privacy does not just help your marketing, it makes your
life as a solo builder easier. If you never collect user data, you have:</p>
<ul>
<li><strong>No data to breach.</strong> The scariest operational risk in software, a leak of user data, simply
cannot happen to data you never have.</li>
<li><strong>Less compliance burden.</strong> Many privacy regulations are fundamentally about how you handle
collected personal data. Collect none, and a great deal of that complexity falls away.</li>
<li><strong>No data infrastructure to build and secure.</strong> No user database to protect, no pipeline to
maintain, no servers logging sensitive information. That is less to build and less to break.</li>
</ul>
<p>Privacy by architecture is not just ethical, it is operationally lighter, which matters
enormously when you are a team of one with no security department to lean on.</p>
<h2 id="the-honest-limits">The honest limits</h2>
<p>Privacy as a strategy is not free or universal. Building on-device is harder than calling a
cloud API, smaller local models are less capable than frontier ones, and some features genuinely
require data to leave the device, syncing across devices, collaboration, anything inherently
social. Be honest about where privacy fits and where it does not. The goal is not privacy
absolutism, it is collecting nothing you do not truly need, being transparent about the rest, and
defaulting to the device whenever you reasonably can. A privacy strategy you cannot actually keep
is worse than none, because broken promises destroy the exact trust you were trying to build.</p>
<h2 id="trust-compounds-across-your-portfolio">Trust compounds across your portfolio</h2>
<p>The deepest payoff of privacy is trust, and trust compounds. A user who learns that your app
genuinely respects them extends that goodwill to everything else you make. For a solo developer
shipping a <a href="/why-i-build-small-apps/">portfolio of small apps</a>, a reputation for privacy
becomes a durable asset that travels from one app to the next. People will try your new thing
because they trust your old thing, and that trust is far cheaper to keep than to win again from
scratch.</p>
<h2 id="communicate-it-without-overclaiming">Communicate it without overclaiming</h2>
<p>A privacy strategy is only as strong as how honestly you describe it. The temptation is to reach
for absolute language, &ldquo;100% private, totally anonymous, we can never see anything,&rdquo; but absolutes
invite scrutiny and are usually not quite true. Far better to be specific and verifiable: say
exactly what stays on the device, exactly what, if anything, leaves it, and why. &ldquo;Your audio is
transcribed entirely on your phone and never uploaded&rdquo; is a stronger claim than a vague
&ldquo;privacy-focused&rdquo; badge, precisely because it is concrete enough to check. Users have been burned
by privacy theater, companies that say the right words while doing the opposite, so they reward
specificity and punish vagueness. Match your words exactly to your architecture, claim only what
is literally true, and your privacy story becomes something people can trust rather than one more
slogan they have already learned to ignore.</p>
<h2 id="the-takeaway">The takeaway</h2>
<p>Treat privacy as a product decision, not a legal afterthought. The market increasingly rewards
it, &ldquo;we collect nothing&rdquo; is a genuine feature, on-device architecture lets you make the promise
real, and collecting no data quietly removes whole categories of risk and complexity from your
business. For an indie developer competing against companies whose model depends on extraction,
respecting your users is not just the right thing to do. It is a position those competitors
structurally cannot copy, and that makes it one of the strongest strategies you have.</p>
]]></content:encoded></item></channel></rss>