@venizia/ignis-docs 0.0.3 → 0.0.4-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/README.md +1 -1
  2. package/package.json +4 -2
  3. package/wiki/best-practices/api-usage-examples.md +591 -0
  4. package/wiki/best-practices/architectural-patterns.md +415 -0
  5. package/wiki/best-practices/architecture-decisions.md +488 -0
  6. package/wiki/{get-started/best-practices → best-practices}/code-style-standards.md +406 -17
  7. package/wiki/{get-started/best-practices → best-practices}/common-pitfalls.md +109 -4
  8. package/wiki/{get-started/best-practices → best-practices}/contribution-workflow.md +34 -7
  9. package/wiki/best-practices/data-modeling.md +376 -0
  10. package/wiki/best-practices/deployment-strategies.md +698 -0
  11. package/wiki/best-practices/index.md +27 -0
  12. package/wiki/best-practices/performance-optimization.md +196 -0
  13. package/wiki/best-practices/security-guidelines.md +218 -0
  14. package/wiki/{get-started/best-practices → best-practices}/troubleshooting-tips.md +97 -1
  15. package/wiki/changelogs/2025-12-16-initial-architecture.md +1 -1
  16. package/wiki/changelogs/2025-12-16-model-repo-datasource-refactor.md +1 -1
  17. package/wiki/changelogs/2025-12-17-refactor.md +1 -1
  18. package/wiki/changelogs/2025-12-18-performance-optimizations.md +5 -5
  19. package/wiki/changelogs/2025-12-18-repository-validation-security.md +13 -7
  20. package/wiki/changelogs/2025-12-26-nested-relations-and-generics.md +2 -2
  21. package/wiki/changelogs/2025-12-29-dynamic-binding-registration.md +104 -0
  22. package/wiki/changelogs/2025-12-29-snowflake-uid-helper.md +100 -0
  23. package/wiki/changelogs/2025-12-30-repository-enhancements.md +214 -0
  24. package/wiki/changelogs/2025-12-31-json-path-filtering-array-operators.md +214 -0
  25. package/wiki/changelogs/2025-12-31-string-id-custom-generator.md +137 -0
  26. package/wiki/changelogs/2026-01-02-default-filter-and-repository-mixins.md +418 -0
  27. package/wiki/changelogs/index.md +6 -0
  28. package/wiki/changelogs/planned-schema-migrator.md +0 -8
  29. package/wiki/{get-started/core-concepts → guides/core-concepts/application}/bootstrapping.md +18 -5
  30. package/wiki/{get-started/core-concepts/application.md → guides/core-concepts/application/index.md} +47 -104
  31. package/wiki/guides/core-concepts/components-guide.md +509 -0
  32. package/wiki/{get-started → guides}/core-concepts/components.md +24 -17
  33. package/wiki/{get-started → guides}/core-concepts/controllers.md +30 -13
  34. package/wiki/{get-started → guides}/core-concepts/dependency-injection.md +97 -0
  35. package/wiki/guides/core-concepts/persistent/datasources.md +179 -0
  36. package/wiki/guides/core-concepts/persistent/index.md +119 -0
  37. package/wiki/guides/core-concepts/persistent/models.md +241 -0
  38. package/wiki/guides/core-concepts/persistent/repositories.md +219 -0
  39. package/wiki/guides/core-concepts/persistent/transactions.md +170 -0
  40. package/wiki/{get-started → guides}/core-concepts/services.md +26 -3
  41. package/wiki/{get-started → guides/get-started}/5-minute-quickstart.md +59 -14
  42. package/wiki/guides/get-started/philosophy.md +682 -0
  43. package/wiki/guides/get-started/setup.md +157 -0
  44. package/wiki/guides/index.md +89 -0
  45. package/wiki/guides/reference/glossary.md +243 -0
  46. package/wiki/{get-started → guides/reference}/mcp-docs-server.md +0 -10
  47. package/wiki/{get-started → guides/tutorials}/building-a-crud-api.md +134 -132
  48. package/wiki/{get-started/quickstart.md → guides/tutorials/complete-installation.md} +107 -71
  49. package/wiki/guides/tutorials/ecommerce-api.md +1399 -0
  50. package/wiki/guides/tutorials/realtime-chat.md +1261 -0
  51. package/wiki/guides/tutorials/testing.md +723 -0
  52. package/wiki/index.md +176 -37
  53. package/wiki/references/base/application.md +27 -0
  54. package/wiki/references/base/bootstrapping.md +31 -26
  55. package/wiki/references/base/components.md +24 -7
  56. package/wiki/references/base/controllers.md +50 -20
  57. package/wiki/references/base/datasources.md +30 -0
  58. package/wiki/references/base/dependency-injection.md +39 -3
  59. package/wiki/references/base/filter-system/application-usage.md +224 -0
  60. package/wiki/references/base/filter-system/array-operators.md +132 -0
  61. package/wiki/references/base/filter-system/comparison-operators.md +109 -0
  62. package/wiki/references/base/filter-system/default-filter.md +428 -0
  63. package/wiki/references/base/filter-system/fields-order-pagination.md +155 -0
  64. package/wiki/references/base/filter-system/index.md +127 -0
  65. package/wiki/references/base/filter-system/json-filtering.md +197 -0
  66. package/wiki/references/base/filter-system/list-operators.md +71 -0
  67. package/wiki/references/base/filter-system/logical-operators.md +156 -0
  68. package/wiki/references/base/filter-system/null-operators.md +58 -0
  69. package/wiki/references/base/filter-system/pattern-matching.md +108 -0
  70. package/wiki/references/base/filter-system/quick-reference.md +431 -0
  71. package/wiki/references/base/filter-system/range-operators.md +63 -0
  72. package/wiki/references/base/filter-system/tips.md +190 -0
  73. package/wiki/references/base/filter-system/use-cases.md +452 -0
  74. package/wiki/references/base/index.md +90 -0
  75. package/wiki/references/base/middlewares.md +604 -0
  76. package/wiki/references/base/models.md +215 -23
  77. package/wiki/references/base/providers.md +731 -0
  78. package/wiki/references/base/repositories/advanced.md +555 -0
  79. package/wiki/references/base/repositories/index.md +228 -0
  80. package/wiki/references/base/repositories/mixins.md +331 -0
  81. package/wiki/references/base/repositories/relations.md +486 -0
  82. package/wiki/references/base/repositories.md +40 -635
  83. package/wiki/references/base/services.md +28 -4
  84. package/wiki/references/components/authentication.md +22 -2
  85. package/wiki/references/components/health-check.md +12 -0
  86. package/wiki/references/components/index.md +23 -0
  87. package/wiki/references/components/mail.md +687 -0
  88. package/wiki/references/components/request-tracker.md +16 -0
  89. package/wiki/references/components/socket-io.md +18 -0
  90. package/wiki/references/components/static-asset.md +14 -26
  91. package/wiki/references/components/swagger.md +17 -0
  92. package/wiki/references/configuration/environment-variables.md +427 -0
  93. package/wiki/references/configuration/index.md +73 -0
  94. package/wiki/references/helpers/cron.md +14 -0
  95. package/wiki/references/helpers/crypto.md +15 -0
  96. package/wiki/references/helpers/env.md +16 -0
  97. package/wiki/references/helpers/error.md +17 -0
  98. package/wiki/references/helpers/index.md +14 -0
  99. package/wiki/references/helpers/inversion.md +24 -4
  100. package/wiki/references/helpers/logger.md +19 -0
  101. package/wiki/references/helpers/network.md +11 -0
  102. package/wiki/references/helpers/queue.md +19 -0
  103. package/wiki/references/helpers/redis.md +21 -0
  104. package/wiki/references/helpers/socket-io.md +24 -5
  105. package/wiki/references/helpers/storage.md +18 -10
  106. package/wiki/references/helpers/testing.md +18 -0
  107. package/wiki/references/helpers/types.md +16 -0
  108. package/wiki/references/helpers/uid.md +167 -0
  109. package/wiki/references/helpers/worker-thread.md +16 -0
  110. package/wiki/references/index.md +177 -0
  111. package/wiki/references/quick-reference.md +634 -0
  112. package/wiki/references/src-details/boot.md +3 -3
  113. package/wiki/references/src-details/dev-configs.md +0 -4
  114. package/wiki/references/src-details/docs.md +2 -2
  115. package/wiki/references/src-details/index.md +86 -0
  116. package/wiki/references/src-details/inversion.md +1 -6
  117. package/wiki/references/src-details/mcp-server.md +3 -15
  118. package/wiki/references/utilities/index.md +86 -10
  119. package/wiki/references/utilities/jsx.md +577 -0
  120. package/wiki/references/utilities/request.md +0 -2
  121. package/wiki/references/utilities/statuses.md +740 -0
  122. package/wiki/get-started/best-practices/api-usage-examples.md +0 -266
  123. package/wiki/get-started/best-practices/architectural-patterns.md +0 -170
  124. package/wiki/get-started/best-practices/data-modeling.md +0 -177
  125. package/wiki/get-started/best-practices/deployment-strategies.md +0 -121
  126. package/wiki/get-started/best-practices/performance-optimization.md +0 -97
  127. package/wiki/get-started/best-practices/security-guidelines.md +0 -99
  128. package/wiki/get-started/core-concepts/persistent.md +0 -539
  129. package/wiki/get-started/index.md +0 -65
  130. package/wiki/get-started/philosophy.md +0 -296
  131. package/wiki/get-started/prerequisites.md +0 -113
