Skip to main content

Marsquakes

An npm package that scaffolds multi-platform monorepos. Install it once, run mars create, pick the platforms you need, and you get a working repository with a backend API, an admin frontend, desktop and mobile clients already wired together by pnpm workspace + Turborepo.

pnpm add -g @marsquakes/cli
mars create my-app

What you get

mars create copies a real, running template and trims it to the platforms you selected — not a skeleton you still have to fill in:

  • A working backendapps/api, Spring Boot on JDK 17, buildable with Maven or entirely inside Docker.
  • A working admin frontendapps/web-admin, Vue 3 + Vite, with the Docker and nginx configuration already written.
  • Optional extra targets — web client, Tauri desktop, Android, iOS, Windows, Linux, macOS. Unselected platforms are never copied, and their toolchains are never installed either.
  • Working orchestrationmars init then mars dev starts every enabled platform in parallel. No wiring step in between.

One file, platforms.json, is the source of truth every mars command reads, so enabling a platform later is a configuration change, not a refactor:

my-app/
├── apps/ # only the platforms you selected
├── packages/ # shared workspace packages
├── platforms.json # the registry every mars command reads
├── pnpm-workspace.yaml
├── turbo.json
└── AGENTS.md # conventions, also read by AI coding agents

Unlike cloning a template repository, you pick platforms up front and stay able to run mars update, which pulls later build-wiring improvements into an existing project without touching apps/, docs/, .docs/ or design/.

The journey

This track is for running every command yourself, in order:

  1. Environment Setup — install Node and pnpm (the only up-front requirements), then the mars CLI.

  2. Start a Project — run mars create, pick your platforms, then mars init installs the toolchain they imply.

  3. Build an application — each platform has the same three pages:

    PlatformEnvironmentDevelopDeploy
    Admin systemEnvDevelopDeploy
    DesktopEnvDevelopDeploy
    AndroidEnvDevelopDeploy
  4. Reference — look these up only when you need them: CLI · Platforms · Docker · Conventions.

Prefer to describe what you want and let an AI agent type the commands? Use the AI Guide instead — start at its Introduction.

Requirements

ToolVersionNeeded for
Node>= 22.12.0running the mars CLI itself
pnpm>= 9.0.0installing dependencies in the generated project

Everything else — JDK, Maven, Rust, Android SDK — is only needed for the specific platforms you enable, and you do not install it by hand: mars init derives the list from your selection and installs it.

License

The CLI and the template wiring are released under the Apache License 2.0. Third-party code vendored under apps/ keeps its own upstream license — apps/api and apps/web-admin are derived from JeecgBoot, and apps/desktop is a git submodule with its own LICENSE. Check the license file inside a platform directory before redistributing it.

Author

Shing Rui[email protected]