My 2025 Year-End Review
My 2025 year-end review, looking back on my indie-hacking journey and ahead to my plans for building products for a global market
Hello, everyone. It is now 2026, and I have finally finished the year-end review I have been writing. What a relief. In this review, I look back on my indie-hacking journey over the past two years, both to reflect on what I have learned and to share my experience in the hope that it will help others.
I have covered quite a lot, so this will take some time to read. I recommend saving it until you have enough time. I listened to many podcast interviews this year and found them deeply inspiring, so I have written this review as a Q&A. Feel free to jump straight to whichever questions interest you.
👋 Who are you, and what is your family background?
I am Fox, an indie developer. You can find me on X at @indie_maker_fox. I created the Mkdirs directory template and the MkSaaS SaaS template.
I earned a master's degree in computer science from one of China's top-three universities. I now work as a senior software engineer at one of the country's top-three internet companies. I have more than nine years of professional experience and have been writing code for over 15 years. I am not a distinguished expert; I simply have a great deal of programming experience.
I come from an ordinary family. My parents are farmers, and our family did not have much money or many resources. From childhood onward, I relied on my own efforts to study, get into university, start working, marry, and have children. Overall, the journey has gone fairly smoothly.
Once I started working, I earned a decent income and could support my family. I invited my parents to live with us and help care for our children, which is what gives me enough free time to pursue indie development. I now own a home and a car, although I have not yet paid off the loans.
🧑💻 What programming and development experience do you have?
From 2009 to 2016, while studying for my bachelor's and master's degrees, I built websites with the SSH stack (Java), .NET (C#), and Django (Python); desktop applications with JavaFX and Swift; mobile applications for Android and iOS; and, of course, mini programs.
In 2014, I won first prize in a programming hackathon held by an internet company. The prize was that year's latest MacBook Pro. In 2018, I released an Android app on Google Play and in Chinese app stores, earning more than RMB 10,000 in side income that year.
I have also contributed to open source. For example, I discovered a bug in Chromium and had code merged into it. However, I have not open-sourced many projects, and their code quality is not especially high. My GitHub account currently has nearly 2K followers and ranks within the top 500 in China.
⛵ When did you get into indie development?
I started exploring indie development in February 2024 because I wanted to use my spare time to build a side business and generate passive income.
I had previously built mobile apps and mini programs for the Chinese market, so I had gone through domain registration, mini-program registration, software copyright registration, and all the other procedures. I barely made any money, but there was no shortage of paperwork. It did not just test my side-business ambitions; it tested my sanity. Anyone would lose their enthusiasm for making money after going through that.
In 2024, I learned that there was another way to build products: instead of serving only users in China, I could serve users around the world. This is what Chinese developers call taking a product global. Going global is neither as simple nor as difficult as it sounds, but I was rather lost when I first encountered the idea.
📚 How did you get started with indie development?
I began exploring indie development in my spare time in February 2024. By April, I had worked through the entire process of taking a product global. It took about two months of spare time for me to find my bearings and understand the technology stack and workflow. Here is a brief account of how I learned.
(1) Get past the firewall and onto X for firsthand information
At the beginning of 2024, unlike today, there were not articles everywhere explaining the technology stack and process for indie development. Very little information was accessible from China. I quickly realized that X was the fastest and easiest place to get firsthand information, so I began spending a great deal of time there.
After a while, I followed many excellent indie developers in China and abroad and learned from their experience. For example, I studied the stack behind Marc's Shipfast, read Tibo's tutorial, The Ultimate Guide to Ranking #1 on Product Hunt, and learned what they were building and how they worked.
I also followed many excellent Chinese developers: Miantiao, who is passionate about new technologies; Geek, who loves sharing open-source projects; Mao Ge, who has formidable frontend skills; and Arvin, founder of LobeChat, among many others. Posts from numerous developers have helped me tremendously.
⚠️ I may not have time to compile and share a list of every outstanding Chinese and international developer I follow on X. If you are interested, I recommend looking directly at my following list. I deliberately keep it below 1,000 accounts, so you can selectively follow the people there.

(2) Learn tools deeply and build a knowledge system
To master these indie-development tools, I created a folder in Obsidian with many subfolders for categories such as frameworks, deployment, databases, and payments. Each subfolder contains documents covering individual tools, along with information about them and my hands-on experience using them.
I try many tools and document the entire experience. Over time, I have become intimately familiar with them and know which one is best for a given situation. This process consumed a great deal of time and energy, but it also allowed me to learn an enormous amount in a short period.
It was all worthwhile. These notes laid a solid foundation for choosing the technology stacks behind my future Mk-series templates.
For example, why did I choose Sanity as the CMS for the Mkdirs directory template? Because I had tried Sanity and found it powerful, well documented, easy to learn, and extraordinarily generous on its free plan. It is especially well suited to managing directory content, with extremely low operating costs.
Another example: why did the MkSaaS SaaS template use Fumadocs for its docs module? Because I had tried Fumadocs and found it open source, free, well documented, easy to integrate, and frequently updated. It was far ahead of comparable products such as Nextra and Content Collections.

(3) Learn while building: practice “learning by doing”
Everyone learns differently. For me, the most efficient method is to watch videos first, read the documentation second, and practice last. If you want to learn quickly and thoroughly, you need to study while building. This is the idea behind “learning by doing,” a phrase that was popular on Chinese X in 2025.
I usually watch YouTube videos during my lunch break to learn how to use key technologies such as Sanity and Payload. Over the past two years, I have probably watched hundreds of technical videos. They keep me informed about the latest cutting-edge technologies and where new technologies are headed.
In April 2024, I read Astro's entire official documentation on my phone during a company retreat. Soon after returning, I used Astro to build my first website, Haitang Poetry Society, a site for studying classical Chinese poetry. I open-sourced it in July 2024, and the project now has nearly 1K stars.

🤑 How did you solve the challenge of accepting global payments?
For most people who want to become indie developers, the hardest problem is probably accepting payments on their websites. There are countless questions when you want to collect money from customers worldwide while ensuring that the revenue reaches you safely and legally. How do you register a Stripe account? Do you need to incorporate a company? How do you do that? How much does it cost? Do you need to pay taxes? How do you file them? How do you transfer the revenue into your bank account? And so on.
In March 2024, following online tutorials, I registered an individual Stripe account using only my passport and a Hong Kong bank card. It really was that simple, and you can still register this way today. By studying the open-source Stripe Subscription Starter, I learned how Stripe payment integrations work. However, I never fully understood whether an individual Stripe account was safe, so I was reluctant to use mine.
In June 2024, I learned that Lemon Squeezy could also process payments, so I applied for and was approved to open a Lemon Squeezy store. Then Stripe acquired Lemon Squeezy in July, and applications submitted after the acquisition received no response. Overseas developers on X were also complaining about more and more Lemon Squeezy problems, so I was reluctant to accept payments through that account as well.
During China's National Day holiday in 2024, when the Mkdirs template was nearly complete, I decided to establish a US company and apply for a business Stripe account. Relying on bits and pieces of tutorials online, I filled in all the paperwork through Stripe Atlas and formally applied to incorporate a US company called MkSaaS. That is right: although the MkSaaS template launched in 2025, I had already decided to build it when I incorporated the company in 2024.
Ten days later, my company was established! I could hardly believe it. The entire process took place online, and for less than $300, I had formed a US company and obtained a US bank account into which I could withdraw my Stripe revenue. The process still had its difficulties, such as arranging a translation of my driver's license and getting a US phone number (though a US residential address was not actually required). Even so, such a simple, fully online application process would be unimaginable in China.

💰 What advice do you have about payments?
-
If you have already registered an individual Stripe account, simply use it. Do not overthink it, and do not worry about how to pay taxes—just act as if it is not an issue. Many people I know have used individual Stripe accounts normally for years. No one generally bothers legitimate small businesses.
-
If you are worried about the security of an individual account, incorporate a US company and then register a business Stripe account. Do not hesitate. The cost is roughly a $300 registration fee plus several hundred dollars in annual maintenance. If you think indie development cannot recover that investment, I would advise you to give up now.
-
If you want greater peace of mind, I recommend Mr. Ou's Global Payments Handbook. I had already secured a business Stripe account before buying it, but the handbook still answered many of my questions, and the professional services Mr. Ou provides are unquestionably worth the price.
-
If you truly cannot get a Stripe account, try the global payment platform Creem. I was the first person on the entire Chinese-language web to share a Chinese registration tutorial. However, I have not used Creem in a real project. I have only stayed in touch with its developers by email and, in a sense, watched it grow.
-
I know payments are the first major hurdle for many people entering indie development, but today that hurdle is not difficult at all. People hear one day that one platform is closing accounts and the next that another has disappeared with its customers' money, so they remain hesitant and indecisive. Anyone who wants to accomplish something significant should take that first step with determination and courage.
💵 What did you build, and how much did you earn?
The three products I have built that each earned more than $1,000 are the MkSaaS SaaS template, the Mkdirs directory template, and the IndieHub directory.
From October 21, 2024, when the Mkdirs directory template launched and received its first order, through January 1, 2026, my total revenue was $117,914.
My revenue is public. You can see it on both IndiePage, built by Marc, and TrustMRR, also built by Marc.
I also earned revenue through other channels, such as commissions from directory sites, and I did not deduct my costs. Those figures are scattered across different places and are difficult to tally.

📙 Why did you build an indie-developer directory?
On Children's Day, June 1, 2024, I launched the Indie Developer Directory. Why did I build it?
- I found that Next.js was the most popular full-stack framework among indie developers, so I needed a website project to practice building with Next.js;
- While learning about indie development, I had tried and documented many relevant technologies and tools, and I wanted to organize and share that material.
I began building the site methodically in May 2024. One month later, I launched the Indie Developer Directory.
Today, version 1.0 of the Indie Developer Directory is open source. Version 2.0 is IndieHub, a directory built with the Mkdirs template, which is now live and operating. Version 3.0 is MkDollar, a tool site built with the MkSaaS template, which is also live, with more features still under development.
They may look like three separate websites, but in reality, I never had time to realize my original vision. I successively rebuilt it as IndieHub with the Mkdirs template and then as MkDollar with the MkSaaS template. MkDollar still has a long road ahead.

📚 Why did you build the Mkdirs directory template?
Development of the Mkdirs directory template began on August 3, 2024, and it officially launched on October 21, 2024.
(1) Where did the idea come from?
From June to July 2024, I was launching and operating the Indie Developer Directory. As part of that process, I researched directory sites, focusing on Toolify, Microlaunch, Uneed, DevHunt, and MacTools. I mainly studied their site features, operating strategies, and business models.
Gradually, after the experience of building and operating the Indie Developer Directory, I began to consider creating a directory template. I understood the technical architecture of directory sites, and implementation was not difficult. I only needed to make the template easy to use and inexpensive to operate.
(2) What makes Mkdirs different?
While the Mkdirs directory template was still in development, an overseas developer had already used ShipFast as a reference to build the DirectoryFast template. Another template developer had built Directify, a Directory as a Service product that sold subscriptions to a directory-building platform rather than a template.
Honestly, I was a little nervous. But when I saw that they were generating revenue, I decided to keep going, finish the template, launch it, and see whether there was still an opportunity. Mkdirs also had clear differentiation. First, its UI was visibly better than its competitors. Second, its operating cost was almost zero because I used Sanity, which combines a database, file storage, and content management while remaining easy to extend. Finally, its technical support would certainly exceed that of overseas products. I had planned from the outset to provide detailed documentation and videos along with fast technical support—something overseas products could not match.
(3) Where did your first users come from?
Mkdirs's first users came from X. While developing it, I followed the example of overseas developers and built in public on X: openly sharing what I intended to build, how development was progressing, what problems I encountered and how I solved them, and what small achievements were worth celebrating. They also disclosed their revenue, of course, but I had no revenue at the time. I was essentially entertaining myself. My posts were technical and received very little traffic.
When the project was nearly—but not quite—finished, someone contacted me and said he wanted to buy the Mkdirs template. I told him it was not ready and asked whether he could wait a few days. He said he wanted to start using it and asked whether he could pay first. I was stunned. Did he really trust my product that much? That evening, I configured the payment system. He successfully placed an order for the template and also helped me confirm that the online payment flow worked. That was how I made the first sale of my life!
The day after that first sale, I immediately announced the official launch of the Mkdirs directory template. To my surprise, it took off: revenue passed $2K in ten days and $10K in 40 days. Customers soon began making money from the directory sites they launched, which made it even more popular. Everything exceeded my expectations.

🚀 Why did you build the MkSaaS SaaS template?
Development of the MkSaaS SaaS template began on February 16, 2025, and it officially launched on April 13.
(1) Where did the idea come from?
As mentioned earlier, when I incorporated my US company during China's National Day holiday in 2024, I named it MkSaaS. I already had the idea of building the MkSaaS SaaS template and had purchased the domain. The unexpected success of the Mkdirs directory template strengthened my resolve to build MkSaaS.
With so many open-source and commercial SaaS templates already available, why build another? The reason was simple: I was dissatisfied with their technology choices, they had too few features, and they had too many bugs. Given my personality, I would have built a template before building any product directly anyway, so I decided to turn the template itself into a product.
(2) What makes MkSaaS different?
MkSaaS differs in three main ways: its technology stack, code quality, documentation and videos, and support for multiple branches and projects.
- Technology stack: MkSaaS's technology choices were not only novel but, one might even say, very bold.
For example, rather than using the traditional Auth.js to implement authentication, I used the emerging international favorite Better Auth. It could hardly be called particularly stable or powerful at the time, but I was betting on its future. Sure enough, in September 2025, Better Auth acquired Auth.js.
As another example, instead of the traditional Contentlayer or Content Collections for the blog and docs modules, I used the latest documentation framework, Fumadocs. I chose it because I had tried it and found it powerful, easy to integrate, rich in components, and rapidly updated. It let me unify the Markdown parsing and rendering pipeline for the blog and docs modules, and even for other documentation-based pages.
And although MkSaaS also integrates shadcn/ui by default, I wanted to simplify landing-page development, so I bundled dozens of impressive landing-page components from MagicUI and Tailark. This truly made building a landing page feel like assembling blocks: with a single prompt and a screenshot of the desired page, AI could immediately generate the corresponding code. Before MkSaaS, no SaaS template had thought of doing this.
The successful stack choices earned MkSaaS glowing reviews after launch. Many customers praised the stack as tasteful, and it even pushed other Chinese SaaS templates to release second versions whose technology choices were almost identical to MkSaaS's.

- Code quality: From the beginning of the template's system architecture design, I made sure the code would be highly usable, extensible, and maintainable.
Usability means offering many functional modules. Whether or not you need auth, newsletter, storage, payment, blog, docs, or the other modules common to SaaS sites, they are all implemented and easy to use. Most require only a little configuration.
Extensibility means that modules can be extended. In the newsletter module, for example, you can choose Resend or Beehiive. If your preferred option is missing, you can add a new provider by implementing the interface, and usually AI can handle it from a single prompt.
Maintainability means that the code is easy to maintain. For example, upgrading Fumadocs, upgrading Better Auth, or upgrading Next.js is generally straightforward when following the documentation, because the template code is largely written according to the best practices in the official docs.
- Documentation and videos: The MkSaaS documentation may be the best documentation of any SaaS template, and its video course is the longest.
The MkSaaS documentation is extremely detailed, covering every step from pulling the code and configuring environment variables to deploying the site. The video course is equally detailed: seven videos totaling around six hours. Producing them required outlining, recording, editing, post-production, and many other time-consuming steps. Almost no SaaS template, in China or abroad, has invested so much in this area. All of this content is freely available. New indie developers with strong learning skills can use these resources to get started quickly, and many users have indeed become customers because of them.
- Multiple branches and projects: MkSaaS supports a variety of deployment methods and provides the source code for multiple real-world projects built from the template.
“Multiple branches” means that the MkSaaS template repository has several branches supporting different deployment methods:
- The main branch can be deployed to Vercel, Netlify, AppWrite, or a Docker environment
- The cloudflare branch can be deployed to Cloudflare Workers with a Postgres database
- The cloudflare-d1 branch can be deployed to Cloudflare Workers with a Cloudflare D1 database
“Multiple projects” means that, in addition to the template source code, customers receive the repositories for four real-world projects:
- Blog website: https://indiefox.me
- Haitang Poetry Society: https://haitang.app
- MkDollar: https://mkdollar.com
- AI outfit-changing website: source code provided by Yihui to accompany a video tutorial
In short, MkSaaS is the highest-quality project I have completed independently to date, with my most comprehensive videos and documentation. There is no close second.

(3) Where did your first users come from?
MkSaaS's first users also came from X, since I once again chose to build in public there. This time, however, I built in public across several social platforms at once, so the first wave also included users from Xiaohongshu and Jike, though probably in smaller numbers.
⚠️ I had not created a Discord community before launching MkSaaS, so I did not build it in public on Discord. In hindsight, if I had created the community on the first day of development, used feedback to prioritize features, and shared progress there, the launch might have performed even better.
After the MkSaaS template launched, the composition of my monthly revenue began to change. MkSaaS became the largest contributor, followed by Mkdirs and IndieHub. In November 2025, monthly revenue finally exceeded $20K, and my total indie-development revenue passed $100K, reaching the goal I had set ahead of schedule.

📢 How did you market your products?
- Building in public on X
I mainly market the templates by building in public through my personal X account. I share development progress, successful experiences, revenue milestones, lessons from failures, and the various dilemmas I encounter while developing. My posts generally receive modest traffic, but I keep doing it. You cannot judge this work only by traffic; it is genuinely valuable.
- Promoting in WeChat groups
I tried promoting in WeChat groups, but the results were poor. Most members wanted to make money through indie development rather than spend money on a template. A few questioned or criticized the product in every possible way. Mishandling those conversations was awkward and could even get me removed from the group. I have posted about this on X.
- Posting on Reddit
From time to time, I post in directory- or SaaS-related subreddits to share new product features or milestones. These efforts have some effect, but the communities have small target audiences and many spectators, so the total number of overseas orders is limited. I shared my experience posting on Reddit on X.
- Buying directory-submission services
I bought a backlink-submission service from Uneed Directories. Honestly, the result disappointed me. The service had hired an outsourced team to handle submissions, and that team was careless: incorrect categories, blurry images, and similar problems were everywhere. It shattered my idealized view of overseas developers.
⚠️ If you want to buy a backlink-submission service, consider Submitdirs, built with the Mkdirs template by the creator of the well-known AITDK browser extension, blank. If you want to discover and manage submitted backlinks, consider MkDollar Backlinks, which supports DR lookup and is free to use.
- Email-list marketing
I tried using Resend Broadcast to send bulk emails to people who had visited the template sites, but the results were poor. Many users never opened the emails, so I gave up after sending a few campaigns. I have posted about this on X. Honestly, though, if you can keep at it, you should.
- Affiliate programs
The Mkdirs directory template integrates the PromoteKit affiliate system, while the MkSaaS SaaS template integrates the Affonso affiliate system. If it makes sense, you can build an affiliate program, but I recommend not starting too early and keeping commissions reasonable. I have repeatedly shared my experiences with and comparisons of affiliate systems on X.
- Partnering with KOLs
Find suitable KOLs for the product category and ask them to help promote it. After launching my templates, I approached several major X creators, some of whom continue to work with me, including Yihui and Liu Xiaopai. Honestly, it was a rare privilege to collaborate with such outstanding people. I would not even know whom to approach overseas.
- Running a Discord community
Running a Discord community may have been the best decision I made in 2025. It is probably the main source of template revenue. My approach is to keep the community free and open. It offers both pre-purchase consultation and post-purchase technical support, along with development updates, feature-request voting, free giveaways, user-experience sharing, open-source projects, and more. All of this is free whether or not someone buys a template. The community may provide more value than some paid communities.

📕 What have you learned about building products?
The two most important lessons are how to build a customer community and how to earn users' trust.
(1) How to build a customer community
After launching the Mkdirs directory template, I created two WeChat groups. I planned to promote the template there and move prospective users into a VIP customer group after they became customers. It sounded wonderful in theory, but events quickly exceeded my expectations, and I could not handle them alone.
Indie development was my side business, and I could not allow it to affect my day job. Yet the flood of WeChat messages made it impossible to focus at work, and before long, I fell ill. After careful consideration, I closed the WeChat groups and kept only the official support email and X direct messages as contact methods.
Customers at the time may have found that decision hard to accept and assumed I no longer wanted to provide technical support. In reality, I never stopped providing support; I simply moved it from WeChat groups to X direct messages and email, which were more manageable for me.
When the MkSaaS template launched in 2025, I created a Discord community. Existing Mkdirs customers could also get technical support there, so I used the same community to support customers of both Mkdirs and MkSaaS.
Many readers may not have used Discord, so here is a quick overview of its advantages over WeChat groups:
- Discord has virtually no member limit. WeChat groups are limited to 500 people, and QR-code entry works only until a group reaches 200, after which members must be invited manually. That is cumbersome.
- Discord supports multiple channels for different topics. Members can also be assigned to groups with different permissions.
- Discord supports bots. For example, I have run several free giveaways using a giveaway bot, with good results. That helps improve user retention and engagement. You can also build your own bot to automatically post messages or answer questions.
- Discord is friendlier to newcomers because they can see the entire message history. WeChat groups expose only up to 100 past messages, which is nowhere near enough for after-sales and technical support. Discord makes it easy to search old conversations and avoid answering the same questions repeatedly.
The greatest advantage of WeChat groups is that their users are far more active than users in other communities. Their drawbacks are equally obvious: member limits, no grouping, no bots, and no visible history for newcomers. The right tool depends on the product. A WeChat group may be more suitable when a product has a small user base.
I now deeply regret not creating a Discord community in 2024. If I had run one continuously, many people who were interested in the Mkdirs template might have become MkSaaS customers when that template launched in 2025. Choosing the right community is important.
Below is my Discord summary for 2025. I sent 5,224 messages, shared more experiences than I can count, and answered countless questions. I would especially like to thank my friend AlanLu from Taiwan for proactively and patiently teaching me how to use and operate Discord, and for repeatedly helping me solve users' problems. Thank you very much.

(2) How to earn users' trust
I once shared someone else's observation on X: you are not selling a product; you are selling trust. I now believe that deeply.
Once we accept that idea, we need to ask how a product can earn users' trust. The answer is simple: put yourself in their shoes. If you were the user and saw this website, would you trust it enough to place an order?
To earn users' trust, I made many improvements to the Mkdirs directory template and the MkSaaS SaaS template. Using MkSaaS as an example:
- Users may not know what features the template source code includes, so I devote extensive space to introducing every core feature and link to a demo site on the homepage, allowing them to experience what a site built from the template actually looks like;
- Users may worry that they will not know how to use the template after buying it, so I place links to the documentation and video tutorials at the top of the page, cross-link the documentation and videos, and maintain a dedicated Discord area listing every article and video tutorial;
- Users may worry that they will not know whom to contact if they encounter deployment problems, so I provide an online consultation entry point on the official site, a link to the Discord community, and a technical-support email address in the footer, giving them several ways to reach me;
- Users may want to know what existing customers think of the template and what websites they have built with it, so I devote substantial homepage space to real customer testimonials and excellent website showcases, which are also collected in a Discord showcase channel;
- Users may want to understand the project's development progress, so I provide a Roadmap page on the official site. I also created a GitHub Project in the repository, where customers can see feature development progressing through code changes;
- Users may want to learn more about me, report issues, or interact with the community, so I introduce myself on the official site and provide Discord links on many pages, directing users into separate Discord channels for different conversations;
- Users may doubt whether the template is truly being developed and maintained, so I created a code-updates channel in Discord. Whenever any repository receives a commit, a message is immediately posted to that channel, making security fixes and completed feature iterations visible at a glance;
- Because not every user wants to use Discord, I periodically share the latest MkSaaS development progress on X, Xiaohongshu, and other social platforms. Existing customers can follow the progress, while prospective customers gain confidence that the project remains active.
The one thing I cannot do is show my face; I do virtually everything else I can. To protect my privacy, I cannot appear on camera in recorded videos, livestream, join podcast interviews, attend in-person meetups, or participate in a range of other activities that could also increase users' trust.
For me, the Discord community is the most effective way to earn users' trust. You need to find the method that most effectively earns the trust of your own product's prospective users. It may differ from mine, but if you follow the logic above and put yourself in their shoes, you should recognize which approaches are wrong.
I see many sites hastily chasing trends: landing pages that reek of AI, inflated statistics, fabricated testimonials, no contact form, no online support, no after-sales email, and broken registration flows. How could a site like that earn users' trust after launch? How could anyone place an order?

🐦 How did you grow your following on X?
At the beginning of 2024, I created an X account for indie development and consistently shared my work. It took more than half a year to reach nearly 7K followers, but the account was suspended shortly after the Mkdirs template launched. So in December, I created a new account. After operating it for more than a year, I have finally reached nearly 9K followers.
Compared with the growth rates of many major creators, mine is painfully slow, so I have little expertise to offer. Here are a few key points:
- Define a clear account focus: Positioning matters on X. Do not post about everything. Find a focus that suits you, post consistently, and keep operating the account.
- Pay attention to timing: This is how X's recommendation algorithm works. If a new post receives no traffic during its first few hours, the system reduces its distribution.
- Keep Chinese and English accounts separate: Post only Chinese on Chinese-language accounts and only English on English-language accounts. Do not mix them. Building an English account is difficult and requires long-term persistence.
- Post and interact often: Keep posting to maintain account activity. You can interact under major creators' posts to stay visible, but do not use AI to post automatic replies.
My X workflow depends on Typefully. I have shared its features on X. Its core features are cross-posting and scheduling. Cross-posting lets you compose once and publish to multiple platforms. Scheduling lets you write in advance and publish at a specified time. Both are extremely useful. Nearly every post you see from me on a weekday was written the night before and scheduled for the next day, because I am at work during the day and cannot post then.
According to Typefully's statistics, I published more than 1,700 posts in 2025, including replies—an average of 4.5 per day—and gained 7,200 followers. That is not especially efficient; persistence is the only remarkable part. From another perspective, though, I can console myself that the account's conversion rate is quite good.

🎊 How did you operate on other platforms?
In addition to X, I use other social-media platforms in China and abroad. With Typefully, for example, I can post simultaneously to X, Instagram, LinkedIn, Threads, Mastodon, and other platforms, while managing both my Chinese- and English-language X accounts in one place. With the iBeike Content Sync Assistant, I can post simultaneously to Chinese platforms including Xiaohongshu, Weibo, Zhihu, and Jike, though it works as a browser extension rather than through API calls.
For my template products, platforms other than X and Xiaohongshu have essentially been useless. Even after a year of consistent posting, they either provide no traffic or have too small a target audience, making follower growth even harder. The return from those other platforms is therefore almost zero. You can use my experience as a reference: when your time and energy are limited, focus on X and Xiaohongshu. You can maintain a light presence elsewhere, but do not invest too much effort.

📢 What do you think about building in public?
Whether to build in public depends on the type of product. Templates are well suited to it—if you keep your work hidden, how will anyone know you have built one? The Mkdirs directory template's very first user and its first wave of users both came from X. That is the benefit building in public brought me.
However, building in public can also attract copycats. For example, an overseas developer used the ShipFast template to directly copy the Mkdirs website, which I complained about on X. A Chinese developer also almost directly copied and pasted the MkSaaS template's documentation, which I likewise complained about on X. There have been many other cases I have not made public.
Again, the decision depends on the product. I choose not to build unsuitable products in public rather than advertising everything I make on X. So many people are now pursuing indie development that any profitable product is immediately copied by a crowd. There is no reason to invite trouble.
⚠️ Some people say that my “building in public” is fake because I share only success and never discuss failure. They probably have not read all my posts. I have shared not only successful Reddit-posting experiences but also lessons from being criticized while promoting in WeChat groups and from failed email-list marketing.

🏃 What advice do you have for newcomers going global?
(1) Take care of your health; it always comes first
Indie development is not a contest of who can sprint the fastest, but of who has the endurance to keep going. Staying healthy matters.
I am ashamed to say that I did not do this well myself. During nearly two years of indie development, I spent almost every evening after work, weekend, and holiday sitting down to write code or market my products, often until after 1 a.m. I did this nearly every day and suffered three relatively serious health problems as a result. Starting in 2026, I plan to slow down, exercise more, restore my health, and return my spare time to my family.
But look at how many years Marc has persisted with indie development, all while training consistently. One developer who I think has handled health particularly well is Yihui. He looks energetic both in daily life and in his videos because he has consistently trained and swum.
(2) Plan ahead and prepare everything early
Once you have decided to do it, prepare everything as early as possible. Get a passport, a Hong Kong bank card, a Stripe account, and anything else you can arrange now.
I began exploring indie development in February 2024 and registered an individual Stripe account in March, because I discovered that I needed only a Hong Kong bank card and a passport, both of which I already had. In October, of course, I registered a business account and opened a Mercury bank account.
After launching the Mkdirs directory template, I needed a Reddit account to market and operate the product. Fortunately, I already had an account that was more than five years old, so I could post external links on Reddit with almost no risk of suspension.
Once you have made up your mind, act. Spend the money that needs to be spent, age the accounts that need to be aged, and do not hesitate. Spending money will give you more motivation to earn it back.
(3) Keep learning and build a solid foundation step by step
Many people enter indie development with grand ambitions. They imagine building a product today, watching it explode tomorrow, making a fortune, and then retiring. Reality is harsh. After working for a while, many discover that indie development is not so easy and give up.
I have been on X for two years, long enough to watch one wave of indie developers depart and another arrive. Some succeed, some fail, some persist, and some quit. The difference lies in whether they keep learning, keep operating their products, and keep their feet on the ground.
I especially advise against grabbing an AI coding tool and immediately churning out sites. A trend appears, so you launch a site that reeks of AI, fill it with fake data and testimonials, connect ads, and earn a pittance. That is simply a waste of time and energy. Accidental success is the exception; continuously iterating and refining a product is what wins.
If you have no background and want to learn AI coding, you can follow tutorials on YouTube, such as those by Antonio, or go directly to the MkSaaS videos and documentation. If your English is weak, follow Chinese tutorials. I recommend Yihui's AI programming course and Viggo's Beginner's Guide to AI Programming.
(4) Stand by your principles and let some projects go
On the path of indie development, always uphold basic personal principles. A gentleman loves wealth but acquires it honorably.
I have encountered quite a few major creators who will do anything for traffic and sell pirated products for profit. This behavior is not merely unethical; it is utterly disgraceful. A principled person knows what to do and what not to do. Do not throw away your dignity for money. The indie-development world is small, and the truth always comes out eventually.
There is also no need to constantly exploit loopholes or devise ways to freeload on products. If that becomes your mindset, you will forget the value of paying for knowledge and software. When you build a product in the future and others freeload on yours, imagine how that will feel.
Finally, people make plans, but heaven decides their outcome. We should treat indie development as a long-term career, neither quitting because one project fails nor stopping because one succeeds. If a product fails, let it fail. Do not obsess over it or drain yourself emotionally; let it go when appropriate.

🏖️ Have you considered becoming a full-time indie developer?
No. My current work and workplace environment are both good, and my income is very stable. Indie-development revenue is highly unstable, and my core products are gradually reaching a plateau. I have both elderly parents and young children to support, so stability matters. I have therefore never considered going full-time.
🎯 What are your plans for 2026?
In 2026, I plan to restore my health and return to a normal routine while continuing indie development as a side business. I will keep developing and iterating on the Mkdirs directory template and the MkSaaS SaaS template, while continuing to operate my X account, Xiaohongshu account, and Discord community.
For product development in 2026, I may build a new SaaS template focused on the TanStack Start framework and deployment on Cloudflare, aiming for a solution that is feature-complete, exceptionally fast, easy to deploy, and extremely inexpensive to operate.
If I decide to build it, I will once again build in public across the major social-media platforms. Follow me if you are interested.
💻 What tools do you recommend?
Here are some useful tools:
| Tool | Description | Tool | Description |
|---|---|---|---|
| Warp | AI terminal | Raycast | AI productivity tool |
| Typefully | Social-media publishing powerhouse | Typeless | Voice-input powerhouse |
| Cherry Studio | AI model chat assistant | TickTick | Task-management tool |
| Obsidian | Local notes app | Gamma | AI presentation tool |
| Zipic | Image-compression tool | ScreenSage Pro | Video-recording tool |
| Hostinger | Server provider | Dokploy | Application-deployment powerhouse |
Here are some useful browser extensions:
| Extension | Description | Extension | Description |
|---|---|---|---|
| Trancy | Translation powerhouse | ShotEasy | Screenshot powerhouse |
| AITDK | SEO tool | DesignPicker | Design tool |
| Twillot | X management assistant | iBeike Content Sync Assistant | Content-sync assistant |
| Drizzle Studio | Database-management tool | Obsidian Web Clipper | Web-clipping tool |
Here are some open-source projects you can self-host:
| Project | Description | Project | Description |
|---|---|---|---|
| n8n | Workflow-automation tool | Sink | Short-link management system |
| Umami | Web-analytics tool | Plausible | Web-analytics tool |
| Pocketbase | Backend-management system | Uptime Kuma | Website-monitoring tool |
📆 A two-year indie-development timeline
| Date | Event |
|---|---|
| February 2024 | Began exploring indie development and trying various tools |
| March 2024 | Registered an individual Stripe account using a passport and Hong Kong bank card |
| April 2024 | Completed the entire process of taking a product global and launched Haitang Poetry Society |
| May 2024 | Began building the Indie Developer Directory |
| June 1, 2024 | Launched the Indie Developer Directory |
| June–July 2024 | Researched directories and planned a directory template |
| August 3, 2024 | Began developing the Mkdirs directory template |
| October 1, 2024 | Incorporated the US company MkSaaS through Stripe Atlas and registered a business Stripe account |
| October 21, 2024 | Officially launched the Mkdirs directory template; revenue passed $2K in 10 days and $10K in 40 days |
| December 2024 | Open-sourced the Indie Developer Directory and created a new X account after the original was suspended |
| February 16, 2025 | Began developing the MkSaaS SaaS template |
| April 13, 2025 | Officially launched the MkSaaS SaaS template; the revenue mix changed and monthly revenue repeatedly reached new highs |
| November 2025 | Monthly revenue passed $20K, and total indie-development revenue exceeded $100K |
| January 1, 2026 | Total revenue from October 21, 2024, through January 1, 2026, reached $117,914 |
Finally, Happy New Year! May your indie-development journey go smoothly in 2026, and may your new products earn piles of dollars! 🤑