TinyShop-UniApp for Multi-Platform Vue Commerce
基于 RageFrame2 的一款免费开源的基础商城销售功能的开源微商城。
At a glance
- What is it?
- TinyShop-UniApp is the uni-app frontend for the RageFrame2-based RF micro-shop, designed for H5, mini-program, and native app delivery. It offers a V1 storefront foundation, but production deployments also require a separate backend and careful routing configuration.
- Who is it for?
- Adopt TinyShop-UniApp when you need the documented RF V1 storefront and can pair it with the separate TinyShop backend. Do not treat it as a standalone commerce deployment or assume that the README's demo coverage represents every planned store operation.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 15 days ago.
- What is it written in?
- Mainly Vue, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.
Editorial analysis
TinyShop-UniApp's Role in the RF Commerce Stack
TinyShop-UniApp solves the storefront side of a small sales operation. It is based on RageFrame2 and is intended to provide basic commerce functions through a shared uni-app codebase. The documented targets are H5, WeChat Mini Program, QQ Mini Program, iOS App, and Android App. The README also lists Alipay, Baidu, and Toutiao targets for development and build commands, so the implementation surface extends beyond the platforms named in the introductory summary.
The intended user is a developer or small organization that needs a basic mall interface and wants to publish it across several client types without maintaining a completely separate frontend for each target. That goal is expressed through uni-app: one Vue-oriented project can produce platform-specific development and build targets. This does not mean every store workflow behaves identically after compilation. Platform clients, publishing requirements, and deployment environments still differ.
This repository is only the frontend. The README identifies `TinyShop-UniApp` as the frontend source and points to `jianyan74/TinyShop` as the backend source. That separation matters during adoption. A successful storefront build does not demonstrate that product data, authentication, orders, administration, or other commerce services are available. The backend must be obtained and configured separately.
How uni-app Connects the RF Storefront to Multiple Targets
The project uses Vue tooling around uni-app. Development scripts set `UNI_PLATFORM` and then invoke either `vue-cli-service uni-serve` or `vue-cli-service uni-build`. For H5 development, `dev:h5` selects the H5 platform in development mode and starts the uni-app development server. Mini-program scripts use the same build service with a corresponding platform identifier and `--watch`.
The visible architecture is therefore a shared application frontend with target-specific compiler entry points. The repository includes `src/`, `public/`, Vue and Babel configuration, TypeScript configuration, and a committed `dist/` directory. The README identifies the application domain and backend administration as separate resources, but it does not document a local API base URL or explain the request sequence for adding a product to a cart. Those implementation details are not documented.
Platform delivery has different practical boundaries. H5 is built as a web application and needs server-side routing support when a user refreshes a route other than the home page. Native app packaging uses HBuilderX. Mini-program builds still have to be published through the corresponding client. The shared source code reduces duplication, but it does not remove each platform's packaging step.
Installing Dependencies and Running the H5 Store
The README assumes Node.js is already installed. Its first documented setup step installs Yarn globally and then installs the repository dependencies from the default branch. The commands below are copied from the project instructions. The comments are retained as shown in the README, although they are not Bash comment syntax.
// 安装yarn命令
npm i -g yarn
// 安装依赖
yarnAfter dependency installation, the documented `serve` script delegates to the H5 development script. Running it should start the project's H5 development target. The README does not state the local URL or port, so no port should be assumed from these instructions.
// 运行到H5
yarn serveThe repository's package scripts define `serve` as `npm run dev:h5`, and `dev:h5` sets `UNI_PLATFORM=h5` for `vue-cli-service uni-serve`. If this is your first evaluation, H5 is the shortest documented path because it does not require publishing through a mini-program client. You still need a compatible backend if the interface expects live shop data; the README does not state whether a limited interface remains usable without one.
Selecting Mini-Program Development and Release Targets
The README uses `PLATFORM` as a placeholder in its simplified command. The package scripts provide the concrete targets, so substituting the platform name is the relevant distinction between the README's shorthand and the repository configuration. The documented mini-program identifiers are `mp-weixin`, `mp-alipay`, `mp-baidu`, `mp-toutiao`, and `mp-qq`.
// 运行至对应的小程序平台
yarn dev:PLATFORMThe build instructions use the same placeholder. The repository's package scripts define separate production entries for the listed targets, but the README does not provide a command-line example that replaces `PLATFORM` for each one. That means the placeholder should not be treated as a literal platform name.
// H5打包
yarn build
yarn build:PLATFORM // 平台信息同上The README says to publish with the corresponding mini-program client. It does not document client credentials, review requirements, domain allowlists, or release configuration, so those checks belong to the chosen platform rather than this repository's documented setup. The backend also remains a separate concern.
H5 Routing and Native App Packaging Boundaries
The most explicit production limitation in the README concerns direct H5 refreshes. Apart from the home page, refreshing another page can return 404 unless the web server falls back to `index.html`. The project gives an nginx rule for that purpose.
location / {
try_files $uri $uri/ /index.html;
}This is history-style fallback behavior. The server first tries the requested file or directory, then serves the application entry point. Without it, a browser refresh can bypass the Vue application's client-side routing.
Native App delivery follows a different route. The README says to package with HBuilderX for cloud-native App builds. It does not document signing, application identifiers, App Store or Android store configuration, or device permissions. Although `build:app-plus` and `dev:app-plus` exist in `package.json`, the README directs native App packaging to HBuilderX rather than presenting a complete store-release tutorial.
The last recorded update entry is `v1.2.3`, updated on 2020-09-07. It mentions a fix for the home page loading indefinitely when data was empty and a scan action in the upper-right corner of App and mini-program interfaces. The repository has no GitHub releases, so that changelog entry and `docs/UPDATE.md` are the available release-history references rather than a GitHub release stream.
RageFrame2, TinyShop Backend, and Specialized Storefront Alternatives
The closest architectural alternative is to build a dedicated storefront directly against a backend framework or commerce platform rather than starting from this RF V1 codebase. TinyShop-UniApp supplies the RF-oriented Vue and uni-app client, while `jianyan74/TinyShop` is the separately published backend. A project that needs the same RF conventions should evaluate them together. A project that already has an API contract or uses another backend should not assume this repository can be dropped in without checking its endpoints and data expectations.
For cross-platform commerce, another approach is to use a hosted storefront service that owns checkout, catalog administration, payment integrations, and release operations. That changes the responsibility boundary: TinyShop-UniApp exposes source for a basic mall frontend, but the README does not claim that the open V1 edition includes payments, advanced promotions, or the future V2 and V3 enhancements. The choice is therefore between adapting a multi-platform storefront around a separate backend and outsourcing much of that stack to a commerce platform.
The repository layout includes `dist/`, suggesting generated output is committed, as well as source and configuration under `src/` and `public/`. The README does not explain the release policy for `dist/`, whether it must be regenerated for every backend change, or how stale generated files are handled. This is a maintenance concern for teams considering a fork.
Apache-2.0 Licensing and Upgrade Surface
The repository is identified as open source under `Apache-2.0`, and its README also says RF Shop is released under Apache2 together with an additional use agreement. The top-level files include `LICENSE.md` and `docs/LICENSE-SUPPLEMENTAL.md`. The README further states that copyright information for included third-party source code and binary files is identified separately.
That distinction deserves attention. Choosing Apache-2.0 as the headline license does not mean every bundled component has identical terms. The additional agreement and separately marked third-party notices are part of the project's documented licensing surface. This review does not interpret those documents or provide legal advice. Review both files before redistributing a modified storefront or including third-party assets in a commercial product.
Maintenance status is based on repository facts. The project is not archived, and the last push was on 2026-10-08. However, the visible README update entry is dated 2020-09-07, and there are no GitHub releases. A recent commit can therefore coexist with sparse public release documentation. Teams should inspect recent commit contents and the current backend API before estimating upgrade work; the README does not document a version compatibility matrix.
Editorial conclusion
Adopt TinyShop-UniApp when you need the documented RF V1 storefront and can pair it with the separate TinyShop backend. Do not treat it as a standalone commerce deployment or assume that the README's demo coverage represents every planned store operation. Verify backend compatibility, platform-specific behavior, supplemental license terms, and H5 fallback routing before committing.
Frequently asked questions
What is TinyShop-UniApp used for?
TinyShop-UniApp is the Vue and uni-app frontend for an RF micro-shop based on RageFrame2. It provides the storefront for basic commerce use across H5, mini-program, and native app targets.
How do I install and run TinyShop-UniApp?
The README assumes Node.js, then instructs users to install Yarn and run `yarn`. Use `yarn serve` for the H5 development target or follow the README's `yarn dev:PLATFORM` notation for a mini-program platform.
Does TinyShop-UniApp include the backend?
No. This repository is the frontend, while the README lists `jianyan74/TinyShop` as the separate backend source. Operators need to account for that backend as part of a complete deployment.
Why does an H5 page return 404 after refresh?
The README says that refreshing H5 pages other than the home page can return 404 unless nginx is configured with a fallback to `/index.html`. It provides a `try_files` configuration for this case.
Which platforms have build scripts in TinyShop-UniApp?
The documented package scripts cover H5, app-plus, Alipay, Baidu, WeChat, QQ, and Toutiao targets. The README also lists a custom build script, although it does not explain that target in detail.
Official sources
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.
[](https://hysenlabs.com/projects/stavyan-tinyshop-uniapp)Was this useful?