Open-source project
fthux/juejin avatar
fthux/juejin

juejin is an unofficial WeChat mini program recreation of the Juejin app

:moneybag: Unofficial JueJin WeChat Mini Program Application - 非官方掘金微信小程序

780 stars166 forksJavaScriptNOASSERTION

At a glance

What is it?
juejin is a native WeChat mini program that recreates parts of the Juejin developer community's Android app, published as source for study and non-commercial display. It is not open source, it carries no official authorisation, and its licence bars commercial use and requires the third party Juejin assets to be cleared or removed by whoever republishes it.
Who is it for?
juejin suits a developer who wants to study how a native WeChat mini program reproduces a complex mobile interface, since the pages, components, custom tab bar and service layer are all readable and the H5 build lets you try it in a browser with no toolchain.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository last received commits 59 days ago.
What is it written in?
Mainly JavaScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What the project is, stated plainly by its own author

The most important thing about this repository is that it is honest about what it is. The notice at the top of the README says the project is an unofficial recreation of the JueJin app's interface and some of its functionality, made for personal study, technical research and non-commercial public display. It says the project has not received official authorisation, cooperation or endorsement from JueJin, that it is not an official product, and that it must not be used for commercial purposes. It adds that publishing it in a non-commercial form does not imply any authorisation either.

The README repeats the point later, in the licence section, where it says the project is not open source software but a source disclosure project limited to personal learning, technical research and non-commercial public display.

The Copyright line reads Copyright (c) 2018-present fthux, and the licence is a personal learning and non-commercial display code licence, linked from the README as the LICENSE file. The repository also carries a THIRD_PARTY_NOTICES.md.

The stated purpose of the code is learning. The project description says it uses the JueJin Android version as the product and visual benchmark, and reproduces some pages, visual effects and interaction flows with native WeChat mini program technology, for the purpose of learning mini program page development, component design, data display and interaction implementation. The official product and service are at juejin.cn.

So this is a UI reconstruction study, and the article should treat it as one, including the parts that constrain it.

The repository is a mini program, not a build pipeline

The tree at the repository root tells you what kind of project this is. There is app.js, app.json and app.wxss, which are the entry files of a WeChat mini program, and project.config.json and project.private.config.json, which are the project settings the WeChat developer tools read. There is a sitemap.json and a theme.json for the mini program theme, and a custom-tab-bar directory for the bottom navigation.

The rest is organised like a normal front end project. There is a pages directory for the screens, a components directory for reusable pieces, a services directory for the network layer, a utils directory, a data directory, a features directory, a filter directory, an assets directory, an img directory, a directory for third party assets and a web-assets directory. There is also a wxParse directory, which is the well known mini program HTML parser, and a scripts directory.

The package.json is minimal to the point of being informative. The package is named juejin-mini-program at version 6.7.6, it is marked private, and it has a single script, a check task that runs node scripts/validate.js. There is no dependency list at all, which is consistent with a mini program that uses the platform's own request and rendering APIs rather than bundling a front end framework, even though the topics list includes vue and vuejs for the H5 side.

The version number is worth noticing. A package at 6.7.6 with a repository that has been in place since 2018 is a project that has been iterated on for a long time, even though the repository has no GitHub releases and the last push was on 2026-08-25.

Four ways to see it, and the one that is out of date

The experience section describes four options, and the ordering is a recommendation.

The first is the native mini program source, which is the recommended path: pull the source, import the project into the WeChat developer tools, preview it, or run the development build on a real device. The second is the H5 version, also recommended, which is generated from the mini program and served at juejin.fthux.com, with the note that it needs no installation and no development environment configuration, so you can open it in a browser.

The third option is a screen recording of the mini program, for when running the project is inconvenient, so you can get a sense of the main pages and interactions quickly. The fourth is the published online mini program, which you reach by scanning a QR code or by searching for it in WeChat under the name given in the README.

The note on that last option is the important one. It says that because the project involves social features, the online version failed review several times, so the version currently available by QR code is older and may differ from the latest version in the repository, and it recommends using the native source or the H5 version instead.

That is a detail that changes how you evaluate the project. The thing you can scan into WeChat is not the thing in the repository, and the README is candid that it is out of date.

The licence restricts far more than it grants

The usage restrictions section is the most consequential part of the repository, and it is worth reading as a list rather than a summary.

