create-frootjs 1.0.9 → 1.0.11
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.
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/templates/fullstack.d.ts +2 -2
- package/dist/templates/fullstack.d.ts.map +1 -1
- package/dist/templates/fullstack.js +193 -132
- package/dist/templates/fullstack.js.map +1 -1
- package/dist/templates/minimal.js +54 -54
- package/dist/templates/modular.js +261 -261
- package/dist/templates/mvc.js +196 -196
- package/dist/templates/openapi.js +168 -168
- package/dist/templates/streaming.js +176 -176
- package/dist/templates/websocket.js +163 -163
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -8,7 +8,7 @@ import * as fs from 'node:fs';
|
|
|
8
8
|
import { printBanner, printStep, printError, printNextSteps, promptText, promptSelect, promptConfirm, c, } from './ui.js';
|
|
9
9
|
import { TEMPLATES, TEMPLATE_LIST, getTemplate } from './templates/index.js';
|
|
10
10
|
import { scaffoldProject } from './generator.js';
|
|
11
|
-
const VERSION = '1.0.
|
|
11
|
+
const VERSION = '1.0.11';
|
|
12
12
|
function parseCliArgs(argv) {
|
|
13
13
|
const args = {};
|
|
14
14
|
const raw = argv.slice(2);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Fullstack Next.js Alternative Template
|
|
3
|
-
* Powered by
|
|
4
|
-
* Features
|
|
3
|
+
* Powered by froot-fullstack, Froot Core, Preact, and Tailwind CSS v4.
|
|
4
|
+
* Features Next.js App Router-style file-based routing, nested layouts, Preact SSR, SSG, and Markdown content.
|
|
5
5
|
*/
|
|
6
6
|
import { TemplateDefinition } from './types.js';
|
|
7
7
|
export declare const fullstackTemplate: TemplateDefinition;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fullstack.d.ts","sourceRoot":"","sources":["../../src/templates/fullstack.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,kBAAkB,EAAqC,MAAM,YAAY,CAAC;AAEnF,eAAO,MAAM,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"fullstack.d.ts","sourceRoot":"","sources":["../../src/templates/fullstack.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,kBAAkB,EAAqC,MAAM,YAAY,CAAC;AAEnF,eAAO,MAAM,iBAAiB,EAAE,kBA0b/B,CAAC"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Fullstack Next.js Alternative Template
|
|
3
|
-
* Powered by
|
|
4
|
-
* Features
|
|
3
|
+
* Powered by froot-fullstack, Froot Core, Preact, and Tailwind CSS v4.
|
|
4
|
+
* Features Next.js App Router-style file-based routing, nested layouts, Preact SSR, SSG, and Markdown content.
|
|
5
5
|
*/
|
|
6
6
|
import { COMMON_GITIGNORE } from './types.js';
|
|
7
7
|
export const fullstackTemplate = {
|
|
8
8
|
id: 'fullstack',
|
|
9
9
|
name: 'Fullstack (Next.js Alternative)',
|
|
10
|
-
description: 'Next.js alternative with Preact SSR, nested layouts
|
|
10
|
+
description: 'Next.js alternative with Preact SSR, Tailwind v4, file-based routing, nested layouts & SSG',
|
|
11
11
|
generate: (projectName) => {
|
|
12
12
|
return {
|
|
13
13
|
'package.json': JSON.stringify({
|
|
@@ -15,18 +15,22 @@ export const fullstackTemplate = {
|
|
|
15
15
|
version: '1.0.0',
|
|
16
16
|
type: 'module',
|
|
17
17
|
scripts: {
|
|
18
|
-
dev: '
|
|
19
|
-
build: '
|
|
20
|
-
'build:
|
|
18
|
+
'dev:css': 'tailwindcss -i src/styles.css -o dist/styles.css --watch',
|
|
19
|
+
'build:css': 'tailwindcss -i src/styles.css -o dist/styles.css --minify',
|
|
20
|
+
dev: 'pnpm run build:css && tsx watch src/server.tsx',
|
|
21
|
+
build: 'pnpm run build:css && tsc',
|
|
22
|
+
'build:static': 'pnpm run build:css && tsx src/build.ts',
|
|
21
23
|
start: 'node dist/server.js',
|
|
22
24
|
},
|
|
23
25
|
dependencies: {
|
|
24
|
-
'froot-fullstack': '^1.
|
|
26
|
+
'froot-fullstack': '^1.1.0',
|
|
25
27
|
frootjs: '^1.0.5',
|
|
26
28
|
preact: '^11.1.0',
|
|
27
29
|
'preact-render-to-string': '^6.8.2',
|
|
28
30
|
},
|
|
29
31
|
devDependencies: {
|
|
32
|
+
'@tailwindcss/cli': '^4.0.0',
|
|
33
|
+
tailwindcss: '^4.0.0',
|
|
30
34
|
'@types/node': '^22.10.0',
|
|
31
35
|
tsx: '^4.19.0',
|
|
32
36
|
typescript: '^5.8.0',
|
|
@@ -58,16 +62,18 @@ export const fullstackTemplate = {
|
|
|
58
62
|
'.gitignore': COMMON_GITIGNORE,
|
|
59
63
|
'README.md': `# ${projectName}
|
|
60
64
|
|
|
61
|
-
High-performance **Next.js alternative** powered by **Froot Framework** and **
|
|
65
|
+
High-performance **Next.js alternative** powered by **Froot Framework**, **Preact**, and **Tailwind CSS v4**.
|
|
62
66
|
|
|
63
67
|
## Features
|
|
64
68
|
|
|
65
69
|
- ⚡ **Ultra-Fast Throughput**: 120,000+ req/sec powered by Froot's monomorphic V8 engine.
|
|
66
70
|
- ⚛️ **Native Preact SSR**: Lightweight 3kB component runtime without React baggage.
|
|
67
|
-
-
|
|
68
|
-
|
|
69
|
-
-
|
|
70
|
-
-
|
|
71
|
+
- 🎨 **Tailwind CSS v4**: Built-in real CSS-first configuration via \`@theme\` with zero CDN dependencies.
|
|
72
|
+
- 📂 **Next.js App Router Architecture**:
|
|
73
|
+
- File-based routing automatically discovered from \`src/app\`
|
|
74
|
+
- Hierarchical nested layout system (\`app/layout.tsx\` -> \`app/docs/layout.tsx\`)
|
|
75
|
+
- Dynamic route dispatch with bracket parameters (\`app/docs/[slug]/page.tsx\`)
|
|
76
|
+
- Distinct layouts (e.g. landing page with navbar vs documentation with left sidebar and no top navbar)
|
|
71
77
|
- 🚀 **Static Site Generation (SSG)**: Prerender static pages and dynamic routes with \`generateStaticParams()\`.
|
|
72
78
|
- 📝 **Built-in Markdown Engine**: Next.js MDX/Contentlayer alternative with zero dependencies.
|
|
73
79
|
|
|
@@ -77,7 +83,7 @@ High-performance **Next.js alternative** powered by **Froot Framework** and **Pr
|
|
|
77
83
|
# 1. Install dependencies
|
|
78
84
|
pnpm install
|
|
79
85
|
|
|
80
|
-
# 2. Run in development mode
|
|
86
|
+
# 2. Run in development mode (builds Tailwind v4 & starts server)
|
|
81
87
|
pnpm run dev
|
|
82
88
|
|
|
83
89
|
# 3. Prerender static site (SSG)
|
|
@@ -93,13 +99,15 @@ category: Getting Started
|
|
|
93
99
|
summary: Introduction to the Froot Fullstack Next.js Alternative architecture.
|
|
94
100
|
---
|
|
95
101
|
|
|
96
|
-
Welcome to **Froot Fullstack**, the high-performance Next.js alternative powered by Preact and Froot.
|
|
102
|
+
Welcome to **Froot Fullstack**, the high-performance Next.js alternative powered by Preact, Tailwind CSS v4, and Froot.
|
|
97
103
|
|
|
98
104
|
## Design Principles
|
|
99
105
|
|
|
100
106
|
- **Monomorphic V8 Execution:** Minimal memory overhead and maximum throughput.
|
|
107
|
+
- **File-Based Routing:** Next.js App Router conventions with \`src/app\`, nested layouts, and bracket parameters.
|
|
101
108
|
- **Preact Server-Side Rendering:** Clean JSX syntax with sub-millisecond render times.
|
|
102
|
-
- **
|
|
109
|
+
- **Tailwind CSS v4:** Lightning-fast CSS compilation via \`@tailwindcss/cli\` and native \`@theme\` variables.
|
|
110
|
+
- **Layout Isolation:** Dedicated layouts for different application sections (e.g. docs vs marketing).
|
|
103
111
|
`,
|
|
104
112
|
'content/docs/quickstart.md': `---
|
|
105
113
|
title: Quickstart
|
|
@@ -111,13 +119,24 @@ Create routes, compose Preact components, and serve HTML with extreme performanc
|
|
|
111
119
|
|
|
112
120
|
## Adding Routes
|
|
113
121
|
|
|
114
|
-
|
|
122
|
+
Simply add a new folder or file in \`src/app/\`:
|
|
115
123
|
|
|
116
124
|
\`\`\`tsx
|
|
117
|
-
|
|
125
|
+
// src/app/about/page.tsx
|
|
126
|
+
export default function AboutPage() {
|
|
127
|
+
return <h1 class="text-3xl font-bold">About Us</h1>;
|
|
128
|
+
}
|
|
118
129
|
\`\`\`
|
|
119
130
|
`,
|
|
120
|
-
'src/
|
|
131
|
+
'src/styles.css': `@import "tailwindcss";
|
|
132
|
+
|
|
133
|
+
@theme {
|
|
134
|
+
--color-froot-400: #34d399;
|
|
135
|
+
--color-froot-500: #10b981;
|
|
136
|
+
--color-froot-600: #059669;
|
|
137
|
+
}
|
|
138
|
+
`,
|
|
139
|
+
'src/app/layout.tsx': `import type { ComponentChildren } from 'preact';
|
|
121
140
|
|
|
122
141
|
export interface RootLayoutProps {
|
|
123
142
|
title?: string;
|
|
@@ -125,7 +144,7 @@ export interface RootLayoutProps {
|
|
|
125
144
|
children: ComponentChildren;
|
|
126
145
|
}
|
|
127
146
|
|
|
128
|
-
export function RootLayout({
|
|
147
|
+
export default function RootLayout({
|
|
129
148
|
title = 'Froot Fullstack App',
|
|
130
149
|
description = 'High-performance Next.js alternative powered by Froot and Preact',
|
|
131
150
|
children,
|
|
@@ -137,21 +156,7 @@ export function RootLayout({
|
|
|
137
156
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
138
157
|
<title>{title}</title>
|
|
139
158
|
<meta name="description" content={description} />
|
|
140
|
-
<
|
|
141
|
-
<script dangerouslySetInnerHTML={{
|
|
142
|
-
__html: \`
|
|
143
|
-
tailwind.config = {
|
|
144
|
-
darkMode: 'class',
|
|
145
|
-
theme: {
|
|
146
|
-
extend: {
|
|
147
|
-
colors: {
|
|
148
|
-
froot: { 400: '#34d399', 500: '#10b981', 600: '#059669' }
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
};
|
|
153
|
-
\`
|
|
154
|
-
}} />
|
|
159
|
+
<link rel="stylesheet" href="/styles.css" />
|
|
155
160
|
</head>
|
|
156
161
|
<body class="bg-slate-950 text-slate-100 font-sans min-h-screen antialiased">
|
|
157
162
|
{children}
|
|
@@ -160,14 +165,90 @@ export function RootLayout({
|
|
|
160
165
|
);
|
|
161
166
|
}
|
|
162
167
|
`,
|
|
163
|
-
'src/
|
|
168
|
+
'src/app/page.tsx': `export const metadata = {
|
|
169
|
+
title: 'Froot Fullstack — Next.js Alternative',
|
|
170
|
+
description: 'Extreme performance fullstack web engine with Preact SSR and file-based routing',
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
export default function HomePage() {
|
|
174
|
+
return (
|
|
175
|
+
<div>
|
|
176
|
+
{/* Top Navbar on Landing Page */}
|
|
177
|
+
<header class="border-b border-slate-800 bg-slate-900/60 backdrop-blur-md sticky top-0 z-50">
|
|
178
|
+
<div class="max-w-6xl mx-auto px-6 h-16 flex items-center justify-between">
|
|
179
|
+
<a href="/" class="flex items-center gap-2 font-bold text-white">
|
|
180
|
+
<span class="text-xl">🍏</span>
|
|
181
|
+
<span>Froot<span class="text-emerald-400">.ts</span></span>
|
|
182
|
+
</a>
|
|
183
|
+
<nav class="flex items-center gap-6 text-sm text-slate-300">
|
|
184
|
+
<a href="#features" class="hover:text-emerald-400 transition-colors">Features</a>
|
|
185
|
+
<a href="/docs" class="text-emerald-400 hover:text-emerald-300 font-semibold">Docs →</a>
|
|
186
|
+
</nav>
|
|
187
|
+
</div>
|
|
188
|
+
</header>
|
|
189
|
+
|
|
190
|
+
{/* Hero Section */}
|
|
191
|
+
<main class="max-w-5xl mx-auto px-6 py-20 text-center">
|
|
192
|
+
<div class="inline-block px-3 py-1 mb-6 text-xs font-semibold text-emerald-400 bg-emerald-500/10 border border-emerald-500/20 rounded-full">
|
|
193
|
+
Next.js Alternative • Preact SSR • Tailwind CSS v4 • File-Based Routing
|
|
194
|
+
</div>
|
|
195
|
+
|
|
196
|
+
<h1 class="text-5xl font-extrabold tracking-tight text-white mb-6">
|
|
197
|
+
High-Performance <span class="text-emerald-400">Fullstack Web Engine</span>
|
|
198
|
+
</h1>
|
|
199
|
+
|
|
200
|
+
<p class="text-lg text-slate-300 max-w-2xl mx-auto mb-10 leading-relaxed">
|
|
201
|
+
Engineered for extreme throughput, Next.js-style file-based routing, nested layouts, and zero-allocation V8 execution.
|
|
202
|
+
</p>
|
|
203
|
+
|
|
204
|
+
<div class="flex items-center justify-center gap-4">
|
|
205
|
+
<a
|
|
206
|
+
href="/docs"
|
|
207
|
+
class="px-6 py-3 rounded-xl font-semibold bg-emerald-500 text-slate-950 hover:bg-emerald-400 transition-colors shadow-lg shadow-emerald-500/20"
|
|
208
|
+
>
|
|
209
|
+
Explore Documentation
|
|
210
|
+
</a>
|
|
211
|
+
<a
|
|
212
|
+
href="https://github.com/orbitnorth/froot"
|
|
213
|
+
target="_blank"
|
|
214
|
+
rel="noopener noreferrer"
|
|
215
|
+
class="px-6 py-3 rounded-xl font-semibold bg-slate-800 text-slate-200 hover:bg-slate-700 transition-colors border border-slate-700"
|
|
216
|
+
>
|
|
217
|
+
GitHub Repository
|
|
218
|
+
</a>
|
|
219
|
+
</div>
|
|
220
|
+
|
|
221
|
+
{/* Feature Grid */}
|
|
222
|
+
<div id="features" class="grid grid-cols-1 md:grid-cols-3 gap-6 mt-20 text-left">
|
|
223
|
+
<div class="p-6 rounded-2xl bg-slate-900/60 border border-slate-800">
|
|
224
|
+
<div class="text-emerald-400 text-2xl mb-3">📂</div>
|
|
225
|
+
<h3 class="text-lg font-bold text-white mb-2">File-Based Routing</h3>
|
|
226
|
+
<p class="text-sm text-slate-400">Next.js App Router conventions with src/app, bracket params [slug], and nested layouts.</p>
|
|
227
|
+
</div>
|
|
228
|
+
<div class="p-6 rounded-2xl bg-slate-900/60 border border-slate-800">
|
|
229
|
+
<div class="text-emerald-400 text-2xl mb-3">🎨</div>
|
|
230
|
+
<h3 class="text-lg font-bold text-white mb-2">Tailwind CSS v4</h3>
|
|
231
|
+
<p class="text-sm text-slate-400">Built-in real CSS-first configuration via @theme without bloated runtime CDN scripts.</p>
|
|
232
|
+
</div>
|
|
233
|
+
<div class="p-6 rounded-2xl bg-slate-900/60 border border-slate-800">
|
|
234
|
+
<div class="text-emerald-400 text-2xl mb-3">⚡</div>
|
|
235
|
+
<h3 class="text-lg font-bold text-white mb-2">120,000+ Req/Sec</h3>
|
|
236
|
+
<p class="text-sm text-slate-400">Ultra-fast monomorphic HTTP core outperforming standard Node.js frameworks by 10x.</p>
|
|
237
|
+
</div>
|
|
238
|
+
</div>
|
|
239
|
+
</main>
|
|
240
|
+
</div>
|
|
241
|
+
);
|
|
242
|
+
}
|
|
243
|
+
`,
|
|
244
|
+
'src/app/docs/layout.tsx': `import type { ComponentChildren } from 'preact';
|
|
164
245
|
|
|
165
246
|
export interface DocsLayoutProps {
|
|
166
247
|
currentPath: string;
|
|
167
248
|
children: ComponentChildren;
|
|
168
249
|
}
|
|
169
250
|
|
|
170
|
-
export function DocsLayout({ currentPath, children }: DocsLayoutProps) {
|
|
251
|
+
export default function DocsLayout({ currentPath, children }: DocsLayoutProps) {
|
|
171
252
|
const links = [
|
|
172
253
|
{ href: '/docs', title: 'Overview' },
|
|
173
254
|
{ href: '/docs/quickstart', title: 'Quickstart' },
|
|
@@ -176,11 +257,11 @@ export function DocsLayout({ currentPath, children }: DocsLayoutProps) {
|
|
|
176
257
|
return (
|
|
177
258
|
<div class="flex min-h-screen">
|
|
178
259
|
{/* NO NAVBAR ON DOCS! Left sidebar handles all navigation */}
|
|
179
|
-
<aside class="w-72 bg-slate-900 border-r border-slate-800 p-6 flex flex-col">
|
|
260
|
+
<aside class="w-72 bg-slate-900 border-r border-slate-800 p-6 flex flex-col shrink-0">
|
|
180
261
|
<a href="/" class="text-base font-bold text-white mb-6 flex items-center gap-2">
|
|
181
262
|
<span>🍏</span>
|
|
182
263
|
<span>Froot<span class="text-emerald-400">.ts</span></span>
|
|
183
|
-
<span class="text-[10px] bg-emerald-500/10 text-emerald-400 px-1.5 py-0.5 rounded border border-emerald-500/20">DOCS</span>
|
|
264
|
+
<span class="text-[10px] bg-emerald-500/10 text-emerald-400 px-1.5 py-0.5 rounded border border-emerald-500/20 font-mono">DOCS</span>
|
|
184
265
|
</a>
|
|
185
266
|
|
|
186
267
|
<div class="text-xs font-semibold text-slate-400 uppercase tracking-wider mb-3">
|
|
@@ -207,7 +288,10 @@ export function DocsLayout({ currentPath, children }: DocsLayoutProps) {
|
|
|
207
288
|
</nav>
|
|
208
289
|
|
|
209
290
|
<div class="mt-auto pt-6 border-t border-slate-800 text-xs text-slate-400">
|
|
210
|
-
<a href="/" class="hover:text-emerald-400 transition-colors
|
|
291
|
+
<a href="/" class="hover:text-emerald-400 transition-colors flex items-center gap-1.5">
|
|
292
|
+
<span>←</span>
|
|
293
|
+
<span>Back to Home</span>
|
|
294
|
+
</a>
|
|
211
295
|
</div>
|
|
212
296
|
</aside>
|
|
213
297
|
|
|
@@ -219,66 +303,75 @@ export function DocsLayout({ currentPath, children }: DocsLayoutProps) {
|
|
|
219
303
|
);
|
|
220
304
|
}
|
|
221
305
|
`,
|
|
222
|
-
'src/
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
{/* Top Navbar on Landing Page */}
|
|
226
|
-
<header class="border-b border-slate-800 bg-slate-900/60 backdrop-blur-md sticky top-0 z-50">
|
|
227
|
-
<div class="max-w-6xl mx-auto px-6 h-16 flex items-center justify-between">
|
|
228
|
-
<a href="/" class="flex items-center gap-2 font-bold text-white">
|
|
229
|
-
<span class="text-xl">🍏</span>
|
|
230
|
-
<span>Froot<span class="text-emerald-400">.ts</span></span>
|
|
231
|
-
</a>
|
|
232
|
-
<nav class="flex items-center gap-6 text-sm text-slate-300">
|
|
233
|
-
<a href="#features" class="hover:text-emerald-400 transition-colors">Features</a>
|
|
234
|
-
<a href="/docs" class="text-emerald-400 hover:text-emerald-300 font-semibold">Docs →</a>
|
|
235
|
-
</nav>
|
|
236
|
-
</div>
|
|
237
|
-
</header>
|
|
306
|
+
'src/app/docs/page.tsx': `import * as path from 'node:path';
|
|
307
|
+
import { fileURLToPath } from 'node:url';
|
|
308
|
+
import { renderMarkdownFile } from 'froot-fullstack';
|
|
238
309
|
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
<div class="inline-block px-3 py-1 mb-6 text-xs font-semibold text-emerald-400 bg-emerald-500/10 border border-emerald-500/20 rounded-full">
|
|
242
|
-
Next.js Alternative • Preact SSR • Monomorphic V8
|
|
243
|
-
</div>
|
|
310
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
311
|
+
const __dirname = path.dirname(__filename);
|
|
244
312
|
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
313
|
+
export const metadata = {
|
|
314
|
+
title: 'Documentation Overview — Froot Fullstack',
|
|
315
|
+
description: 'Overview of the high-performance Froot Fullstack framework.',
|
|
316
|
+
};
|
|
248
317
|
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
318
|
+
export default async function DocsOverviewPage() {
|
|
319
|
+
const docPath = path.resolve(process.cwd(), 'content/docs/overview.md');
|
|
320
|
+
const { frontmatter, html } = await renderMarkdownFile(docPath);
|
|
252
321
|
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
322
|
+
return (
|
|
323
|
+
<div>
|
|
324
|
+
<div class="text-xs font-mono text-emerald-400 mb-2 uppercase tracking-wider">
|
|
325
|
+
{frontmatter['category'] || 'Getting Started'}
|
|
326
|
+
</div>
|
|
327
|
+
<h1 class="text-3xl font-extrabold text-white mb-6">
|
|
328
|
+
{frontmatter['title'] || 'Documentation Overview'}
|
|
329
|
+
</h1>
|
|
330
|
+
<article
|
|
331
|
+
class="prose prose-invert max-w-none text-slate-300 leading-relaxed space-y-4"
|
|
332
|
+
dangerouslySetInnerHTML={{ __html: html }}
|
|
333
|
+
/>
|
|
262
334
|
</div>
|
|
263
335
|
);
|
|
264
336
|
}
|
|
265
337
|
`,
|
|
266
|
-
'src/
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
338
|
+
'src/app/docs/[slug]/page.tsx': `import * as path from 'node:path';
|
|
339
|
+
import { fileURLToPath } from 'node:url';
|
|
340
|
+
import { renderMarkdownFile } from 'froot-fullstack';
|
|
341
|
+
|
|
342
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
343
|
+
const __dirname = path.dirname(__filename);
|
|
344
|
+
|
|
345
|
+
export async function generateStaticParams() {
|
|
346
|
+
return [
|
|
347
|
+
{ slug: 'overview' },
|
|
348
|
+
{ slug: 'quickstart' },
|
|
349
|
+
];
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
export async function generateMetadata({ params }: { params: { slug: string } }) {
|
|
353
|
+
const slug = params.slug || 'overview';
|
|
354
|
+
return {
|
|
355
|
+
title: \`\${slug.charAt(0).toUpperCase() + slug.slice(1)} — Froot Fullstack Docs\`,
|
|
356
|
+
};
|
|
270
357
|
}
|
|
271
358
|
|
|
272
|
-
export function
|
|
359
|
+
export default async function DocSlugPage({ params }: { params: { slug: string } }) {
|
|
360
|
+
const slug = params.slug || 'overview';
|
|
361
|
+
const docPath = path.resolve(process.cwd(), 'content/docs', \`\${slug}.md\`);
|
|
362
|
+
const { frontmatter, html } = await renderMarkdownFile(docPath);
|
|
363
|
+
|
|
273
364
|
return (
|
|
274
365
|
<div>
|
|
275
366
|
<div class="text-xs font-mono text-emerald-400 mb-2 uppercase tracking-wider">
|
|
276
|
-
{category}
|
|
367
|
+
{frontmatter['category'] || 'Documentation'}
|
|
277
368
|
</div>
|
|
278
|
-
<h1 class="text-3xl font-extrabold text-white mb-6">
|
|
369
|
+
<h1 class="text-3xl font-extrabold text-white mb-6">
|
|
370
|
+
{frontmatter['title'] || slug}
|
|
371
|
+
</h1>
|
|
279
372
|
<article
|
|
280
|
-
class="prose prose-invert max-w-none text-slate-300 leading-relaxed"
|
|
281
|
-
dangerouslySetInnerHTML={{ __html:
|
|
373
|
+
class="prose prose-invert max-w-none text-slate-300 leading-relaxed space-y-4"
|
|
374
|
+
dangerouslySetInnerHTML={{ __html: html }}
|
|
282
375
|
/>
|
|
283
376
|
</div>
|
|
284
377
|
);
|
|
@@ -287,11 +380,7 @@ export function DocsPage({ title, category, contentHtml }: DocsPageProps) {
|
|
|
287
380
|
'src/server.tsx': `import * as path from 'node:path';
|
|
288
381
|
import { fileURLToPath } from 'node:url';
|
|
289
382
|
import { Froot } from 'frootjs';
|
|
290
|
-
import { createAppRouter
|
|
291
|
-
import { RootLayout } from './layouts/RootLayout.js';
|
|
292
|
-
import { DocsLayout } from './layouts/DocsLayout.js';
|
|
293
|
-
import { HomePage } from './pages/HomePage.js';
|
|
294
|
-
import { DocsPage } from './pages/DocsPage.js';
|
|
383
|
+
import { createAppRouter } from 'froot-fullstack';
|
|
295
384
|
|
|
296
385
|
const __filename = fileURLToPath(import.meta.url);
|
|
297
386
|
const __dirname = path.dirname(__filename);
|
|
@@ -299,55 +388,27 @@ const __dirname = path.dirname(__filename);
|
|
|
299
388
|
export const app = new Froot();
|
|
300
389
|
export const router = createAppRouter(app);
|
|
301
390
|
|
|
302
|
-
// 1.
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
<RootLayout title="Documentation — Froot Fullstack">
|
|
306
|
-
<DocsLayout currentPath={currentPath}>
|
|
307
|
-
{children}
|
|
308
|
-
</DocsLayout>
|
|
309
|
-
</RootLayout>
|
|
310
|
-
);
|
|
311
|
-
});
|
|
312
|
-
|
|
313
|
-
// 2. Landing Page Route (with top navbar)
|
|
314
|
-
router.page('/', () => {
|
|
315
|
-
return (
|
|
316
|
-
<RootLayout title="Froot Fullstack — Next.js Alternative">
|
|
317
|
-
<HomePage />
|
|
318
|
-
</RootLayout>
|
|
319
|
-
);
|
|
320
|
-
});
|
|
391
|
+
// 1. Serve compiled Tailwind v4 CSS
|
|
392
|
+
const cssPath = path.resolve(__dirname, '../dist/styles.css');
|
|
393
|
+
router.serveCss(cssPath);
|
|
321
394
|
|
|
322
|
-
//
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
async ({ params }) => {
|
|
326
|
-
const slug = params['slug'] || 'overview';
|
|
327
|
-
const docPath = path.resolve(__dirname, \`../content/docs/\${slug}.md\`);
|
|
328
|
-
const { frontmatter, html } = await renderMarkdownFile(docPath);
|
|
329
|
-
|
|
330
|
-
return (
|
|
331
|
-
<DocsPage
|
|
332
|
-
title={frontmatter['title'] || slug}
|
|
333
|
-
category={frontmatter['category'] || 'Documentation'}
|
|
334
|
-
contentHtml={html}
|
|
335
|
-
/>
|
|
336
|
-
);
|
|
337
|
-
},
|
|
338
|
-
{
|
|
339
|
-
generateStaticParams: () => [{ slug: 'overview' }, { slug: 'quickstart' }],
|
|
340
|
-
}
|
|
341
|
-
);
|
|
395
|
+
// 2. Discover file-based routes and nested layouts in src/app
|
|
396
|
+
const appDir = path.resolve(__dirname, 'app');
|
|
397
|
+
await router.discover(appDir);
|
|
342
398
|
|
|
343
399
|
const PORT = Number(process.env['PORT'] || 3000);
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
400
|
+
const isDirectEntry = process.argv[1] ? path.basename(process.argv[1]).includes('server') : false;
|
|
401
|
+
if (isDirectEntry && process.env['NODE_ENV'] !== 'test') {
|
|
402
|
+
app.listen(PORT, () => {
|
|
403
|
+
console.log(\`🍏 Froot Fullstack server running at http://localhost:\${PORT}\`);
|
|
404
|
+
});
|
|
405
|
+
}
|
|
347
406
|
`,
|
|
348
407
|
'src/build.ts': `/**
|
|
349
408
|
* Static Site Generation (SSG) Builder
|
|
350
409
|
*/
|
|
410
|
+
process.env['FROOT_BUILD'] = 'true';
|
|
411
|
+
|
|
351
412
|
import * as path from 'node:path';
|
|
352
413
|
import { fileURLToPath } from 'node:url';
|
|
353
414
|
import { router } from './server.js';
|
|
@@ -357,7 +418,7 @@ const __dirname = path.dirname(__filename);
|
|
|
357
418
|
const outDir = path.resolve(__dirname, '../dist/static');
|
|
358
419
|
|
|
359
420
|
async function build() {
|
|
360
|
-
console.log('🍏 Building static site with
|
|
421
|
+
console.log('🍏 Building static site with froot-fullstack...');
|
|
361
422
|
const result = await router.exportStatic({ outDir });
|
|
362
423
|
console.log(\`✅ Export complete in \${result.durationMs}ms: \${result.renderedRoutes.length} routes pre-rendered.\`);
|
|
363
424
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fullstack.js","sourceRoot":"","sources":["../../src/templates/fullstack.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAuC,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnF,MAAM,CAAC,MAAM,iBAAiB,GAAuB;IACnD,EAAE,EAAE,WAAW;IACf,IAAI,EAAE,iCAAiC;IACvC,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"fullstack.js","sourceRoot":"","sources":["../../src/templates/fullstack.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAuC,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnF,MAAM,CAAC,MAAM,iBAAiB,GAAuB;IACnD,EAAE,EAAE,WAAW;IACf,IAAI,EAAE,iCAAiC;IACvC,WAAW,EAAE,4FAA4F;IACzG,QAAQ,EAAE,CAAC,WAAmB,EAAmB,EAAE;QACjD,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,SAAS,CAC5B;gBACE,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE;oBACP,SAAS,EAAE,0DAA0D;oBACrE,WAAW,EAAE,2DAA2D;oBACxE,GAAG,EAAE,gDAAgD;oBACrD,KAAK,EAAE,2BAA2B;oBAClC,cAAc,EAAE,wCAAwC;oBACxD,KAAK,EAAE,qBAAqB;iBAC7B;gBACD,YAAY,EAAE;oBACZ,iBAAiB,EAAE,QAAQ;oBAC3B,OAAO,EAAE,QAAQ;oBACjB,MAAM,EAAE,SAAS;oBACjB,yBAAyB,EAAE,QAAQ;iBACpC;gBACD,eAAe,EAAE;oBACf,kBAAkB,EAAE,QAAQ;oBAC5B,WAAW,EAAE,QAAQ;oBACrB,aAAa,EAAE,UAAU;oBACzB,GAAG,EAAE,SAAS;oBACd,UAAU,EAAE,QAAQ;iBACrB;aACF,EACD,IAAI,EACJ,CAAC,CACF,GAAG,IAAI;YAER,eAAe,EAAE;;;;;;;;;;;;;;;;;;;;;;CAsBtB;YACK,YAAY,EAAE,gBAAgB;YAE9B,WAAW,EAAE,KAAK,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgClC;YAEK,0BAA0B,EAAE;;;;;;;;;;;;;;;CAejC;YAEK,4BAA4B,EAAE;;;;;;;;;;;;;;;;;;CAkBnC;YAEK,gBAAgB,EAAE;;;;;;;CAOvB;YAEK,oBAAoB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4B3B;YAEK,kBAAkB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2EzB;YAEK,yBAAyB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6DhC;YAEK,uBAAuB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+B9B;YAEK,8BAA8B,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCrC;YAEK,gBAAgB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;CA0BvB;YAEK,cAAc,EAAE;;;;;;;;;;;;;;;;;;;;;;;CAuBrB;SACI,CAAC;IACJ,CAAC;CACF,CAAC"}
|