Skip to content

What is ArchForge? ​

ArchForge is a contract-first enterprise platform split across four sibling Git repositories: a Spring Boot 4.1 backend that also owns the API contract and the AI context agents read first, a Vue 3 admin UI, a Next.js C-end, and this VitePress site.

It is not “another RuoYi with a newer JDK”. The product bet is shared constitution + dual servers + AI-native docs.

Why ArchForge? ​

Java admin templates still win on feature count. ArchForge wins on how work is specified:

  • One source of truth in the backend repo (repos.yaml, generated OpenAPI, enums, skills) that humans and agents share
  • Two Spring Boot apps with two auth realms and two error envelopes
  • DDD modules with Spring Modulith 2.1.0 boundary checks
  • Per-repo AGENTS.md and a CLI that can install skills / speak MCP

Version numbers move. yudao (RuoYi-Vue-Pro) already ships Spring Boot 4.1 + JDK 25 on master-jdk25 (their 2026-06 changelog). We do not pretend otherwise.

Core Highlights ​

  • Spring Boot 4.1.0 + Java 25 — virtual threads; optional Liberica NIK Native Image (~100ms start)
  • Sa-Token 1.45.0 — StpAdminUtil (:8080) and StpWebUtil (:8081); not Spring Security JWT
  • Vue 3 + Vite 8 admin on :8848 → :8080
  • Next.js C-end on :3000 → :8081
  • Developer CLI — ./archforge from the backend root
  • Flyway 12.4.0, dynamic datasource, OpenTelemetry 1.62.0
  • Spring Modulith 2.1.0 — module boundaries and documentation tests

Four sibling repositories ​

Clone them side by side. No git submodules.

workspace/
├── ArchForge/          # backend (admin :8080 + web :8081) + contract (spec/) + AI context (.agents/)
├── ArchForgeAdmin/     # admin client — consumes :8080
├── ArchForgeWeb/       # C-end — consumes :8081
└── ArchForgeDocs/      # this site
RepositoryRoleHow you run it
ArchForgeGradle backend./gradlew :archforge-server-admin:bootRun or ./archforge up
ArchForgeAdminAdmin UIpnpm dev → http://localhost:8848
ArchForgeWebC-end UIpnpm dev → http://localhost:3000/en
ArchForgeDocsDocsnpm run docs:dev

API envelopes:

  • Admin (:8080) {code, message, data}
  • Web (:8081) RFC 9457 ProblemDetail on errors

Comparison (architecture, not version scoreboard) ​

Comparison data dated 2026-04. Competitor versions change; check their changelogs.

DimensionArchForgeTypical Java admin templates
Source of truthOpenAPI generated from the code + enums.yaml, checked by client CIWiki / scattered Swagger
LayoutFour sibling Git repos, no submodulesOne monorepo or backend+UI pair
Authsa-token, two realmsSpring Security JWT, one realm
ErrorsDual envelope (admin wrap vs ProblemDetail)One {code,msg,data} everywhere
DomainDDD modules + Modulith 2.1.0Layered packages + MyBatis XML
AgentsAGENTS.md, skills, CLI MCPOptional README
RuntimeSpring Boot 4.1 + JDK 25 (same class as yudao master-jdk25)Mix of Boot 2/3/4 depending on branch

Who is it for? ​

  • Teams who want Admin + C-end with separate auth
  • Groups that will use coding agents and need a constitution those agents cannot ignore
  • People who prefer JPA metamodel queries over MyBatis XML

Next ​

Released under the MIT License.