@@ -0,0 +1,682 @@
1
+ # Philosophy: The Best of Two Worlds
2
+
3
+ Ignis combines the structured, enterprise-grade development experience of **LoopBack 4** with the speed and simplicity of **Hono**.
4
+
5
+ <div class="philosophy-hero">
6
+ <div class="hero-content">
7
+ <span class="hero-icon">🔥</span>
8
+ <div class="hero-text">
9
+ <strong>Enterprise patterns. Hono performance. Modern simplicity.</strong>
10
+ <span>The framework for developers who want structure without the weight.</span>
11
+ </div>
12
+ </div>
13
+ </div>
14
+
15
+ ## The Framework Landscape
16
+
17
+ When building REST APIs with Node.js/Bun, developers choose from three categories of frameworks:
18
+
19
+ <div class="landscape-grid">
20
+
21
+ <div class="landscape-card minimal">
22
+ <div class="card-header">
23
+ <span class="card-icon">⚡</span>
24
+ <h3>Express, Hono, Fastify, Koa</h3>
25
+ <span class="card-badge">Minimal</span>
26
+ </div>
27
+ <p class="card-motto">Freedom, speed, flexibility</p>
28
+ <div class="card-traits">
29
+ <span class="trait-good">Lightning fast</span>
30
+ <span class="trait-good">Total control</span>
31
+ <span class="trait-good">Tiny footprint</span>
32
+ <span class="trait-warn">DIY architecture</span>
33
+ <span class="trait-warn">Manual patterns</span>
34
+ </div>
35
+ </div>
36
+
37
+ <div class="landscape-card balanced">
38
+ <div class="card-header">
39
+ <span class="card-icon">🔥</span>
40
+ <h3>Ignis, Ts.ED</h3>
41
+ <span class="card-badge">Balanced</span>
42
+ </div>
43
+ <p class="card-motto">Structure with lighter footprint</p>
44
+ <div class="card-traits">
45
+ <span class="trait-good">Lighter weight</span>
46
+ <span class="trait-good">Single file build</span>
47
+ <span class="trait-good">Fast startup</span>
48
+ <span class="trait-good">ESM native</span>
49
+ <span class="trait-good">Modern stack</span>
50
+ </div>
51
+ </div>
52
+
53
+ <div class="landscape-card enterprise">
54
+ <div class="card-header">
55
+ <span class="card-icon">🏢</span>
56
+ <h3>NestJS, LoopBack 4, AdonisJS</h3>
57
+ <span class="card-badge">Enterprise</span>
58
+ </div>
59
+ <p class="card-motto">Structure, patterns, conventions</p>
60
+ <div class="card-traits">
61
+ <span class="trait-good">Battle-tested</span>
62
+ <span class="trait-good">Rich ecosystem</span>
63
+ <span class="trait-good">Strong typing</span>
64
+ <span class="trait-warn">Heavy footprint</span>
65
+ <span class="trait-warn">Steep learning</span>
66
+ </div>
67
+ </div>
68
+
69
+ </div>
70
+
71
+ ## Honest Comparison
72
+
73
+ ### Performance & Runtime
74
+
75
+ <div class="perf-section">
76
+ <div class="perf-chart">
77
+
78
+ <div class="perf-row">
79
+ <div class="perf-info">
80
+ <span class="perf-name">Hono</span>
81
+ <span class="perf-meta">~10ms startup · ~20MB</span>
82
+ </div>
83
+ <div class="perf-bar-container">
84
+ <div class="perf-bar hono" style="--width: 100%">
85
+ <span class="perf-value">~150k req/s</span>
86
+ </div>
87
+ </div>
88
+ <div class="perf-runtime">Bun, Node, Deno, CF Workers</div>
89
+ </div>
90
+
91
+ <div class="perf-row highlight">
92
+ <div class="perf-info">
93
+ <span class="perf-name">Ignis</span>
94
+ <span class="perf-meta">~30ms startup · ~30MB</span>
95
+ </div>
96
+ <div class="perf-bar-container">
97
+ <div class="perf-bar ignis" style="--width: 93%">
98
+ <span class="perf-value">~140k req/s</span>
99
+ </div>
100
+ </div>
101
+ <div class="perf-runtime">Bun, Node</div>
102
+ </div>
103
+
104
+ <div class="perf-row">
105
+ <div class="perf-info">
106
+ <span class="perf-name">Fastify</span>
107
+ <span class="perf-meta">~50ms startup · ~40MB</span>
108
+ </div>
109
+ <div class="perf-bar-container">
110
+ <div class="perf-bar fastify" style="--width: 53%">
111
+ <span class="perf-value">~80k req/s</span>
112
+ </div>
113
+ </div>
114
+ <div class="perf-runtime">Node only</div>
115
+ </div>
116
+
117
+ <div class="perf-row">
118
+ <div class="perf-info">
119
+ <span class="perf-name">NestJS</span>
120
+ <span class="perf-meta">~500ms startup · ~100MB</span>
121
+ </div>
122
+ <div class="perf-bar-container">
123
+ <div class="perf-bar nestjs" style="--width: 17%">
124
+ <span class="perf-value">~25k req/s</span>
125
+ </div>
126
+ </div>
127
+ <div class="perf-runtime">Node (Bun experimental)</div>
128
+ </div>
129
+
130
+ <div class="perf-row">
131
+ <div class="perf-info">
132
+ <span class="perf-name">LoopBack 4</span>
133
+ <span class="perf-meta">~800ms startup · ~120MB</span>
134
+ </div>
135
+ <div class="perf-bar-container">
136
+ <div class="perf-bar loopback" style="--width: 13%">
137
+ <span class="perf-value">~20k req/s</span>
138
+ </div>
139
+ </div>
140
+ <div class="perf-runtime">Node only</div>
141
+ </div>
142
+
143
+ <div class="perf-row">
144
+ <div class="perf-info">
145
+ <span class="perf-name">Express</span>
146
+ <span class="perf-meta">~100ms startup · ~50MB</span>
147
+ </div>
148
+ <div class="perf-bar-container">
149
+ <div class="perf-bar express" style="--width: 10%">
150
+ <span class="perf-value">~15k req/s</span>
151
+ </div>
152
+ </div>
153
+ <div class="perf-runtime">Node only</div>
154
+ </div>
155
+
156
+ </div>
157
+ <p class="perf-footnote">* Benchmarks are approximate and vary by use case</p>
158
+ </div>
159
+
160
+ ### Developer Experience
161
+
162
+ <div class="comparison-table-wrapper">
163
+ <table class="comparison-table">
164
+ <thead>
165
+ <tr>
166
+ <th>Aspect</th>
167
+ <th><span class="header-icon">⚡</span> Minimal (Hono/Express)</th>
168
+ <th><span class="header-icon">🏢</span> Enterprise (NestJS/LoopBack)</th>
169
+ <th class="highlight-col"><span class="header-icon">🔥</span> Ignis</th>
170
+ </tr>
171
+ </thead>
172
+ <tbody>
173
+ <tr>
174
+ <td class="feature-name">Setup Time</td>
175
+ <td><span class="status-good">5 minutes</span></td>
176
+ <td><span class="status-neutral">30+ minutes</span></td>
177
+ <td class="highlight-col"><span class="status-best">10 minutes</span></td>
178
+ </tr>
179
+ <tr>
180
+ <td class="feature-name">Learning Curve</td>
181
+ <td><span class="status-good">Low</span></td>
182
+ <td><span class="status-neutral">High</span></td>
183
+ <td class="highlight-col"><span class="status-best">Medium</span></td>
184
+ </tr>
185
+ <tr>
186
+ <td class="feature-name">Boilerplate</td>
187
+ <td><span class="status-good">Minimal</span></td>
188
+ <td><span class="status-neutral">Heavy</span></td>
189
+ <td class="highlight-col"><span class="status-best">Moderate</span></td>
190
+ </tr>
191
+ <tr>
192
+ <td class="feature-name">Type Safety</td>
193
+ <td><span class="status-neutral">Manual</span></td>
194
+ <td><span class="status-good">Excellent</span></td>
195
+ <td class="highlight-col"><span class="status-best">Excellent</span></td>
196
+ </tr>
197
+ <tr>
198
+ <td class="feature-name">IDE Support</td>
199
+ <td><span class="status-neutral">Basic</span></td>
200
+ <td><span class="status-good">Excellent</span></td>
201
+ <td class="highlight-col"><span class="status-good">Good</span></td>
202
+ </tr>
203
+ <tr>
204
+ <td class="feature-name">Documentation</td>
205
+ <td><span class="status-good">Good</span></td>
206
+ <td><span class="status-good">Excellent</span></td>
207
+ <td class="highlight-col"><span class="status-neutral">Growing</span></td>
208
+ </tr>
209
+ <tr>
210
+ <td class="feature-name">Flexibility vs Convention</td>
211
+ <td><span class="status-good">Total Freedom</span></td>
212
+ <td><span class="status-neutral">Opinionated</span></td>
213
+ <td class="highlight-col"><span class="status-best">Guided Flexibility</span></td>
214
+ </tr>
215
+ </tbody>
216
+ </table>
217
+ </div>
218
+
219
+ ### Architecture & Patterns
220
+
221
+ <div class="comparison-table-wrapper">
222
+ <table class="comparison-table">
223
+ <thead>
224
+ <tr>
225
+ <th>Feature</th>
226
+ <th><span class="header-icon">⚡</span> Minimal</th>
227
+ <th><span class="header-icon">🏢</span> Enterprise</th>
228
+ <th class="highlight-col"><span class="header-icon">🔥</span> Ignis</th>
229
+ </tr>
230
+ </thead>
231
+ <tbody>
232
+ <tr>
233
+ <td class="feature-name">Dependency Injection</td>
234
+ <td><span class="status-neutral">Manual</span></td>
235
+ <td><span class="status-good">Built-in (full-featured)</span></td>
236
+ <td class="highlight-col"><span class="status-good">Built-in (simpler)</span></td>
237
+ </tr>
238
+ <tr>
239
+ <td class="feature-name">Layered Architecture</td>
240
+ <td><span class="status-neutral">DIY</span></td>
241
+ <td><span class="status-good">Enforced</span></td>
242
+ <td class="highlight-col"><span class="status-good">Guided</span></td>
243
+ </tr>
244
+ <tr>
245
+ <td class="feature-name">Repository Pattern</td>
246
+ <td><span class="status-neutral">DIY</span></td>
247
+ <td><span class="status-good">Built-in</span></td>
248
+ <td class="highlight-col"><span class="status-good">Built-in</span></td>
249
+ </tr>
250
+ <tr>
251
+ <td class="feature-name">Validation</td>
252
+ <td><span class="status-neutral">3rd party</span></td>
253
+ <td><span class="status-good">Built-in (class-validator)</span></td>
254
+ <td class="highlight-col"><span class="status-good">Zod</span></td>
255
+ </tr>
256
+ <tr>
257
+ <td class="feature-name">OpenAPI/Swagger</td>
258
+ <td><span class="status-neutral">3rd party</span></td>
259
+ <td><span class="status-good">Built-in</span></td>
260
+ <td class="highlight-col"><span class="status-good">Built-in</span></td>
261
+ </tr>
262
+ <tr>
263
+ <td class="feature-name">Authentication</td>
264
+ <td><span class="status-neutral">DIY</span></td>
265
+ <td><span class="status-good">Passport + Guards</span></td>
266
+ <td class="highlight-col"><span class="status-good">Component</span></td>
267
+ </tr>
268
+ </tbody>
269
+ </table>
270
+ </div>
271
+
272
+ ### Ecosystem & Maturity
273
+
274
+ <div class="comparison-table-wrapper">
275
+ <table class="comparison-table">
276
+ <thead>
277
+ <tr>
278
+ <th>Aspect</th>
279
+ <th><span class="header-icon">⚡</span> Hono</th>
280
+ <th><span class="header-icon">🏢</span> NestJS</th>
281
+ <th class="highlight-col"><span class="header-icon">🔥</span> Ignis</th>
282
+ </tr>
283
+ </thead>
284
+ <tbody>
285
+ <tr>
286
+ <td class="feature-name">GitHub Stars</td>
287
+ <td><span class="status-good">~20k</span></td>
288
+ <td><span class="status-good">~70k</span></td>
289
+ <td class="highlight-col"><span class="status-neutral">New</span></td>
290
+ </tr>
291
+ <tr>
292
+ <td class="feature-name">Weekly Downloads</td>
293
+ <td><span class="status-good">~500k</span></td>
294
+ <td><span class="status-good">~3M</span></td>
295
+ <td class="highlight-col"><span class="status-neutral">Starting</span></td>
296
+ </tr>
297
+ <tr>
298
+ <td class="feature-name">First Release</td>
299
+ <td><span class="status-good">2021</span></td>
300
+ <td><span class="status-good">2017</span></td>
301
+ <td class="highlight-col"><span class="status-neutral">2025</span></td>
302
+ </tr>
303
+ <tr>
304
+ <td class="feature-name">Production Ready</td>
305
+ <td><span class="status-good">Yes</span></td>
306
+ <td><span class="status-good">Yes</span></td>
307
+ <td class="highlight-col"><span class="status-neutral">Early stage</span></td>
308
+ </tr>
309
+ <tr>
310
+ <td class="feature-name">Corporate Backing</td>
311
+ <td><span class="status-good">Cloudflare</span></td>
312
+ <td><span class="status-good">Trilon</span></td>
313
+ <td class="highlight-col"><span class="status-neutral">Independent</span></td>
314
+ </tr>
315
+ <tr>
316
+ <td class="feature-name">Official Plugins</td>
317
+ <td><span class="status-good">20+</span></td>
318
+ <td><span class="status-good">50+</span></td>
319
+ <td class="highlight-col"><span class="status-neutral">Core only</span></td>
320
+ </tr>
321
+ <tr>
322
+ <td class="feature-name">Community Packages</td>
323
+ <td><span class="status-good">Growing</span></td>
324
+ <td><span class="status-good">Extensive</span></td>
325
+ <td class="highlight-col"><span class="status-neutral">Few</span></td>
326
+ </tr>
327
+ <tr>
328
+ <td class="feature-name">LTS / Support</td>
329
+ <td><span class="status-good">Active</span></td>
330
+ <td><span class="status-good">Enterprise LTS</span></td>
331
+ <td class="highlight-col"><span class="status-neutral">Planning</span></td>
332
+ </tr>
333
+ </tbody>
334
+ </table>
335
+ </div>
336
+
337
+ ## The Ignis Synthesis
338
+
339
+ <div class="synthesis">
340
+
341
+ <div class="synthesis-box source">
342
+ <div class="synthesis-icon">🏗️</div>
343
+ <h4>LoopBack 4</h4>
344
+ <ul>
345
+ <li>DI Container</li>
346
+ <li>Layered Architecture</li>
347
+ <li>Components</li>
348
+ <li>Decorators</li>
349
+ </ul>
350
+ </div>
351
+
352
+ <div class="synthesis-operator">+</div>
353
+
354
+ <div class="synthesis-box source">
355
+ <div class="synthesis-icon">⚡</div>
356
+ <h4>Hono</h4>
357
+ <ul>
358
+ <li>Blazing Speed</li>
359
+ <li>Minimal Core</li>
360
+ <li>Modern API</li>
361
+ <li>Multi-Runtime</li>
362
+ </ul>
363
+ </div>
364
+
365
+ <div class="synthesis-operator">=</div>
366
+
367
+ <div class="synthesis-box result">
368
+ <div class="synthesis-icon">🔥</div>
369
+ <h4>Ignis</h4>
370
+ <ul>
371
+ <li>DI + Speed</li>
372
+ <li>Structure + Simplicity</li>
373
+ <li>Patterns + Performance</li>
374
+ <li>Enterprise + Edge</li>
375
+ </ul>
376
+ </div>
377
+
378
+ </div>
379
+
380
+ ## What Each Approach Excels At
381
+
382
+ <div class="excel-section">
383
+
384
+ <div class="excel-card minimal">
385
+ <h3>⚡ Minimal Frameworks</h3>
386
+ <p class="excel-subtitle">Hono, Express, Fastify</p>
387
+ <div class="excel-pros">
388
+ <h4>Strengths</h4>
389
+ <ul>
390
+ <li>Maximum raw performance</li>
391
+ <li>Complete architectural freedom</li>
392
+ <li>Fastest time to first endpoint</li>
393
+ <li>Smallest bundle/memory footprint</li>
394
+ <li>Perfect for edge/serverless</li>
395
+ <li>Huge ecosystem (Express has 50k+ packages)</li>
396
+ </ul>
397
+ </div>
398
+ <div class="excel-cons">
399
+ <h4>Trade-offs</h4>
400
+ <ul>
401
+ <li>Architecture decisions on your shoulders</li>
402
+ <li>Patterns must be implemented manually</li>
403
+ <li>Code structure varies per developer</li>
404
+ <li>Harder to maintain as project grows</li>
405
+ </ul>
406
+ </div>
407
+ </div>
408
+
409
+ <div class="excel-card ignis">
410
+ <h3>🔥 Ignis</h3>
411
+ <p class="excel-subtitle">The balanced choice</p>
412
+ <div class="excel-pros">
413
+ <h4>Strengths</h4>
414
+ <ul>
415
+ <li>Enterprise patterns with Hono's performance</li>
416
+ <li>Lighter weight than NestJS/LoopBack</li>
417
+ <li>Modern TypeScript-first with Zod validation</li>
418
+ <li>ESM native, Bun optimized</li>
419
+ <li>Single file executable build with Bun</li>
420
+ <li>Built on proven Hono foundation</li>
421
+ <li>Scales from solo dev to large teams</li>
422
+ </ul>
423
+ </div>
424
+ <div class="excel-cons">
425
+ <h4>Considerations</h4>
426
+ <ul>
427
+ <li>Growing community and ecosystem</li>
428
+ <li>Documentation expanding continuously</li>
429
+ <li>Early adopter opportunity</li>
430
+ </ul>
431
+ </div>
432
+ </div>
433
+
434
+ <div class="excel-card enterprise">
435
+ <h3>🏢 Enterprise Frameworks</h3>
436
+ <p class="excel-subtitle">NestJS, LoopBack, AdonisJS</p>
437
+ <div class="excel-pros">
438
+ <h4>Strengths</h4>
439
+ <ul>
440
+ <li>Battle-tested at massive scale</li>
441
+ <li>Comprehensive, mature documentation</li>
442
+ <li>Huge community & ecosystem (NestJS ~3M weekly downloads)</li>
443
+ <li>Excellent for large teams & long-term projects</li>
444
+ <li>Strong conventions prevent architectural chaos</li>
445
+ <li>Easy to hire developers who know the framework</li>
446
+ <li>Extensive third-party integrations</li>
447
+ </ul>
448
+ </div>
449
+ <div class="excel-cons">
450
+ <h4>Trade-offs</h4>
451
+ <ul>
452
+ <li>Higher resource consumption</li>
453
+ <li>Steeper learning curve</li>
454
+ <li>More boilerplate code</li>
455
+ <li>Slower startup times</li>
456
+ </ul>
457
+ </div>
458
+ </div>
459
+
460
+ </div>
461
+
462
+ ## When Should You Use Ignis?
463
+
464
+ <div class="decision-matrix">
465
+
466
+ <div class="decision-row yes">
467
+ <div class="decision-scenario">Medium API (10-100 endpoints)</div>
468
+ <div class="decision-verdict">✓ Yes</div>
469
+ <div class="decision-reason">Structure prevents spaghetti code</div>
470
+ </div>
471
+
472
+ <div class="decision-row yes">
473
+ <div class="decision-scenario">Any team size (solo to large)</div>
474
+ <div class="decision-verdict">✓ Yes</div>
475
+ <div class="decision-reason">Scales from solo dev to enterprise teams</div>
476
+ </div>
477
+
478
+ <div class="decision-row yes">
479
+ <div class="decision-scenario">Want DI without NestJS/LoopBack weight</div>
480
+ <div class="decision-verdict">✓ Yes</div>
481
+ <div class="decision-reason">Lighter alternative, ESM native, enterprise patterns</div>
482
+ </div>
483
+
484
+ <div class="decision-row yes">
485
+ <div class="decision-scenario">Coming from NestJS/LoopBack</div>
486
+ <div class="decision-verdict">✓ Yes</div>
487
+ <div class="decision-reason">Familiar patterns, better performance</div>
488
+ </div>
489
+
490
+ <div class="decision-row yes">
491
+ <div class="decision-scenario">Need database + auth + OpenAPI</div>
492
+ <div class="decision-verdict">✓ Yes</div>
493
+ <div class="decision-reason">All built-in, ready to use</div>
494
+ </div>
495
+
496
+ <div class="decision-row yes">
497
+ <div class="decision-scenario">Performance is important</div>
498
+ <div class="decision-verdict">✓ Yes</div>
499
+ <div class="decision-reason">Hono's speed with structure</div>
500
+ </div>
501
+
502
+ <div class="decision-row yes">
503
+ <div class="decision-scenario">Bun-first development</div>
504
+ <div class="decision-verdict">✓ Yes</div>
505
+ <div class="decision-reason">Native Bun support, single file executable build</div>
506
+ </div>
507
+
508
+ <div class="decision-row yes">
509
+ <div class="decision-scenario">Growing from Hono project</div>
510
+ <div class="decision-verdict">✓ Yes</div>
511
+ <div class="decision-reason">Easy migration, same foundation</div>
512
+ </div>
513
+
514
+ <div class="decision-row maybe">
515
+ <div class="decision-scenario">3-5 endpoints, solo dev</div>
516
+ <div class="decision-verdict">? Maybe</div>
517
+ <div class="decision-reason">Start with Hono, migrate later if needed</div>
518
+ </div>
519
+
520
+ <div class="decision-row no">
521
+ <div class="decision-scenario">Quick prototype / MVP</div>
522
+ <div class="decision-verdict">✗ No</div>
523
+ <div class="decision-reason">Use plain Hono for speed</div>
524
+ </div>
525
+
526
+ <div class="decision-row no">
527
+ <div class="decision-scenario">Simple proxy / webhook</div>
528
+ <div class="decision-verdict">✗ No</div>
529
+ <div class="decision-reason">Too much structure for simple tasks</div>
530
+ </div>
531
+
532
+ </div>
533
+
534
+ ## Perfect For
535
+
536
+ <div class="perfect-grid">
537
+
538
+ <div class="perfect-card">
539
+ <span class="perfect-icon">🛒</span>
540
+ <h4>Production APIs</h4>
541
+ <p>10-100+ endpoints with enterprise patterns. Controllers, services, repositories — all built-in and ready.</p>
542
+ </div>
543
+
544
+ <div class="perfect-card">
545
+ <span class="perfect-icon">👥</span>
546
+ <h4>Teams of Any Size</h4>
547
+ <p>Solo developers to large teams. Consistent patterns, DI for testing, scales with your needs.</p>
548
+ </div>
549
+
550
+ <div class="perfect-card">
551
+ <span class="perfect-icon">🚀</span>
552
+ <h4>Performance-Critical Apps</h4>
553
+ <p>Hono's speed with enterprise structure. ~140k req/s with full DI, validation, and OpenAPI.</p>
554
+ </div>
555
+
556
+ <div class="perfect-card">
557
+ <span class="perfect-icon">⚡</span>
558
+ <h4>Modern Bun Projects</h4>
559
+ <p>ESM native, Bun optimized. Build to single executable file for easy deployment.</p>
560
+ </div>
561
+
562
+ </div>
563
+
564
+ ## Choose the Right Tool
565
+
566
+ <div class="choose-section">
567
+
568
+ <div class="choose-card">
569
+ <h3>Use Hono/Fastify/Express When:</h3>
570
+ <ul>
571
+ <li><strong>Simple webhook handler</strong> — No structure overhead needed</li>
572
+ <li><strong>Edge/serverless functions</strong> — Minimal cold start, tiny bundle</li>
573
+ <li><strong>Rapid prototyping</strong> — Get something running in minutes</li>
574
+ <li><strong>1-5 endpoint microservices</strong> — Structure adds complexity</li>
575
+ <li><strong>Maximum control needed</strong> — No conventions to follow</li>
576
+ <li><strong>Learning web development</strong> — Simpler mental model</li>
577
+ </ul>
578
+ </div>
579
+
580
+ <div class="choose-card">
581
+ <h3>Use NestJS/LoopBack When:</h3>
582
+ <ul>
583
+ <li><strong>Large team (10+ developers)</strong> — Strong conventions prevent chaos</li>
584
+ <li><strong>Enterprise with strict standards</strong> — Mature, battle-tested, auditable</li>
585
+ <li><strong>Extensive ecosystem needed</strong> — Many official and community modules</li>
586
+ <li><strong>Complex microservices</strong> — Built-in support for messaging, CQRS</li>
587
+ <li><strong>Hiring is a priority</strong> — Large talent pool familiar with it</li>
588
+ <li><strong>Long-term support critical</strong> — Corporate backing, LTS versions</li>
589
+ </ul>
590
+ </div>
591
+
592
+ <div class="choose-card highlight">
593
+ <h3>Use Ignis When:</h3>
594
+ <ul>
595
+ <li><strong>Any size API (10-100+ endpoints)</strong> — Structure without heavy overhead</li>
596
+ <li><strong>Any team size</strong> — Scales from solo dev to enterprise teams</li>
597
+ <li><strong>Performance matters</strong> — Hono's speed with enterprise patterns</li>
598
+ <li><strong>Modern stack preferred</strong> — ESM native, Bun optimized, TypeScript-first</li>
599
+ <li><strong>Coming from NestJS/LoopBack</strong> — Familiar patterns, better performance</li>
600
+ <li><strong>Need built-in features</strong> — DI, validation, OpenAPI, auth ready to use</li>
601
+ </ul>
602
+ </div>
603
+
604
+ </div>
605
+
606
+ ## Why Choose Ignis
607
+
608
+ <div class="tradeoffs">
609
+
610
+ <div class="tradeoff gain">
611
+ <h3>What You Get</h3>
612
+ <ul>
613
+ <li><span class="highlight-text">~5x faster</span> than NestJS/LoopBack</li>
614
+ <li><span class="highlight-text">Built-in DI</span>, validation, OpenAPI, auth</li>
615
+ <li><span class="highlight-text">Structured codebase</span> from day one</li>
616
+ <li><span class="highlight-text">Easier testing</span> with dependency injection</li>
617
+ <li><span class="highlight-text">Single file build</span> — compile to one executable with Bun</li>
618
+ <li><span class="highlight-text">Scales</span> from solo dev to enterprise teams</li>
619
+ </ul>
620
+ </div>
621
+
622
+ <div class="tradeoff cost">
623
+ <h3>What's Growing</h3>
624
+ <ul>
625
+ <li><span class="highlight-text">Community</span> — expanding every day</li>
626
+ <li><span class="highlight-text">Documentation</span> — continuously improving</li>
627
+ <li><span class="highlight-text">Ecosystem</span> — core features ready, plugins coming</li>
628
+ <li><span class="highlight-text">LTS</span> — planning for long-term support</li>
629
+ </ul>
630
+ </div>
631
+
632
+ </div>
633
+
634
+ <div class="honest-box">
635
+ <h4>Summary</h4>
636
+ <div class="honest-grid">
637
+ <div class="honest-item"><strong>Performance:</strong> Near Hono speed with enterprise features</div>
638
+ <div class="honest-item"><strong>Architecture:</strong> Clean DI, layered structure, patterns</div>
639
+ <div class="honest-item"><strong>Features:</strong> Validation, OpenAPI, auth built-in</div>
640
+ <div class="honest-item"><strong>Modern:</strong> ESM native, single file build, TypeScript-first</div>
641
+ <div class="honest-item"><strong>Scalable:</strong> Solo dev to enterprise teams</div>
642
+ <div class="honest-item"><strong>Growing:</strong> Active development, expanding ecosystem</div>
643
+ </div>
644
+ </div>
645
+
646
+ <div class="cta-card">
647
+ <span class="cta-icon">🔥</span>
648
+ <p><strong>IGNIS</strong> is ideal for developers who want enterprise patterns with modern performance. Start building today with structure that scales.</p>
649
+ </div>
650
+
651
+ ## Next Steps
652
+
653
+ <div class="next-steps-grid">
654
+
655
+ <a href="./setup" class="next-card">
656
+ <span class="next-num">1</span>
657
+ <div class="next-content">
658
+ <h4>Check Prerequisites</h4>
659
+ <p>Install required tools</p>
660
+ </div>
661
+ <span class="next-arrow">→</span>
662
+ </a>
663
+
664
+ <a href="../tutorials/complete-installation" class="next-card">
665
+ <span class="next-num">2</span>
666
+ <div class="next-content">
667
+ <h4>Complete Installation</h4>
668
+ <p>Build your first endpoint</p>
669
+ </div>
670
+ <span class="next-arrow">→</span>
671
+ </a>
672
+
673
+ <a href="../tutorials/building-a-crud-api" class="next-card">
674
+ <span class="next-num">3</span>
675
+ <div class="next-content">
676
+ <h4>CRUD Tutorial</h4>
677
+ <p>Build a complete API</p>
678
+ </div>
679
+ <span class="next-arrow">→</span>
680
+ </a>
681
+
682
+ </div>