跪拜 Guibai
← Back to the summary

A Juejin Mini Program Wakes Up After an Eight-Year Commit Gap

banner_juejin.png

Eight years ago, I spent two weeks building a Juejin WeChat Mini Program.

At the time, I wrote the whole process into "Building a Juejin WeChat Mini Program in Two Weeks". After the project reached its first relatively complete version, I made a few more updates, and then it stopped.

There was no solemn goodbye, nor a "this is the end" written after any line of code.

It was just that after one commit, the next commit never came.

And that pause lasted eight years.

Now, this mini program has returned to a state where it can be experienced. If you want to see what it looks like now, here are a few ways:

miniqrcode.jpg

Left in the Repository for Eight Years

Eight years is enough for a mobile application to completely change its appearance, and enough to make a once-familiar project feel foreign.

Over these years, I occasionally thought about this project, but never truly came back to continue it.

The old mini program was just left in the repository: the pages stopped at the Juejin of that year, the code stopped at my former self, and the screenshots in the README recorded that era of the mobile internet.

After the project stopped, I archived the repository.

The Archived label on GitHub was like a quiet seal. It didn't delete any code, nor did it erase any traces; it simply told anyone who later clicked into the repository: this project has stopped here and will not move forward.

It didn't disappear; it was just left in a read-only past.

A repository doesn't urge a developer who has left. Those unfinished pages, expired content, and outdated interfaces don't make a sound. They just sit quietly in the commit history, waiting to be reopened one day, or never to be opened again.

Recently, I clicked into this project once more.

Eight years later, I unarchived the repository. There was no countdown, no ceremony, just that long-silent Archived mark finally disappearing. The repository returned from a read-only past to a present where writing can continue, and the next commit once again had a place to land.

The familiar file names were still there, the familiar pages were still there. It was just that when it ran again, the marks left by time all appeared at once: some content could no longer display properly, some interfaces still retained their look from eight years ago, and today's Xitu Juejin had long since moved far ahead.

I originally just wanted to make it run again.

But looking at that mini program waking up from old code on the screen, I changed my mind.

What it needed was no longer a patch, but a,

true redo.

Bringing Old Code to the Present Day

Today's Xitu Juejin is no longer what it was back then.

If it were just patched, the old project might run again, but it would still remain stuck in the past. So, this update no longer continued stitching up the old version; instead, it used the current Xitu Juejin Android App as a reference and performed a complete redo of the mini program.

What was left from the past was a version with a sketched outline but never fully completed; this time, it was simply about continuing from that starting point and filling in those unfinished parts.

Pages were reopened, layouts were rearranged, and missing content was filled back in. The homepage, pins, discover, courses, and "Me" reappeared in the bottom navigation. Articles, topics, leaderboards, search, and dark mode also returned to the new interface.

These features aren't meant to be listed out one by one here. They are better suited to appearing during the process of a finger sliding across a screen, rather than becoming a long checklist.

Eight years ago, the code grew from an empty directory.

Eight years later, this redo is more like relighting a house that had been dormant for a long time: keeping its original name, while making every door lead to today once more.

Below is a screen recording of the mini program:

Click to watch the video

I don't intend to use this video to prove the mini program can 100% replicate the App. It's more like a clear dividing line: on one side of the screen is today's Xitu Juejin, and on the other is this project, silent for eight years, finally catching up to what it looks like today.

Why Come Back?

Because I didn't want it to be forever stuck at "I'll update it when I have time."

Open-source projects are easy to start, and just as easy to suddenly fall silent after a certain commit. There's no formal farewell, no clear endpoint, just the next update that never arrives. By the time you realize it, the repository is still there, but many years have passed.

This project came from the period when I was just starting to seriously build WeChat Mini Programs. It records not only the pages and code of that time, but also how I understood a mobile application back then, and how I built out what I saw bit by bit.

Looking back now, the implementation from that year was not mature. But I have no intention of denying it.

Without that first line of code written eight years ago, there wouldn't be a place to set off from again today. The old version left behind problems, but it also left behind a starting point; this redo is simply, across eight years of time, continuing to finish what was left unfinished back then.

Bringing this project back to the present day sometimes felt like organizing old code, and sometimes like two versions, separated by eight years, responding to each other.

The old version left the beginning.

The new version continues forward.

The Repository Lights Up Again

After this update, the project remains public on GitHub:

Project Address: https://github.com/fthux/juejin

You can view the source code, run the project, and also provide feedback or suggestions through Issues. If you're willing, you are also welcome to Star the project.

If you've read this far, you can still experience it in the following ways:

miniqrcode.jpg

If you read that article from eight years ago, you can open this mini program again and see what it looks like now.

If this is your first time hearing about this project, you can also watch the screen recording above first, and then browse the source code on GitHub.

The old article still remains here: "Building a Juejin WeChat Mini Program in Two Weeks". The new article won't replace it. They are more like two commits in a repository, one after the other, separated by eight years, jointly recording the same project.

Beyond This Repository

When one repository lights up again, I also want to leave two other doors here.

They lead to different problems, but both come from the same simple thought: seriously turning inconveniences encountered in life into usable tools.

There's no need to open all the repositories at once. If one of them happens to answer a problem you have right now, then its presence here has meaning.

Written at the End

Eight years ago, I wrote a line at the end of the old article:

I am also someone with life dreams.

Looking back now, this sentence is a bit cringey, but it was also very much like me at that time.

Back then, I spent two weeks making the first version, thinking I had plenty of time later to slowly fill in all the unfinished parts. As it turned out, that "later" took a long detour, and it wasn't until eight years later that I returned to this repository.

Fortunately, late doesn't mean never.

Recompiling, re-previewing, reopening those pages that had been silent for so long. The next commit that never came in the past has finally appeared today.

The project didn't stay forever at eight years ago, and the old article finally has a sequel.

Code is still code, and the repository is still a repository. But when a project shelved for eight years runs again, among the cold files and commit records, a little warmth left by time also emerges.

This is probably what I most want to share:

An open-source project that stopped for eight years has started again today.

Projects can restart, and so can life. Those places where we once stopped are not necessarily the end; as long as we are willing to set off again, they can also become new starting points.

So, I wish you:

Good morning, good afternoon, and good night.

And I also wish you, peace in everything.


Past Recommendations:

After using GitZip for so many years, I built a "Pro" version myself

"Zhuang Bi" - An AI-driven open-source renovation pitfall avoidance system

Comments

Top 1 from juejin.cn, machine-translated. The original thread is authoritative.

XCaptain

Pretty awesome, huh? Add me on WeChat?