1919
2020## 🧠 Why Codegen Blueprint Exists
2121
22- Modern engineering teams don’t struggle to ** start** new services —
22+ Modern engineering teams don’t struggle to ** start** new services —
2323they struggle to keep them ** architecturally consistent** as they scale.
2424
25- Most generators create a folder layout and walk away.
26- Codegen Blueprint enforces ** architectural integrity** :
25+ Most generators produce a folder structure and walk away.
26+ Codegen Blueprint safeguards ** architectural integrity** :
2727
28- * Starts clean — no framework leaks into the domain
28+ * Starts clean — no framework dependencies in the domain
2929* Stays clean — structure guides every evolution
30- * Prevents silent architecture drifts over time
30+ * Prevents silent architecture drift
3131
32- Not just scaffolding.
32+ Not just scaffolding.
3333Not just templates.
3434
35- > ** Architecture embedded into the software delivery pipeline.**
35+ > ** Executable Architecture — baked into the delivery pipeline.**
3636
3737<br />
3838
@@ -48,31 +48,28 @@ Not just templates.
4848
4949### 🎯 Who is this for?
5050
51- | Role | What you gain |
52- | -------------------- | --------------------------------- |
53- | Platform Engineering | Organization ‑wide standardization |
54- | Lead Architect | Governance as Code |
55- | Developers | Clean architecture from day zero |
56- | New Team Members | Instant productivity |
51+ | Role | Benefit |
52+ | -------------------- | -------------------------------- |
53+ | Platform Engineering | Org ‑wide standardization |
54+ | Lead Architect | Governance as Code |
55+ | Developers | Clean architecture from day zero |
56+ | New Team Members | Instant productivity |
5757
5858---
5959
6060### 🥇 What makes it different?
6161
62- > ** This is not a competitor comparison.**
63- > Spring Initializr and JHipster are fantastic and widely used tools with different missions.
64- > Codegen Blueprint focuses specifically on keeping architecture ** intentional** from day zero.
62+ > ** Initializr‑like simplicity** ➜ ** Architecture‑first consistency**
6563
66- | Capability Focus | Spring Initializr & JHipster | Codegen Blueprint |
67- | ---------------------------------- | ---------------------------- | ----------------- |
68- | Generates folder layout | ✔ | ✔ |
69- | Opinionated architecture defaults | ⚠️ | ** ✔** |
70- | Domain isolation by design | ❌ | ** ✔** |
71- | Profile- driven evolution paths | ⚠️ | ** ✔** |
72- | Anti- drift architecture support | ❌ | ** ✔** |
64+ | Capability Focus | Spring Initializr & JHipster | Codegen Blueprint |
65+ | --------------------------------- | ---------------------------- | ----------------- |
66+ | Generates folder layout | ✔ | ✔ |
67+ | Opinionated architecture defaults | ⚠️ | ** ✔** |
68+ | Domain isolation by design | ❌ | ** ✔** |
69+ | Profile‑ driven evolution paths | ⚠️ | ** ✔** |
70+ | Anti‑ drift support (future‑ready) | ❌ | ** ✔** |
7371
74- > 🚀 Same starting point → different long-term destination
75- > 🧭 Codegen Blueprint helps teams ** preserve architectural integrity** as services evolve
72+ > 🧭 Same starting point — ** better long‑term alignment**
7673
7774---
7875
@@ -81,6 +78,7 @@ Not just templates.
8178* ⚡ [ What is Codegen Blueprint (Today)?] ( #-what-is-codegen-blueprint-today )
8279* 🧭 [ 1.0.0 Scope & Status] ( #-100-scope--status )
8380* 💡 [ Why This Project Matters] ( #-why-this-project-matters )
81+ * 🔔 [ Sample Code & Greeting Example] ( #-sample-code--greeting-example )
8482* 🔌 [ Inbound Adapter] ( #-inbound-adapter-delivery )
8583* ⚙️ [ Outbound Adapters & Artifacts] ( #-outbound-adapters--artifacts )
8684* 🧪 [ Testing & CI] ( #-testing--ci )
@@ -96,111 +94,117 @@ Not just templates.
9694
9795A ** CLI‑driven** , ** architecture‑aware** project generator.
9896
99- 📌 Current primary profile:
100- ** springboot‑maven‑java**
101- (Spring Boot 3 + Maven + Java 21)
97+ 📌 Current primary profile: ** springboot‑maven‑java**
98+ (✔ Spring Boot 3.5.x · ✔ Java 21 · ✔ Maven)
10299
103- Generates a ** clean** , ** ready‑to‑extend ** Spring Boot project structure — similar to Spring Initializr, but with:
100+ Produces a clean and predictable structure with:
104101
105- * Clear and predictable layout
106- * Standardized project metadata (groupId, name, package)
107- * Built‑in test entry points from day zero
108- * Consistency without dependency overload
102+ * Standardized identifiers (groupId, artifactId, package)
103+ * Clear boundaries for maintainability
104+ * Tests ready from day zero
105+ * No dependency overload
109106
110107### Optional Architecture Layout
111108
112- 📌 Hexagonal is an evolution path — not a barrier.
113-
114- For teams embracing Clean/Hexagonal architecture:
109+ 📌 Hexagonal is an ** opt‑in structured evolution path** .
115110
116111```
117- domain // business rules (no Spring dependencies )
112+ domain // business logic only (no Spring)
118113application // orchestrates ports
119- adapters // inbound & outbound adapters
120- bootstrap // Spring wiring & configuration
114+ adapters // inbound & outbound
115+ bootstrap // configuration & wiring
121116```
122117
123- > "Spring Initializr — but ** with architecture options built‑in ** , not bolted on later."
118+ > “Framework‑free domain — intentional architecture from day zero.”
124119
125120<br />
126121
127122<p align =" center " >
128123 <img src="docs/images/architecture/architecture-overview.png"
129- alt="Codegen Blueprint — Hexagonal Architecture Overview"
124+ alt="Hexagonal Architecture Overview"
130125 width="840"/>
131126 <br />
132- <em >
133- Engine flow: CLI input ➜ Use case orchestration ➜ Domain constraints ➜ Artifact generation ➜ Spring Boot project output
134- </em >
127+ <em >Flow: Inputs ➜ Use Cases ➜ Domain Rules ➜ Artifacts ➜ Executable Service</em >
135128</p >
136129
137130---
138131
139132## 🧭 1.0.0 Scope & Status
140133
141- ### What is included ( 1.0.0)
134+ ### Included in 1.0.0
142135
143- | Capability | Status |
144- | ------------------------------------------------- | ------------------- |
145- | CLI- based generation | ✔ Production- ready |
146- | Standard Spring Boot skeleton | ✔ Stable |
147- | Hexagonal layout option (opt-in) | ✔ Available |
148- | Spring Boot 3 / Java 21 / Maven support | ✔ |
149- | Main + test entrypoints generated | ✔ |
150- | Required artifacts generated (pom, YAML, etc.) | ✔ |
151- | Open-source licensing | ✔ MIT License |
136+ | Feature | Status |
137+ | -------------------------------------- | ------------------ |
138+ | CLI‑ based generation | ✔ Production‑ ready |
139+ | Hexagonal architecture layout (opt‑in) | ✔ Available |
140+ | Spring Boot 3 / Java 21 / Maven | ✔ Supported |
141+ | Main + test entrypoints | ✔ Provided |
142+ | Required build + config artifacts | ✔ Generated |
143+ | Greeting sample (optional sample‑code) | ✔ Included |
144+ | MIT License | ✔ Open‑source |
152145
153- ### What is planned next
146+ ### Up Next
154147
155- | Feature | Status |
156- | ----------------------------------------------| -- ----------|
157- | REST inbound adapter | Planned |
158- | Advanced hexagonal variations (ports, CQRS) | Planned |
159- | Additional profiles (Gradle, Kotlin, Quarkus)| Planned |
160- | Multi-module generation | Planned |
161- | Foundation libraries ( ` blueprint-* ` ) | Planned |
162- | Developer UI / web console | Evaluating |
148+ | Feature | Status |
149+ | ------------------------------------------------ | ---------- |
150+ | REST inbound adapter | Planned |
151+ | Hexagonal evolution kit (ports + CQRS) | Planned |
152+ | Additional profiles (Gradle, Kotlin, Quarkus) | Planned |
153+ | Foundation libraries ( ` blueprint-* ` ) | Planned |
154+ | Multi‑module services | Planned |
155+ | Developer UI | Evaluating |
163156
164- > Strategy: ** Deep quality in one profile ** → then expand ecosystem.
157+ > ✔ Deep quality first → expand ecosystem next
165158
166159📌 For more details:
167- - [ Engine Enforcement Scope (1.0.0)] ( docs/architecture/engine-scope.md )
168- - [ Generated Project Scope (1.0.0)] ( docs/architecture/project-scope.md )
160+ - [ Executable Architecture Scope (1.0.0)] ( docs/architecture/executable-architecture-scope.md )
161+
162+ ---
169163
170164## 💡 Why This Project Matters
171165
172- Modern services deserve more than a bare ` /src/main/java ` .
166+ Clean architecture shouldn’t be optional .
173167
174- You get :
168+ You gain :
175169
176- * ✔ Predictable structure
170+ * ✔ Predictable structure & boundaries
177171* ✔ Testability from day zero
178- * ✔ Architecture as a ** standard ** , not an afterthought
179- * ✔ Faster onboarding
172+ * ✔ Faster onboarding & team scaling
173+ * ✔ Architectural governance without friction
180174
181175You avoid:
182176
183- * ❌ Copy- paste architecture
184- * ❌ Every repo looks different
185- * ❌ Best practices lost over time
186- * ❌ Silent architecture drift
177+ * ❌ Copy‑ paste architecture
178+ * ❌ Each repo reinventing patterns
179+ * ❌ Best‑practice rot over time
180+ * ❌ Architecture drift
187181
188- 📘 Explore the architecture:
182+ 📘 Explore design:
189183👉 [ How to Explore This Project (Hexagonal Architecture Guide)] ( ./docs/guides/how-to-explore-hexagonal-architecture.md )
190184
191- ### 🧩 Strategic Impact
185+ ### Strategic Impact
192186
193- Architecture stays ** intentional — not accidental ** .
187+ Architecture becomes ** intentional — enforceable — repeatable ** .
194188
195- Teams benefit from:
189+ ---
196190
197- * Standardized setup across services
198- * Clear responsibility boundaries
199- * Faster developer onboarding
200- * Future enforcement ready (ArchUnit, boundaries)
191+ ## 🔔 Sample Code & Greeting Example
201192
202- Result:
203- ** Every new service starts aligned — and scales without losing its architecture.**
193+ 📌 Minimal but meaningful reference sample:
194+
195+ * Domain model: ** Greeting**
196+ * Use case: generate greeting text
197+ * Inbound REST adapter: ` /api/v1/sample/greetings/default `
198+ * Hexagonal structure illustrates ** port‑driven design**
199+
200+ Enabled when flags include:
201+
202+ ```
203+ --layout hexagonal \
204+ --sample-code basic
205+ ```
206+
207+ > Designed as a ** teaching reference** and a ** quick productivity boost**
204208
205209---
206210
@@ -221,17 +225,18 @@ Active profile:
221225springboot‑maven‑java
222226```
223227
224- Generated artifacts (1.0.0) :
228+ Generated artifacts:
225229
226- | Category | Includes |
227- | ------------------| -------------------------------------------------------------------------|
228- | Build files | ` pom.xml ` , Maven Wrapper (` mvnw ` , ` .mvn/ ` ) |
229- | Runtime config | ` src/main/resources/application.yml ` |
230- | Source entrypoints | Main application & test bootstrap classes |
231- | Git hygiene | Standard ` .gitignore ` |
232- | Documentation | Minimal ` README.md ` inside the generated project |
230+ | Category | Includes |
231+ | --------------- | -------------------------------------------------------- |
232+ | Build system | ` pom.xml ` , Maven Wrapper |
233+ | Runtime config | ` src/main/resources/application.yml ` |
234+ | Source skeleton | Main application & test bootstraps |
235+ | Sample code | Optional greeting sample (domain + ports + REST adapter) |
236+ | Git hygiene | ` .gitignore ` |
237+ | Docs (minimal) | ` README.md ` inside generated project |
233238
234- > Everything required to ** build, run, test and evolve ** a clean Spring Boot service from day zero.
239+ > Everything required to ** build ▸ run ▸ extend ** a clean service
235240
236241---
237242
@@ -241,12 +246,10 @@ Generated artifacts (1.0.0):
241246mvn verify
242247```
243248
244- Includes:
245-
246- * ✔ Unit + integration tests
247- * ✔ JaCoCo coverage
248- * ✔ CodeQL security scan
249- * ✔ Codecov reporting
249+ * Unit + integration tests ✔
250+ * JaCoCo coverage ✔
251+ * CodeQL security ✔
252+ * Codecov reporting ✔
250253
251254---
252255
@@ -256,44 +259,44 @@ Includes:
256259java -jar codegen-blueprint-1.0.0.jar \
257260 --cli \
258261 springboot \
259- --group-id com.acme \
260- --artifact-id demo \
261- --name " Demo App " \
262- --description " Demo application for Acme " \
263- --package-name com.acme.demo \
262+ --group-id io.github.blueprintplatform.samples \
263+ --artifact-id greeting-service \
264+ --name " Greeting Service " \
265+ --description " Hexagonal greeting sample powered by Blueprint " \
266+ --package-name io.github.blueprintplatform.samples.greeting \
264267 --layout hexagonal \
268+ --sample-code basic \
265269 --dependency web \
266- --dependency data_jpa \
267- --dependency validation
270+ --dependency data_jpa
268271```
269272
270273** Output (simplified)**
271274
272275```
273- demo /
276+ greeting-service /
274277 ├── pom.xml
275- ├── src/main/java/com/example/demo/DemoApplication .java
276- ├── src/test/java/com/example/demo/DemoApplicationTests .java
278+ ├── src/main/java/io/github/blueprintplatform/samples/greeting/GreetingServiceApplication .java
279+ ├── src/test/java/io/github/blueprintplatform/samples/greeting/GreetingServiceApplicationTests .java
277280 ├── src/main/resources/application.yml
278281 └── .gitignore
279282```
280283
284+ > Hexagonal + sample code = ready‑to‑run REST greeting service
285+
281286---
282287
283288## 🚀 Vision & Roadmap (Beyond 1.0.0)
284289
285- > Best practices should ** execute** , not just be documented.
286-
287- Roadmap themes:
290+ > Best practices should ** execute** , not merely be documented.
288291
289- * 🧱 Hexagonal evolution kit (ports + adapters + CQRS)
290- * 📈 Observability acceleration (metrics + tracing defaults )
291- * 🔐 Enterprise-grade security (OAuth2 / Keycloak)
292- * 🧩 Multi- module service composition
293- * 🎯 Broader profile ecosystem ( Gradle / Kotlin / Quarkus)
292+ * 🧱 Hexagonal evolution kits (ports / adapters / CQRS)
293+ * 📈 Observability defaults ( tracing / metrics )
294+ * 🔐 Security (OAuth2 / Keycloak patterns )
295+ * 🧩 Multi‑ module service generation
296+ * 🎯 Broader ecosystem: Gradle / Kotlin / Quarkus
294297* 💻 Developer UI → configure → generate → download
295298
296- > ** Executable Architecture** for modern service development.
299+ > ** Executable Architecture for modern delivery **
297300
298301---
299302
0 commit comments