The repository allows individuals to read, download, run, modify, compile and publish the original code within the permitted scope for non-commercial learning, technical research and public display. When you publish publicly, as a mini program, an application, a website or in any other form, you must keep the project source, the licence and the third party rights notices, state prominently that the project is unofficial and unauthorised, follow applicable law, platform rules and third party rights requirements, and either obtain the necessary authorisation for the third party assets before publishing or delete and replace them.

What is forbidden without permission is a longer list: any direct or indirect commercial use, use inside a company for internal business, project delivery, paid teaching, contract development or training, profiting through advertising, membership, sponsorship, donations, sales or traffic referral, renaming or reskinning the project in a way that hides where it came from or presents it as entirely your own original product, posing as an official JueJin product or implying official authorisation, and extracting, packaging, distributing or selling the third party resources in the project on their own.

So the practical effect is that you can learn from this, show it to a class, or publish a modified version with the Juejin branding intact only if you have the rights to do so. Anything commercial, and anything that presents itself as an original product, is out of bounds.

Third party assets are retained on purpose, and the author does not license them

The third party rights section explains a decision that explains a lot of the repository's contents.

To learn and reproduce the interface effects of the JueJin app, the project keeps the necessary names, logo, icons, images, interface elements and visual assets. Those are explicitly outside the scope of the project's own original code licence, the project does not claim copyright, trademark or other intellectual property over them, and it grants no rights in them to users. Whether a publicly published version may continue to use those assets is for the publisher to judge and take responsibility for, based on their own authorisation situation.

The project also states that the trademarks, logos, images, articles, user content and third party code it references belong to their respective legitimate rights holders, and points to THIRD_PARTY_NOTICES.md for the detailed categorisation, the usage restrictions and the mechanism for contacting rights holders.

This is an unusual and honest arrangement. The repository openly contains assets it will not license, and it tells you that the person publishing it is the one who has to decide whether they are allowed to keep them. That is a substantially different risk profile from a project that ships only its own code, and it is the single most important thing to read before you fork it.

The API section draws a line about scraping and login

The interface and account safety section is short and draws a clear boundary, which is worth reading because it defines the difference between a UI study and a content scraper.

The project states that it has not obtained authorisation for the official JueJin API and does not guarantee that the relevant interfaces stay available. It asks users not to use the project to bulk scrape, mirror or redistribute platform content, and not to bypass login, payment, access control or anti-automation measures.

On accounts, the mini program version provides no account login, collects no phone number, password or verification code, and does not integrate with, simulate or bypass JueJin's identity verification and security controls. If you need to log in, sync data or use the authoring features, the advice is to use the official JueJin app or website.

That last sentence is the one that matters for anyone evaluating this as a basis for a real product. The project is built so that the mini program stays a passive reader, which is also what keeps it inside its own licence and outside the territory of a content extraction tool.

The repository also carries SonarCloud badges for security, reliability, maintainability, code smells and vulnerabilities, which is a reasonable signal that the code is scanned on every push, even though the README does not say what the current ratings are.

Editorial conclusion

juejin suits a developer who wants to study how a native WeChat mini program reproduces a complex mobile interface, since the pages, components, custom tab bar and service layer are all readable and the H5 build lets you try it in a browser with no toolchain. It is the wrong project for anything you intend to ship commercially or publish under your own name, because the licence forbids both and because it retains Juejin names, logos and images that the project itself declines to license. Before using it, read the LICENSE file and THIRD_PARTY_NOTICES.md in full, and if you republish anything, decide whether you have the authorisation to keep the Juejin branding or whether you have to strip it.

Frequently asked questions

What is the juejin mini program project?

It is an unofficial recreation of parts of the JueJin app's interface and functionality as a native WeChat mini program, made for personal learning, technical research and non-commercial public display. It has no official JueJin authorisation, cooperation or endorsement.

Can I use the juejin mini program commercially?

No. The README states the project must not be used for commercial purposes, and the licence section forbids any direct or indirect commercial use, including internal company use for business or project delivery, paid teaching, contract development or training, and profiting through advertising, membership, sponsorship, donations, sales or traffic referral.

How do I run the juejin mini program?

The README recommends the native source or the H5 build. For the native version, pull the source and import the project into the WeChat developer tools, or run the development build on a device. The H5 version is generated from the mini program and can be opened in a browser with no development environment setup.

Official sources

  1. fthux/juejin on GitHub
  2. Issues
  3. Project website
  4. README
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/fthux-juejin.svg)](https://hysenlabs.com/projects/fthux-juejin)

Was this useful?