baidu/amis: JSON-Configured Admin Pages Without Writing Frontend Code
前端低代码框架,通过 JSON 配置就能生成各种页面。
At a glance
- What is it?
- amis is Baidu's TypeScript low-code framework that renders backend pages from JSON schema. It suits teams with existing APIs and no frontend capacity, but the README is written for contributors, not consumers.
- Who is it for?
- Adopt baidu/amis if you have a stable HTTP API and need CRUD admin screens without allocating frontend engineers, and you accept that the JSON schema is the contract you will maintain. Do not adopt it if you need a full low-code platform with backend generation, or if your team cannot read Chinese documentation, since the README and docs assume it.
- 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?
- Activity is slowing. The repository last received commits 6 months ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 29, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What problem baidu/amis solves and who it is for
The README opens with a direct claim: amis generates backend pages from JSON configuration, reducing development cost, and the project says you can build pages without knowing frontend at all. That is the pitch. The realistic audience is a backend team that already has HTTP endpoints returning JSON and needs admin screens, internal tools, or CRUD panels, but has no dedicated frontend engineer. Instead of writing React components, you write a JSON object describing a page, and amis renders it.
The project is published by Baidu and licensed under Apache-2.0. Its topics list includes admin, low-code, no-code, and frontend-framework, which matches the intended use: internal management interfaces rather than consumer-facing marketing sites. The README is explicit that amis only covers the frontend side of low-code. If you need a complete low-code platform, the README points to 爱速搭 (aisuda.baidu.com) instead. That distinction matters more than it looks, because it tells you amis is a rendering engine, not an application generator.
How amis turns a JSON object into a rendered page
The repository is a monorepo. The root package.json declares workspaces for packages/amis-formula, packages/amis-core, packages/amis-ui, packages/amis, packages/amis-editor-core, packages/amis-editor, and packages/amis-theme-editor-helper. That layout reveals the architecture: amis-core holds the rendering logic, amis-ui holds the component layer, amis is the assembled framework, and the editor packages are a separate visual tool for producing the same JSON by hand.
Data flow is schema in, DOM out. You pass a JSON structure describing page components, amis-core walks that structure, resolves expressions through amis-formula, and amis-ui renders the resulting controls. A visual editor ships as a separate package, so the JSON can be authored either by hand or generated by a GUI. The examples directory contains app, components, docs.json, map.json, and loader.ts, which is the pattern you would follow to wire amis into a host application rather than a standalone page.
Installing baidu/amis and rendering a first page
The README's install instructions are aimed at people developing amis itself, not at people consuming it. It recommends node 12, 14, or 16, and npm 7 or later because the project uses npm workspaces. If you want to run the framework locally to see it work, this is the documented path.
npm i --legacy-peer-deps
npm startThe README states that after compilation finishes you reach the examples at http://127.0.0.1:8888/examples/pages/simple. The editor lives at http://127.0.0.1:8888/packages/amis-editor/. Note the --legacy-peer-deps flag: the README says installing under node 12 produces errors that do not affect normal use, and the flag is part of the documented command, not an optional extra.
For consuming amis in your own project, the README does not give a step-by-step integration guide. It links to the documentation site at https://baidu.github.io/amis/ for that. The repository does provide a build path if you need to produce distributable artifacts:
npm run build
npm test --workspacesThe README warns that you must run npm run build before npm test --workspaces, because jest does not support TypeScript directly. That ordering constraint is easy to miss and will produce confusing failures if you skip it. If you want to try a single test case instead of the whole suite, the documented form is npm test --workspace amis -- -t <spec-name>, where the spec name is something like inputImage.
Where amis stops being the right tool
The README's own boundary statement is the clearest limitation: amis only implements frontend low-code. It does not generate a backend, does not manage a database, and does not provide the server-side scaffolding that a full platform would. If your requirement is a complete low-code platform, the README directs you to 爱速搭 rather than pretending amis covers that ground.
A second constraint is the schema itself. Once pages are defined in JSON, that JSON becomes the thing you maintain. Version upgrades that change renderer behaviour can require schema edits across every page you have written. The release cadence is not aggressive: the most recent release listed is 6.13.0 from 2025-08-12, preceded by 6.12.0 in April 2025 and 6.11.0 in February 2025. The last push to the default branch was on 2026-03-18, so the repository is not archived, but the release history shows that major versions arrive on a roughly quarterly or slower rhythm.
A third issue is documentation language. The README is in Chinese, and while a README-en.md exists at the repository root, the primary documentation links and the contributor instructions assume Chinese. Teams without Chinese readers will be working from the English README and whatever the documentation site provides, which the README does not describe in detail. That is a real adoption cost, not a footnote.
How amis differs from LowCodeEngine and Fastapi-amis-admin
The related searches around amis surface two comparisons worth making concretely. LowCodeEngine is Alibaba's low-code engine, and the difference is scope: LowCodeEngine is positioned as an engine for building your own low-code platform, with the designer and material system as the product. amis ships a finished renderer set and a visual editor for producing page schemas. If you want to build a platform, the engine approach fits better. If you want to render admin pages today, amis is closer to done.
Fastapi-amis-admin is a different kind of project: it pairs a Python backend framework with amis as the frontend layer. That combination is instructive because it addresses the gap amis itself leaves open. amis renders the frontend; Fastapi-amis-admin supplies the backend and the model-to-schema mapping. If your stack is Python and you want the whole admin panel generated, the pairing makes sense. If your stack is not Python, or you already have APIs, amis alone is the smaller dependency.
Licence and the cost of keeping up with releases
amis is licensed under Apache-2.0, which permits commercial use, modification, and distribution provided you preserve the licence and notices. That is a permissive licence, and the repository includes a LICENSE file at the root. This is not legal advice; if you redistribute amis inside a product, have your own counsel review the notice requirements.
The upgrade cost is tied to the schema surface. Because pages are data, not code, a renderer change that alters expected properties can break many pages at once, and there is no migration tool described in the README. The repository does include a typecheck script (npm run typecheck) and a stylelint script, and the publish flow uses lerna version followed by lerna publish from-package. For consumers, the practical takeaway is that pinning a specific amis version and reading the release notes before moving is cheaper than tracking master. The README does not document a rollback procedure for schema changes, so plan your own.
Editorial conclusion
Adopt baidu/amis if you have a stable HTTP API and need CRUD admin screens without allocating frontend engineers, and you accept that the JSON schema is the contract you will maintain. Do not adopt it if you need a full low-code platform with backend generation, or if your team cannot read Chinese documentation, since the README and docs assume it. Before committing, verify which renderer types your target amis version supports, check that your data shapes map cleanly onto CRUD and Form renderers, and confirm the Apache-2.0 licence terms against your distribution model.
Frequently asked questions
What is baidu/amis used for?
amis is a frontend low-code framework that generates backend pages from JSON configuration. The README positions it for admin and internal tooling, and states that it can reduce development cost enough that you may not need to know frontend at all.
Is baidu/amis available in English?
The repository includes a README-en.md at the root, but the primary README and the documentation links are in Chinese. The README points to a documentation site at https://baidu.github.io/amis/ without describing its language coverage.
What node version does baidu/amis require?
The README recommends node 12, 14, or 16, plus npm 7 or later because the project uses npm workspaces. It notes that installing under node 12 produces errors that do not affect normal use, and the documented install command includes --legacy-peer-deps.
Does baidu/amis generate the backend too?
No. The README states that amis only implements frontend low-code, and directs readers who need a complete low-code platform to 爱速搭 instead.
How do I run the baidu/amis examples locally?
Run npm i --legacy-peer-deps followed by npm start. The README says that after compilation finishes, the examples are reachable at http://127.0.0.1:8888/examples/pages/simple and the editor at http://127.0.0.1:8888/packages/amis-editor/.
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/baidu-amis)