♫ Blooming in Desperation — The Story of an Indie Developer
2024-04-08 "My Story with LeaferJS"
Surviving 3 Years of Darkness
Another bright spring has arrived. The willows by the river are sprouting fresh green buds, and everything is coming back to life.

Counting carefully, I’ve now spent exactly 3 years building a startup in Beijing. It’s hard to believe I’ve endured for so long.
During these long and dark 3 years, facing uncertainty and a lack of funding, I can hardly imagine how I managed to persist.
Can you imagine waking up every day doing what you love, filled with hope?
Can you imagine still pushing forward after 3 years of entrepreneurship while burdened with debt?
Can you imagine that in just one month, I might have had to sell my house to continue? 【Already received help】
Can you imagine others celebrating the New Year while I was still launching products?
Countless nights, invisible pressures overwhelmed me, leaving me anxious and sleepless.
I also wanted to see the world—to visit the rapeseed flowers of Wuyuan, the ancient city walls of Xi’an, the Erhai Lake in Dali; to explore quiet old towns, vibrant forests, and majestic mountains and lakes; to taste local cuisines.
The harsh reality was that I couldn’t go anywhere 【facepalm】.
Doing Something Worthwhile
Many people asked me why I didn’t build a team.
I thought about it and even tried, but building foundational technology is a difficult and long journey. Facing uncertainty and immense life pressure, it’s hard for anyone to persist without passion. So I decided to take this path alone first.

Some also asked: Can one person really start a business? What if there’s no funding?
I believe the real answer lies in our hearts—how much we truly want to accomplish something.
Fortunately, I have enough passion for this. I believe this is a goal worth dedicating my life to.
If the direction is right, everything else will follow in time.
Once the bow is drawn, there is no turning back. To realize my vision, I became like a bamboo shoot growing unseen beneath the soil, pushing deeper and deeper.
The difficulty and complexity of this journey far exceeded my expectations. It requires immense patience and creativity.
♫ Blooming in Desperation
As my journey deepened, I encountered unprecedented challenges and gradually fell into desperation. Yet I was not crushed by fear. To see the day when the seed blooms, I kept moving forward, gritting my teeth and persevering.
It was this experience that inspired me to write the song “Blooming in Desperation”, a piece that motivates me to keep going. Whenever I play it, my dreams come closer, my fighting spirit reignites, and I gain the strength to face challenges and pressure.
So what exactly did I go through over these 3 years? How did I make it this far? And how did my inner world change? Let me tell you.
Embarking on the Journey
The story begins 3 years ago. In early 2021, driven by curiosity about the unknown and concerns about the potential “age 35 crisis” in the internet industry, I bravely stepped onto the path of entrepreneurship.

After 2 months of development, I initially validated the feasibility of building a graphics engine capable of handling millions of elements.
If this vision became reality, websites, documents, and software could carry 10 times more content than before, with faster loading and browsing speeds.
Without hesitation, I fully committed myself to turning this seemingly impossible task into reality.
Back then, I was full of passion and tireless energy.
At night, the air was filled with code and music. After working for long hours, I would play the piano before continuing.
First Success
Four months later, I excitedly presented the first version of the technology to friends and users. It drew astonishment—people were amazed at how smoothly 1 million elements could run on a single canvas. This led to the arrival of my first partner.
As we all know, foundational technologies are difficult to monetize. So we chose a commercially viable product as a collaboration project, using it as an entry point to apply this technology.
However, development proved far more difficult than expected. After 6 months of intense effort, the first test version was finally released.
With the support of this technology, the product quickly gained attention. Investors came in droves, including top-tier institutions in China. It was the most glorious period of our startup journey.
Ending the Partnership
However, without a strong background, investors remained cautious, waiting to see further progress. Completing the product into a mature version would still take time—and we likely couldn’t last that long.
In the end, the unfortunate happened. Under financial pressure and uncertainty about the future, my partner and I had to end the collaboration.
Deep Reflection
This was a heavy blow. I paused for several months. Facing limited savings, I struggled with a decision: continue developing the product (which required building a team), or return to the original technical path (which I could handle alone)?
I hesitated, anxious and lost in deep thought, searching within myself…
As the pandemic passed, I realized the unpredictability of life. In this short and precious lifetime, I should try to do something meaningful—something no one has done before.
I needed a reason: even if I failed, it would still be worth it.
This experience taught me that without passion and a sense of mission, it is nearly impossible to persist through hardship.
So I made an important decision: pause commercialization, focus on LeaferJS, and open-source it for everyone.
Because I knew LeaferJS was the thing that could change the future.
Starting Again
During those difficult times, music became one of the ways I communicated with the night. I wrote my first song. I believed that after the storm, a rainbow would appear.
To build a general-purpose graphics rendering engine, much work remained. Over the next 10 months (far longer than I expected), I devoted myself entirely to development.
In November 2022, I clearly remember exhausting all my savings. With support from family and friends, and my passion, I persisted.
I rewrote LeaferJS with the highest standards, introduced a modern UI drawing framework, and created friendly documentation and code examples.

