The TinyEngine Dockerfile disables TLS verification, and the roadmap chart stops six minor versions behind
TinyEngine is a low-code engine for building or developing low-code platforms across different domains.
At a glance
- What is it?
- TinyEngine is a Vue low-code engine that scaffolds a whole platform with a CLI and hands back deployable source code. The build and release plumbing is where the interesting detail sits: a container that turns off certificate checking and repoints the registry, a husky hook that installs only inside a real clone, two overlapping monorepo tools, and a milestone chart that was last updated at version 2.5.0.
- Who is it for?
- TinyEngine fits a team that wants to stand up a domain-specific low-code platform rather than assemble one from scratch, and the generated source code without engine support is the part that changes the ownership question. Treat the container build as development tooling rather than a production image, since it disables certificate verification and tags nginx as latest.
- Can I use it commercially?
- Yes. MIT 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 3 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 November 14, 2026, and from our analysis. They are not legal advice.
Star history
- opentiny/tiny-engine2,788 ★ · +0
| Repository | 2026-09-30 | 2026-11-14 |
|---|---|---|
| opentiny/tiny-engine | 2.8k | 2.8k |
0 Stars in the last 45 days, measured from the daily GitHub snapshot. Compare with other projects
Editorial analysis
The container turns off certificate checking and repoints the registry
The Dockerfile is short and does three things worth knowing about. The build stage starts from node:18-alpine, copies the entire context with ADD . ., and then runs npm config set strict-ssl false before pointing the registry at registry.npmmirror.com. Disabling strict-ssl is the line to notice: it removes certificate verification from every registry request the build makes. The registry swap is deliberate and regional rather than a mistake. pnpm is installed globally with npm, then the workspace is installed and the plugin and production builds run. The final stage copies the built designer-demo dist directory into nginx:latest, which is an unpinned tag, so the web server version behind a given image is whatever that tag resolves to on the day of the build.
The milestone chart stops at 2.5.0 while the releases are at 2.11.0
The roadmap is a Mermaid gantt chart embedded in the file, and it ends at version 2.5.0 dated 2025-05-15. Before that it records a 1.0.0-beta.x line running from 2023-09-25 to 2024-05-20, a 1.0.0-rc entry labelled as a refactor version on 2024-10-01, 1.0.0 on 2024-11-01, and then 2.0.0 through 2.5.0 at roughly monthly intervals to 2025-05-15. The published releases tell a different story: v2.11.0 on 2026-07-14, preceded by v2.11.0-rc.0 on 2026-07-03 and v2.10.0 on 2026-02-13. That is six minor versions and more than a year between the last line of the chart and the newest tag, so the chart is a historical record rather than a plan.
The build section's only instruction is not a runnable command
The Build heading contains a single line:
# Build Designer
pnpm run build:alpha or build:prodThe word or sits inside the command, so pasting it into a shell will fail on the trailing text. The manifest resolves what was meant. build:alpha delegates to the designer-demo package's build:alpha script, and build:prod delegates to that package's build script, and the Dockerfile calls the latter directly as pnpm build:prod. So there are two build modes behind that line, an alpha one and a production one, and the container image takes the production path without any of the ambiguity the README leaves in.
The husky hook installs only inside a real clone
The prepare script is a single expression rather than a sequence of named steps. It runs an inline node check that exits with a failure if a .git directory exists, and the shell then treats that failure as the trigger for husky install followed by a call to scripts/link-skills.js. Because the two commands after the check are joined with an AND, the effect is that a genuine git checkout gets both the hooks and the skill links, while a context without .git gets neither. That is the sensible outcome, but it arrives through an exit-code trick rather than an explicit condition, which means the behaviour flips if the exit code or the ordering of the operators is ever edited. The repository does carry a .husky/ directory and a lint-staged configuration, so the hooks have something to install.
Two monorepo tools, four tsconfigs and a lint flag from the old ESLint
The workspace is described twice over. pnpm-workspace.yaml defines the package globs, and lerna.json sits beside it as the release tool, with the publish scripts calling pnpm lerna version and lerna publish from-package. A preinstall hook enforces the choice by running only-allow pnpm, so an npm install fails before it starts. TypeScript is configured four times, with a base config and separate app, node and root configs. Linting is where the configuration and the script disagree in tone: the repository ships eslint.config.mjs, a flat config, while the lint script passes eslint a directory with an --ext flag covering seven extensions and a --fix, which is the older command-line style. Formatting runs Prettier over a glob that includes html and json, and a patches/ directory holds dependency overrides.
The default backend is a mock and the real one lives in a Java repository
Local development runs a setup step and then two servers at once: the backend filter targets the mock package and the frontend filter targets the designer demo. The file qualifies that backend in a blockquote, saying the mock server included with the created low-code platform only provides basic backend mock functionality, and that experiencing the complete backend service capabilities means following the Java backend startup instructions instead. Those instructions live in a separate repository, tiny-engine-backend-java, with its own frontend-backend integration documentation. Two variants of the dev script exist as well: one that serves the backend from a file rather than through the mock process, and one that switches the designer demo into an authenticated mode. So the default path gives you a working editor against stub data, not a working platform.
The URL carries the tenant and the page, and the doc links use a full-width colon
The editor is reached at a fixed local URL with four query parameters, and each one is defined in the file: type=app for the application type, id for the application, tenant for the organization, and pageid for the page. Above that, the Documentation section lists three entries for intro, tutorial and playground, each written with a full-width colon between the label and the URL rather than an ASCII one, which is a small marker of a file translated from Chinese and then kept in English. Materials synchronization has its own two commands:
$ pnpm splitMaterials$ pnpm buildMaterialsThe language switch at the top offers English and Simplified Chinese, backed by a second README and a second contribution guide in the tree, and a .env.local file sits at the repository root alongside .agents/, AGENTS.md and CLAUDE.md.
Editorial conclusion
TinyEngine fits a team that wants to stand up a domain-specific low-code platform rather than assemble one from scratch, and the generated source code without engine support is the part that changes the ownership question. Treat the container build as development tooling rather than a production image, since it disables certificate verification and tags nginx as latest. Read the mock-server caveat before assuming the bundled backend is the real one, and ignore the milestone chart, which stopped at 2.5.0 while published releases reached 2.11.0.
Frequently asked questions
What is TinyEngine used for?
TinyEngine is a low-code engine for building low-code platforms in different domains. It supports online real-time construction, secondary development, or being integrated into another product, and it can generate deployable source code directly without engine support.
What do I need to create a TinyEngine platform?
Node.js 18 or newer and pnpm 9 or newer, installed globally with npm install -g pnpm. Then npx @opentiny/tiny-engine-cli@latest create-platform with a name, cd into that directory, and pnpm install.
Does TinyEngine need a backend to run locally?
It ships with a mock server that provides only basic backend mock functionality, started through pnpm dev alongside the frontend. For the complete backend service capabilities the file points to a separate Java backend repository and its integration documentation.
How is TinyEngine released?
Through lerna with a pnpm workspace. The prerelease scripts build the plugins and the alpha bundle, then run lerna version with a beta preid and publish from-package under a beta dist-tag, with separate scripts for premajor, preminor and prepatch.
What license is TinyEngine released under?
MIT, with a LICENSE file in the repository root and a matching link at the end of the README.
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/opentiny-tiny-engine)Star history chart for your README
[](https://hysenlabs.com/projects/opentiny-tiny-engine)Was this useful?