The world is a shitshow — but you keep playing, grinning through it. And if you have to coax yourself into staying in the game, then you coax.
A lot of things don't run on the logic of effort in, reward out. They don't move in the direction you expect them to, either.
Most things, in fact, won't go your way — and that isn't the exception. It's the baseline.
You do the work, carefully, and the result is flat. You pour yourself in, and the feedback is a trickle.
This is just what the real world does. Which is exactly why managing your own expectations matters more than it sounds like it should.
i. On getting humbled
Expectation management is more load-bearing than it looks. Whatever we set out to do, some quiet expectation goes up inside us — whether we plant it deliberately or it just assembles itself while we're not looking.
Set it too high, watch the result fall short, and the pain isn't likely. It's guaranteed.
Take FreeGrid.
I pushed it everywhere — Moments, my public account, the group chats — and ran the math in my head: worst case, a dozen-odd stars. Maybe a few tips. And if I let myself dream a little, maybe even enough to cover the ¥688 developer fee.
Reality: three hours after launch, the only star on the GitHub page was the one I'd clicked myself.
That stung, a little.
How to put it — like setting off fireworks for yourself, then turning around to find the stands empty, just you standing there, applauding into the dark.
Though writing it down now, I find I've already let it go. I'm even smiling.
ii. Why it stung extra this time
The truth is I'd been off all weekend.
Maybe I'd been running hot for a stretch and was now swinging through the low-energy half of the cycle.
Maybe it was a few things stacking up at once, until I started second-guessing the whole enterprise: what is the point of any of this? Am I actually getting better — or just moving my own heart and calling it progress?
It wasn't really about FreeGrid. FreeGrid was just the last straw that broke the pile.
Look back a little. The AI-novel project I kicked off at the end of April: two months in, nothing to show. The internship handed me work in a field I knew nothing about, and grinding it out cost me a good chunk of my drive. I read Li Xiaolai on learning English, hit at least three hours of training a day, and flinched — kept stalling, never daring to start. The flag I planted in May — write one 3,000-word piece this month — went unmet.
All these unfinished things piled up like unpaid bills, and this weekend they all came due at once. The mood collapsed.
Rationally, of course, I know the next move is to diagnose. Why did the result miss? Is it the positioning, the way I marketed it, a fuzzy sense of who it's even for, a channel too narrow? What's the actual bottleneck right now? Is there a sharper way to fix it? Do I pivot and keep testing?
All worth asking. Every bit of it.
But when you're down in it, you can't just flip into analysis mode. Especially when several things land on you at once — your drive gets sanded down, a little at a time.
iii. But did I really walk away with nothing?
No.
Over these two months, I at least proved — on the internship side — that I can plan and execute. I learned how to coordinate tasks, how to deliver on work someone else hands me, how to report progress without wasting anyone's time. Planning, execution, communication: all of it got its reps.
Alongside that, I sharpened a fair number of skills — especially working with Claude Code, where I turned up a whole set of new ways to work. My ability to get things done with an AI, at speed, is genuinely still evolving.
I built a personal blog. I built a Claude Code playbook and got it to pay. I took FreeGrid from a single idea to an app I can actually put in front of people. Along the way I picked up a lot — about coding, about GitHub, about landing pages, READMEs, launch copy, and how to talk about a product at all.
Compared to where I stood at the start of this year, I've come a long way.
So I won't let failure define me single-handedly.
When success and failure sit side by side, the better question is: how did the success happen? Which path can I run again? What failed? What did the failure expose? What do I adjust next time?
Those answers are the part that's actually worth money.
iv. Did FreeGrid fail? A six-point post-mortem
i. It was an expectations failure, not a product failure.
I did set the bar too high at the start. Low expectations, high experimentation is the better posture for a cold start. Especially for a small product with no real market validation, no established traffic channel, no precise path to the people who'd want it — expecting a flood of response the moment you ship is a machine for manufacturing pain.
The saner frame: treat every launch as an experiment. Not I shipped it, so someone owes me a reply, but I shipped it, so now I'm holding a set of real signals. No feedback is also feedback. At minimum it tells you something: the channel isn't strong enough yet, the pitch isn't sharp enough yet, the people you reached weren't quite the right people yet.
ii. I let the feed get to me — a failure of information diet.
Lately my Moments and the wider internet have been a parade of other people's wins: someone took a prize, someone monetized, someone's startup is showing results, someone already had the path paved for them and just has to prove they belong, someone's traveling everywhere, someone's brand took off, someone's novel is paying out.
Soak in enough of that and your head gets noisy. I envied them — was jealous, even. Why does it work for them and not for me?
When I've got results of my own, it's fine: you're strong, and I'm not far behind. But when I've got nothing to show yet, the same feed lands like a needle.
So the fix is almost embarrassingly simple: look less.
If a few people are genuinely worth watching, fix the list, fix the time, scan fast.
Don't leave yourself parked, long-term, in front of other people's highlight reels.
What they post is the result. What I'm living is the process. Holding my process up against their results is a distortion engine by design.
iii. FreeGrid was, at bottom, a flash-of-inspiration bet on monetizing.
FreeGrid started as a friend's idea; I turned it into a product — gave it shape, tooling, a visual identity. It has real value, sure. But at its origin it was closer to a spark than a strategy.
No market research, no validated demand. With an idea like that, one in a hundred working out is a decent hit rate.
Today I scrolled past a solo developer's post on Xiaohongshu about a product that happened to blow up — and if it never went through systematic market research, then a big slice of that success is luck too. FreeGrid is simply one of the ninety-nine that didn't land.
iv. The sample is too small to hand down a death sentence.
If only a few dozen people have ever laid eyes on the thing, it's not fair to stand here and convict it of nobody needs this.
No feedback doesn't have to mean no demand. It might just mean the sample is too small. Put it in front of a few thousand — a few tens of thousands — and even at 1% interest you'd have dozens, maybe hundreds, of potential users.
The problem may not be the product. It may be the size of the reach.
v. I'm not giving up on FreeGrid.
It's my first child. I won't let its story stop here.
What's next is opening the marketing channel — I need a brand or a pipeline that actually puts the product in front of strangers, not just a circle of people I already know entertaining itself.
I need to widen the board.
I want FreeGrid out of Moments, out of the little group chats, and in front of the people who might genuinely need it.
vi. The product isn't the problem. Telling the story is the whole game.
FreeGrid's GitHub page, its landing page, its README — they're a real step up from anything I've made before. This is not something I slapped together. It has design, a point of view, a voice, and the fingerprints of someone who actually sweated the details.
So the key question now probably isn't how bad is the product — it's that I haven't told its story well yet.
- Why does anyone need it?
- What pain does it actually kill?
- How is it different from any other expense tracker?
- The ideas underneath it — about money, about freedom, about playing the long game — how do I put them in a way an ordinary person actually gets?
- What headline, what screenshot, what example, what short video, what essay would make a stranger want to click in and give it a try?
That is what I need to think about, and train, next.
v. A side note: the post-mortem on the novel
Two months of AI-assisted novel writing — why did it produce nothing? Did I ever actually sit down and study the market? Did I know what readers want right now? What the platform pushes, what people click, what the comment sections are tearing apart, how the chart-topping titles engineer their payoffs?
No. I just draped my own idea over the top and waited to be liked — which is betting on 90% luck.
The right move would have been: look first at what readers are reading, then borrow, imitate, fold in one small twist of my own — and watch the luck component drop below 50%.
Writing fiction is a luck game. I won't dress that up.
Which is exactly why it belongs as a side project. If it hits, that's surprise income. If it doesn't, I still bank the reps — on expression, on story, on a feel for the market, on the long muscle of making things over years.
Seen that way, it's still worth doing. Just not with a this has to work immediately mindset.
Coda
Writing this far, I feel it again — the pull of writing itself.
A mood that started out rotten got taken apart on the page: laid flat, examined, reassembled.
The tangled feelings slowly turned into material. The bad moments slowly turned into method.
Somewhere in the writing, I seem to have found the next step again.
It's exactly as Li Xiaolai puts it: words are the best means of production.
Words will always be a means of production — and I have no intention of handing mine over to anyone else.
I don't want to only consume other people's output. I want to keep producing my own.
I'll keep writing, keep building, keep getting it wrong, keep machining my failures and my wins alike into experience.
The world is a shitshow — but I'm still going to play it with a grin.
Coax myself, cheer myself on, grit my teeth, laugh at myself — whatever it takes.
Either way, I'm still at the table.
Thank you, Li Xiaolai. And thank you, writing.
I think I know what to do next.