A Glimmer of Hope
On June 28, 2023, I officially open-sourced LeaferJS. The announcement gained huge attention across platforms, receiving recommendations from OSChina, Zhihu, and tech newsletters. In particular, an influential user’s performance analysis sparked widespread sharing across the frontend community.
Thousands of users visited our website daily. The community quickly filled up. Watching the data, I was overwhelmed with excitement—I knew I had made the right decision.
After so many years, I finally saw a faint light—the light I had long dreamed of. Though the road ahead is still long, it gave me the courage to continue.
This is a new beginning—and an even greater challenge.
Many Companies Are Using It
As LeaferJS gained users, many began actively using it and contributing valuable feedback.
Over the next 9 months, I continued refining and upgrading LeaferJS. Despite challenges, I completed cross-platform support, a graphics editor, and other key features.
The technology and documentation kept improving—not just through my efforts, but through every user’s participation.
Seeing companies adopt my technology and launch their products filled me with pride.
Some used LeaferJS for mini-program posters, others for games, big data tables, poster editors, image editors, video editors, power monitoring systems, architectural design tools, engraving software, drawing tools, and more.
In the near future, LeaferJS may power even more applications, including games and apps.

These are some of the open-source projects and articles featured on the website. Many commercial products cannot be publicly disclosed.
Selected as OSChina 2023 Annual Major Announcement
At the end of 2023, LeaferJS received its first honor—being selected as a major announcement in OSChina’s 2023 annual report, marking recognition from the Chinese open-source community.

Advancing the Performance Acceleration Plan
Over the past 3 years, I’ve built a solid foundation for this graphics engine, achieving strong performance in creation speed and memory efficiency, and delivering value to many companies.
This year, I plan to significantly improve interaction performance, which requires deep optimization across many areas—a major challenge.
To showcase upcoming performance, I created a canvas capable of holding one million cups of coffee, with smooth interaction. Feel free to try it—there’s still room for improvement.

Our ultimate goal is to achieve smooth interaction with millions of static elements and hundreds of thousands of dynamic game elements (with WebGPU acceleration).
Building Components and Products Like the Real World
Once functionality and performance reach a certain level, LeaferJS can be applied even more widely.
It can not only be used for efficient drawing and building graphic editors, but also for developing WYSIWYG web pages, apps, games, and animations. Combined with AI, it will unlock countless entrepreneurial opportunities.
Imagine a future where we build digital products like the real world—collaborating in our areas of expertise, producing components and products visually, and enabling commercial circulation. This would greatly boost productivity and unleash individual creativity.
To achieve this, we need a shared open standard. Free and open-source LeaferJS can serve as that bridge.
We Need Support and Participation
We are committed to advancing technology, but individual effort is limited—especially in funding, promotion, team building, tutorials, examples, and plugins.
So I sincerely invite you to be part of this vision. Let’s build our own open-source community together!
Whether you are an experienced developer, a passionate designer, or a sponsor, your role is crucial.
If you have technical skills, consider building plugins, examples, or products.
If you are good at communication, consider writing tutorials and sharing our story.
If you are multilingual, help with translations so more people can benefit from LeaferJS.
As a supporter, even a simple Star can amplify LeaferJS’s impact.
As a sponsor, even a cup of coffee can provide meaningful support.
What you give will return to you. I believe your contributions will create a butterfly effect, benefiting more people through LeaferJS.
Building an Outstanding Open Source Company
For LeaferJS to grow further, it needs a new structure. I plan to establish a new open-source company at the right time this year.
We will recruit passionate contributors from the community to form an initial team, building a high-performance 2D/3D graphics engine for the AI era, advancing the ecosystem, and creating a developer marketplace.
Every early contributor—whether media, community member, sponsor, or supporter—will be recorded and displayed on a public wall as a shared milestone.
To focus on engine development and avoid competing with clients, I plan to sell the previously developed Wodisign product first, and only then operate independently. With our support, it can become highly competitive.
The End of the Story
Three years—both long and short. Some built remarkable cars, some created blockbuster films. As for me, I experienced a fiery rebirth from desperation.
In the end, the story turned out well. With LeaferJS by my side, I am stepping out of hardship. The blooming rapeseed fields seem to welcome me, telling me that spring has arrived. I play the melody in my heart and passionately perform “Blooming in Desperation.”

Media Sharing
OSC Open Source Community - OSChina
Share with Friends
