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 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.8';
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 @froot/fullstack, Froot Core, and Preact.
4
- * Features nested layouts, dynamic routes, Preact SSR, SSG, and Markdown content.
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,kBA2X/B,CAAC"}
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 @froot/fullstack, Froot Core, and Preact.
4
- * Features nested layouts, dynamic routes, Preact SSR, SSG, and Markdown content.
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, SSG & Markdown',
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: 'tsx watch src/server.tsx',
19
- build: 'tsc',
20
- 'build:static': 'tsx src/build.ts',
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.0.0',
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 **Preact**.
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
- - 📂 **Next.js-style Architecture**:
68
- - Nested layout system (\`router.layout('/docs', ...)\`)
69
- - Dynamic route dispatch with typed parameters (\`/docs/:slug?\`)
70
- - Distinct layouts (e.g. landing page with navbar vs documentation with left sidebar and no navbar)
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
- - **Nested Layouts:** Dedicated layouts for different application sections (e.g. docs vs marketing).
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
- Edit \`src/server.tsx\` to register your pages:
122
+ Simply add a new folder or file in \`src/app/\`:
115
123
 
116
124
  \`\`\`tsx
117
- router.page('/about', () => <AboutPage />);
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/layouts/RootLayout.tsx': `import type { ComponentChildren } from 'preact';
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
- <script src="https://cdn.tailwindcss.com"></script>
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/layouts/DocsLayout.tsx': `import type { ComponentChildren } from 'preact';
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 &rarr;</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">&larr; Back to Home</a>
291
+ <a href="/" class="hover:text-emerald-400 transition-colors flex items-center gap-1.5">
292
+ <span>&larr;</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/pages/HomePage.tsx': `export function HomePage() {
223
- return (
224
- <div>
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 &rarr;</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
- {/* Hero Section */}
240
- <main class="max-w-5xl mx-auto px-6 py-20 text-center">
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
- <h1 class="text-5xl font-extrabold tracking-tight text-white mb-6">
246
- High-Performance <span class="text-emerald-400">Fullstack Web Engine</span>
247
- </h1>
313
+ export const metadata = {
314
+ title: 'Documentation Overview — Froot Fullstack',
315
+ description: 'Overview of the high-performance Froot Fullstack framework.',
316
+ };
248
317
 
249
- <p class="text-lg text-slate-300 max-w-2xl mx-auto mb-10 leading-relaxed">
250
- Engineered for extreme throughput, nested layout architecture, and zero-allocation dynamic routing.
251
- </p>
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
- <div class="flex items-center justify-center gap-4">
254
- <a
255
- href="/docs"
256
- 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"
257
- >
258
- Explore Documentation
259
- </a>
260
- </div>
261
- </main>
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/pages/DocsPage.tsx': `export interface DocsPageProps {
267
- title: string;
268
- category: string;
269
- contentHtml: string;
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 DocsPage({ title, category, contentHtml }: DocsPageProps) {
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">{title}</h1>
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: contentHtml }}
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, renderMarkdownFile } from 'froot-fullstack';
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. Docs Layout (NO TOP NAVBAR, left sidebar only)
303
- router.layout('/docs', ({ children, currentPath }) => {
304
- return (
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
- // 3. Dynamic Documentation Route (/docs and /docs/:slug)
323
- router.page(
324
- '/docs/:slug?',
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
- app.listen(PORT, () => {
345
- console.log(\`🍏 Froot Fullstack server running at http://localhost:\${PORT}\`);
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 @froot/fullstack...');
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,qEAAqE;IAClF,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,GAAG,EAAE,0BAA0B;oBAC/B,KAAK,EAAE,KAAK;oBACZ,cAAc,EAAE,kBAAkB;oBAClC,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,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8BlC;YAEK,0BAA0B,EAAE;;;;;;;;;;;;;CAajC;YAEK,4BAA4B,EAAE;;;;;;;;;;;;;;;CAenC;YAEK,4BAA4B,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0CnC;YAEK,4BAA4B,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0DnC;YAEK,wBAAwB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2C/B;YAEK,wBAAwB,EAAE;;;;;;;;;;;;;;;;;;;;CAoB/B;YAEK,gBAAgB,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4DvB;YAEK,cAAc,EAAE;;;;;;;;;;;;;;;;;;;;;CAqBrB;SACI,CAAC;IACJ,CAAC;CACF,CAAC"}
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"}