@@ -12,15 +12,15 @@ head:
1212
1313Everything ` KosmoJS ` provides, at a glance.
1414
15- ## 🗂️ Multiple Source Folders
15+ ## Multiple Source Folders
1616
1717Organize distinct concerns - public site, customer app, admin dashboard -
1818as independent source folders within a single ` Vite ` project.
1919Each gets its own set of frameworks, base URL, development workflow and build pipeline.
2020
2121[ Read more ➜] ( /start#📁-create-your-first-source-folder )
2222
23- ## 🛣️ Directory-Based Routing
23+ ## Directory-Based Routing
2424
2525Your folder structure defines your routes - for both API and client pages.
2626
@@ -41,7 +41,7 @@ files/[name].[ext]/index.ts ➜ files/document.pdf, /files/logo.png
4141
4242[ Read more ➜] ( /routing/intro )
4343
44- ## ⚡ Power Syntax for Params
44+ ## Power Syntax for Params
4545
4646When standard named parameters aren't enough, use raw [ path-to-regexp v8] ( https://github.com/pillarjs/path-to-regexp )
4747patterns directly in your folder names:
@@ -58,7 +58,7 @@ without sacrificing the directory-based routing model.
5858
5959[ Read more ➜] ( /routing/params#power-syntax )
6060
61- ## 🛡️ End-to-End Type Safety
61+ ## End-to-End Type Safety
6262
6363Write ` TypeScript ` types once - ` KosmoJS ` generates runtime validators automatically.
6464The same definition drives compile-time checking, runtime validation, type-safe fetch clients, and OpenAPI specs.
@@ -81,7 +81,7 @@ export default defineRoute(({ POST }) => [
8181
8282[ Read more ➜] ( /validation/intro )
8383
84- ## 🔗 Generated Fetch Clients + OpenAPI
84+ ## Generated Fetch Clients + OpenAPI
8585
8686For every API route, ` KosmoJS ` generates a fully-typed fetch client
8787and an OpenAPI 3.1 spec - both derived from the same type definitions.
@@ -95,7 +95,7 @@ const user = await fetchClients["users/[id]"].GET([123]);
9595
9696[ Fetch Clients ➜] ( /fetch/intro ) · [ OpenAPI ➜] ( /openapi )
9797
98- ## 🎛️ Composable Middleware (Slots)
98+ ## Composable Middleware (Slots)
9999
100100Global middleware defined in ` api/use.ts ` can be overridden per-route or per-subtree
101101using named slots - without removing or bypassing parent middleware entirely.
@@ -114,7 +114,7 @@ Custom slot names are supported by extending the `UseSlots` interface.
114114
115115[ Read more ➜] ( /backend/middleware )
116116
117- ## 🌊 Cascading Middleware
117+ ## Cascading Middleware
118118
119119Place a ` use.ts ` file in any folder and its middleware automatically wraps
120120all routes in that folder and its subfolders - no imports or wiring needed.
@@ -129,7 +129,7 @@ Combine with slots to override globals for entire route subtrees.
129129
130130[ Read more ➜] ( /backend/cascading-middleware )
131131
132- ## 🪆 Nested Layouts
132+ ## Nested Layouts
133133
134134Frontend pages support nested layout components that wrap child routes -
135135compose shared UI (nav, sidebars, auth shells) at any level of the route hierarchy.
@@ -147,7 +147,7 @@ pages/
147147
148148[ Read more ➜] ( /frontend/routing )
149149
150- ## 🎨 Multiple Frameworks
150+ ## Multiple Frameworks
151151
152152** Backend:** ` Koa ` or ` Hono ` - same routing architecture, same type safety.
153153** Frontend:** ` React ` , ` Vue ` , ` SolidJS ` , ` MDX ` - same routing/layout/SSR conventions.
@@ -159,7 +159,7 @@ Switch frameworks per folder without learning a new set of conventions.
159159
160160[ Read more ➜] ( /frontend/intro )
161161
162- ## 🔧 Built on Proven Tools
162+ ## Built on Proven Tools
163163
164164No proprietary runtime, no custom bundler, no framework lock-in.
165165Every layer is a tool you can use, debug, and replace independently.
0 commit comments