269. Tianmu Scenery 中
The cover photo was taken at Tianmu Scenery on Mount Tianmu in Lin’an, where I went the weekend before last. A really nice place, super cool in summer with plenty of fresh air. The Liuchun House up the mountain is delicious, highly recommend a visit, way fewer people than Jiuxi Yanshu.
Recording down-to-earth trending tech I see every week, filtered and published here. Follow this weekly newsletter to get update notifications
New Article
You Don’t Know Embodied AI: From a Tiny Robot Dog to Optimus
https://tw93.fun/en/2026-06-07/robot.html
New article is here. Back in April I assembled a little robot dog. I posted a few things about the build on Twitter, you’ve probably seen them. Then I wrote on and off for almost 2 months and finally finished it, the longest article I’ve ever written. Give it a read.

Product Releases
Mole’s desktop client 1.6.2 is here
https://mole.fit/
I’m working to round out Mole desktop’s nice features as fast as I can. Just shipped 1.6.2, go update. If you haven’t bought it yet and are interested, you’re welcome to grab it. The price is expected to return to normal after June 15.
- Keep Screen On (new): keep your Mac awake from the menu bar, with selectable durations. Restoring on launch now completes quietly, no more sudden admin-permission prompts.
- Privacy Check (new): the menu bar popover shows camera or microphone usage status and sends a local notification, so you can see it without opening the main window.
- Clean Screen (new): switch the screen to a solid color to make wiping the screen and keyboard easier. Press Escape to exit, and you can enable input lock too.
- Software updates cover more apps: Software now checks the Mac App Store, Sparkle, Electron, Homebrew cask/formula, Homebrew catalog, and GitHub Releases, with clearer progress.
- Uninstall finds more leftovers: leftover detection now covers receipts, Launch Items, Group Containers, Darwin temp caches, and more App Support traces.
- Clean is more useful while staying careful: Mole finds large directories like build, dist, target, and node_modules in your projects, but leaves them for you to review by default.
- Analyze scans faster: disk analysis adds concurrent computation, cache reuse, and subdirectory prewarming, so large directories open faster.
Kami, where good content deserves good layout, has shipped a bunch of updates
http://kami.tw93.fun
- Added a landing-page module. The Mole site and Kami’s own site you’ve seen are actually generated by Kami bootstrapping itself. It’s great for your product intro page, and it even thinks through Geo, Sitemap, and Vercel deployment for you, so you can build a site worry-free.
- Finally supports Marp slide mode, back to the days of writing slides in Markdown. One md file exports to HTML, PDF, or PPTX via marp-cli. The theme ships with Kami’s colors and fonts, works out of the box, and stays lightweight.
- Turns out there are quite a few Korean users, so on top of Simplified Chinese, Traditional Chinese, English, and Japanese, Kami now has fine-grained Korean support and multi-template designs. If you’re a friend from Korea, you’re very welcome to try it and send me feedback.
- The one-pager module, portfolio, and slides now all support importing your brand logo and other brand cues, so Kami blends right into your brand style.
- Since we’re engineers, Kami also does automatic syntax highlighting for code, coloring it for you at build time with no external CSS needed.
- One more fun thing: although Kami is also a Skill, it’s actually 70% code rather than Markdown. If you want to learn how to write a Skill that’s obedient and useful by default, you’re welcome to read the code, it might help https://github.com/tw93/Kami
Made a nice website for Kaku
http://kaku.fun
Finally done, built using the Kami skill, with a lot of docs filled in, and it supports both Chinese and English. Little Kaku finally has its own website, go take a look. Also, Kaku 0.12 is out, remember to update~

Just Looking Around
Come check out my latest desk setup
Really happy, it arrived over the weekend. Before, I had a thick book plus a slab of mahjong tiles under my monitor, and the height was just right, but my OCD wanted a clean, unobtrusive 30×20×10 block to put underneath. I looked at lots of dedicated monitor risers, all too big, and looked at acrylic boards too, a bit rough, no solution.
Here’s the kicker: somehow while browsing PDD I stumbled onto these Buddha-statue bases. A perfect fit, ten times cheaper, and they work great!
|
|
|
Can’t believe I only just watched “A Love Letter to Grandma”, highly recommend
Over the weekend I went to see the film “A Love Letter to Grandma”. It’s about to leave theaters, really good and really moving, the best film I’ve seen in a cinema in the past couple of years. The young actors were cast really well. If you haven’t seen it, definitely go when you have time!

Just Saying Thanks
Some trade-offs I’ve made building products
More than 20 days after Mole Mac launched, sales hit a small milestone. I want to share some of the trade-offs I made along the way, and why early on I handled every bit of user communication, Q&A, and refunds entirely by hand. Hopefully it gives some input to folks building their own indie products.
First, why do I handle user Q&A, feedback, email replies, refunds, activation-code resets, price-difference refunds, and so on completely by hand, even though they’re less than 1% of users and I could honestly spend half an hour writing an Agent to handle them? This is a common trap for engineers building products, something that looks efficient but isn’t actually great. There are two considerations here. Only by genuinely handling users’ after-sales issues can you feel what users really need, why they want a refund, why something feels hard to use, their real suggestions and feedback. You can even exchange emails to surface more of their real needs, and through this process you get fluent at knowing the best replies and solutions for every kind of problem. That way, once the product gradually grows, bringing in an Agent for efficiency works much better than doing it from the start.
Second, why I don’t recommend building a so-called after-sales system from day one. This is an important technical-judgment call for a product engineer: prioritize getting the main product features right, rather than standing up all your peripheral support systems up front. AI is fast, but it still pulls your precious time away from improving the product itself. It looks like it costs no time, but it actually costs you a lot. Spending that time improving the product and meeting users’ real needs is far better.
Next, I want to talk about some common pitfalls when engineers transition to indie product development. First, what’s the difference between a good product and an average one? A good product is better at deciding what not to build, at which stage each feature is best for the product and users, and which features, even if good, don’t belong on the product’s main line and shouldn’t be added, otherwise it easily turns into a mishmash that’s hard to maintain. Another trait of a good product is that you actually hold the next six months of its development in your head, clearly knowing which features each version should add, which are false needs, and which features should sit right where users naturally reach for them. A product that ordinary beginners don’t need a manual for is a good product. That’s also why, when some friends suggested adding nice Mac features to Mole, I apologetically declined, staying restrained and firmly believing in the product view of “don’t add entities unless necessary”.
Mole’s positioning is the quiet guardian of Mac system optimization, cleanup, and maintenance. Keep that positioning, refine it, and make it the best Mac maintenance software in the world. If 1 in every 100 Mac users worldwide used Mole, then Mole would truly be good, and that’s what I chase as a product maker: letting more non-technical folks enjoy the fun of an engineer’s product. Recently some visually impaired users have been using Mole and ran into a few accessibility issues, which I’m rushing to fix. I’m really looking forward to how it works and feels for them.
Maybe in the AI era a lot of things have indeed gotten much more convenient, but communicating with people can’t be replaced by AI, otherwise it loses its meaning. AI can boost efficiency, but it can hardly deepen the feeling and trust between people. This might be a good way for products built with AI Coding to keep a human touch going forward.
Since this is my first paid product, there may be things I haven’t thought through, and I welcome experienced friends to point them out and offer suggestions.