create-lacspace-app 1.14.0 → 1.14.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.
- package/BENCHMARKS.md +52 -0
- package/README.md +63 -36
- package/package.json +3 -2
package/BENCHMARKS.md
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Benchmarks
|
|
2
|
+
|
|
3
|
+
A fair, reproducible head-to-head against `create-next-app`. We benchmark **scaffold time only** (the CLI writing files to disk) — dependency installation is excluded from both, because it's identical `npm install` work that depends on your network, not the tool.
|
|
4
|
+
|
|
5
|
+
## Method
|
|
6
|
+
|
|
7
|
+
- Both CLIs invoked **binary-direct** (`node .../dist/index.js`), not via `npx`/`npm create` (which add package-resolution overhead to both, unfairly and unequally).
|
|
8
|
+
- **Scaffold-only**: `--skip-install`/`--no-install` and git disabled on both.
|
|
9
|
+
- Median of **7 runs** on the same machine, back-to-back.
|
|
10
|
+
- `create-next-app` given the closest-matching flags (TypeScript, Tailwind, App Router, import alias).
|
|
11
|
+
|
|
12
|
+
## Reproduce it yourself
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
mkdir bench && cd bench
|
|
16
|
+
npm i create-next-app@latest create-lacspace-app@latest
|
|
17
|
+
|
|
18
|
+
CNA=node_modules/create-next-app/dist/index.js
|
|
19
|
+
CLA=node_modules/create-lacspace-app/dist/index.js
|
|
20
|
+
|
|
21
|
+
# create-lacspace-app — finished app, scaffold only
|
|
22
|
+
for i in 1 2 3 4 5 6 7; do rm -rf cla$i; \
|
|
23
|
+
/usr/bin/time -p node "$CLA" cla$i --template saas --no-install --no-git -y >/dev/null 2>&1; done
|
|
24
|
+
|
|
25
|
+
# create-next-app — blank app, scaffold only
|
|
26
|
+
for i in 1 2 3 4 5 6 7; do rm -rf cna$i; \
|
|
27
|
+
/usr/bin/time -p node "$CNA" cna$i --ts --tailwind --app --no-eslint --no-src-dir \
|
|
28
|
+
--skip-install --disable-git --no-turbopack --import-alias "@/*" >/dev/null 2>&1; done
|
|
29
|
+
|
|
30
|
+
# compare what you got
|
|
31
|
+
echo "lacspace files: $(find cla1 -type f | wc -l) pages: $(find cla1 -name page.tsx | wc -l)"
|
|
32
|
+
echo "next files: $(find cna1 -type f | wc -l) pages: $(find cna1 -name page.tsx | wc -l)"
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Results (create-next-app 16.3.4 vs create-lacspace-app 1.14.0)
|
|
36
|
+
|
|
37
|
+
| Metric | create-next-app | create-lacspace-app |
|
|
38
|
+
| --- | --- | --- |
|
|
39
|
+
| Scaffold time (median of 7) | **0.29s** | **0.15s** |
|
|
40
|
+
| Files written | 18 | 70 |
|
|
41
|
+
| `page.tsx` routes | 1 | 11 |
|
|
42
|
+
| Components | 0 | 37 (incl. a 26-component UI kit) |
|
|
43
|
+
| `sitemap.xml` / `robots.txt` / `/og` | ✗ | ✓ |
|
|
44
|
+
| `lib/site.ts` SEO config / JSON-LD | ✗ | ✓ |
|
|
45
|
+
| PWA manifest / styled 404 | ✗ | ✓ |
|
|
46
|
+
| Templates available | 1 | 8 |
|
|
47
|
+
|
|
48
|
+
## Honest caveats
|
|
49
|
+
|
|
50
|
+
- **This is not a "10× faster framework" claim.** Both scaffolders finish in well under a second; the ~1.9× gap is real but small in absolute terms. `create-lacspace-app` is faster largely because it writes precomputed template strings with no interactive prompt round-trips.
|
|
51
|
+
- The **meaningful** difference is *output*: `create-next-app` hands you a single blank page and no SEO; `create-lacspace-app` hands you a running, multi-page, SEO-complete app you can deploy immediately.
|
|
52
|
+
- "Time to a deployable, SEO-ready site" — the metric that actually matters to a developer — is where the gap is large, because with `create-next-app` that work is still ahead of you.
|
package/README.md
CHANGED
|
@@ -2,76 +2,103 @@
|
|
|
2
2
|
|
|
3
3
|
# create-lacspace-app
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
**`create-next-app` gives you a blank page. This gives you a finished, SEO-complete app — in one command.**
|
|
6
6
|
|
|
7
7
|
[](https://www.npmjs.com/package/create-lacspace-app)
|
|
8
|
+
[](#-benchmarks-honest-and-reproducible)
|
|
8
9
|
[](https://github.com/lacspace/npm-packages/blob/main/LICENSE)
|
|
9
10
|
|
|
10
11
|
</div>
|
|
11
12
|
|
|
12
|
-
> `create-next-app` gives you a blank page. This gives you a **finished-looking app** — a polished template, styled with Tailwind, already wired with the Lacspace libraries (SEO metadata + JSON-LD, security headers, sitemap & robots). Choose your kind of site and you're running in seconds.
|
|
13
|
-
|
|
14
|
-
## Use it
|
|
15
|
-
|
|
16
13
|
```bash
|
|
17
14
|
npm create lacspace-app@latest my-app
|
|
18
|
-
# or
|
|
19
|
-
npx create-lacspace-app my-app --template
|
|
15
|
+
# or pick a template up front
|
|
16
|
+
npx create-lacspace-app my-app --template saas
|
|
20
17
|
```
|
|
21
18
|
|
|
22
|
-
It
|
|
19
|
+
You choose the *kind* of site you're building. It writes a **real Next.js 15 + React 19 + Tailwind v4 app** — not a hello-world, but a polished, dark-themed, responsive site with **every page filled in**, an SEO stack wired end-to-end, and a **26-component UI kit** you can drop in anywhere.
|
|
23
20
|
|
|
24
|
-
|
|
21
|
+
---
|
|
25
22
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
| **
|
|
31
|
-
|
|
|
32
|
-
| **
|
|
33
|
-
| **
|
|
34
|
-
| **
|
|
35
|
-
| **
|
|
23
|
+
## ⚡ Benchmarks — honest and reproducible
|
|
24
|
+
|
|
25
|
+
Same machine, both CLIs run **binary-direct, scaffold-only**, median of 7 runs:
|
|
26
|
+
|
|
27
|
+
| | create-next-app **16.3.4** | create-lacspace-app **1.14** |
|
|
28
|
+
| --- | --- | --- |
|
|
29
|
+
| **Scaffold time** | 0.29s | **0.15s** ⚡ (~1.9× faster) |
|
|
30
|
+
| **Files produced** | 18 | **70** |
|
|
31
|
+
| **Pages** | 1 (blank) | **11** (finished, 5–6 sections each) |
|
|
32
|
+
| **Prebuilt components** | 0 | **37** (incl. a 26-component UI kit) |
|
|
33
|
+
| **Templates** | 1 | **8** |
|
|
34
|
+
| SEO metadata + JSON-LD | ✗ | ✓ |
|
|
35
|
+
| Dynamic OG images (`/og`) | ✗ | ✓ |
|
|
36
|
+
| `sitemap.xml` + `robots.txt` | ✗ | ✓ |
|
|
37
|
+
| Security headers (HSTS/CSP…) | ✗ | ✓ |
|
|
38
|
+
| PWA manifest + styled 404 | ✗ | ✓ |
|
|
39
|
+
| SEO regression CI gate | ✗ | ✓ |
|
|
36
40
|
|
|
37
|
-
|
|
41
|
+
> It's faster *and* you get a finished app instead of a blank one. Don't take our word for it — **[reproduce it in 60 seconds](./BENCHMARKS.md)**.
|
|
38
42
|
|
|
39
|
-
|
|
43
|
+
*(Numbers are scaffold-only. The honest headline isn't the milliseconds — both are sub-second — it's that one produces a blank page and the other produces a running, SEO-complete, multi-page app.)*
|
|
44
|
+
|
|
45
|
+
---
|
|
40
46
|
|
|
41
|
-
|
|
47
|
+
## 🎁 What you actually get
|
|
42
48
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
-
|
|
49
|
-
-
|
|
49
|
+
Every generated app arrives **done**, not started:
|
|
50
|
+
|
|
51
|
+
- 🧩 **8 templates**, each a complete site — `personal`, `business`, `ecommerce`, `saas`, `blog`, `docs`, `dashboard`, `restaurant`.
|
|
52
|
+
- 📄 **Every page is filled** — home, about, pricing, services, features, FAQ, careers, work/case-studies, collections, integrations, changelog, gallery, reservations, and more. Each is **5–6 real sections** (hero → feature split with illustration → stat band → feature grid → showcase → CTA), personalised with your project name. No "coming soon" stubs.
|
|
53
|
+
- 🎨 **A 26-component UI kit** (`components/ui/`): `Section`, `Hero`, `FeatureCard`, `FeatureSplit`, `Bento`, `PricingTable`, `Testimonial`, `StatBand`, `Timeline`, `Steps`, `Tabs`, `Accordion`, `FAQ`, `Gallery`, `TeamGrid`, `LogoCloud`, `CTABand`, `Newsletter`, `AreaChart`, `Badge`, `Callout`, `Rating`, `Progress`, `Breadcrumbs`, `Avatar` … all theme-aware, dependency-free, server-first.
|
|
54
|
+
- 🔎 **SEO, done for you** — one [`@lacspace/seo`](https://www.npmjs.com/package/@lacspace/seo) `defineSite()` config drives `<title>`, canonical, Open Graph, Twitter, and JSON-LD across every route.
|
|
55
|
+
- ✨ **Dynamic OG images** at `/og` — a social-share card per page, no design tool.
|
|
56
|
+
- 🛡️ **Security headers** (HSTS, CSP, X-Frame-Options…) via [`@lacspace/headers`](https://www.npmjs.com/package/@lacspace/headers).
|
|
57
|
+
- 🗺️ **`sitemap.xml` + `robots.txt`** generated from your config.
|
|
58
|
+
- 🌗 **Dark / light / system theme** with a no-flash script, global header + footer, ⌘K command palette, and a mobile menu — all prewired.
|
|
59
|
+
- 🤖 **An SEO CI gate** (`.github/workflows/seo.yml`) that fails your build the moment SEO regresses.
|
|
60
|
+
|
|
61
|
+
Edit `lib/site.ts` (your site config) and `app/page.tsx` — you're off.
|
|
62
|
+
|
|
63
|
+
---
|
|
64
|
+
|
|
65
|
+
## Templates
|
|
66
|
+
|
|
67
|
+
| Key | What you get |
|
|
68
|
+
| --- | --- |
|
|
69
|
+
| **personal** | Developer/portfolio — projects, uses, work, about, blog |
|
|
70
|
+
| **business** | Agency/company — services, work (case studies), pricing, team |
|
|
71
|
+
| **ecommerce** | Storefront — shop, cart (working, persisted), collections |
|
|
72
|
+
| **saas** | Landing — features, pricing, integrations, changelog |
|
|
73
|
+
| **blog** | Real Markdown blog — posts, topics, newsletter |
|
|
74
|
+
| **docs** | Docs site — guides, API reference, changelog, search |
|
|
75
|
+
| **dashboard** | App shell — sidebar, stat cards, charts, settings, analytics |
|
|
76
|
+
| **restaurant** | Menu, reservations, gallery, private events |
|
|
50
77
|
|
|
51
|
-
|
|
78
|
+
Every template is Next.js 15 App Router + React 19 + Tailwind v4 — dark, modern, responsive, with a themeable gradient accent.
|
|
52
79
|
|
|
53
80
|
## Options
|
|
54
81
|
|
|
55
82
|
| Flag | Meaning |
|
|
56
83
|
| --- | --- |
|
|
57
|
-
| `-t, --template <key>` | `personal`
|
|
58
|
-
| `--pm <npm\|pnpm\|yarn\|bun>` | package manager (default npm) |
|
|
84
|
+
| `-t, --template <key>` | `personal` · `business` · `ecommerce` · `saas` · `blog` · `docs` · `dashboard` · `restaurant` |
|
|
85
|
+
| `--pm <npm\|pnpm\|yarn\|bun>` | package manager (default `npm`) |
|
|
59
86
|
| `--no-install` | skip installing dependencies |
|
|
60
87
|
| `--no-git` | skip git init |
|
|
61
88
|
| `-y, --yes` | accept defaults (needs a project name) |
|
|
62
89
|
|
|
63
90
|
## Licensing
|
|
64
91
|
|
|
65
|
-
Free under the **[Lacspace Free Licence](https://lacspace.com/licenses/lacspace-free-1.0)** — MIT-equivalent freedoms. Use it in personal and commercial projects at no cost;
|
|
92
|
+
Free under the **[Lacspace Free Licence](https://lacspace.com/licenses/lacspace-free-1.0)** — MIT-equivalent freedoms. Use it in personal and commercial projects at no cost; the apps you generate are entirely yours.
|
|
66
93
|
|
|
67
94
|
---
|
|
68
95
|
|
|
69
96
|
<div align="center">
|
|
70
97
|
|
|
71
|
-
**Part of the Lacspace ecosystem — zero-dependency, isomorphic TypeScript packages.**
|
|
98
|
+
**Part of the Lacspace ecosystem — 60+ zero-dependency, isomorphic TypeScript packages.**
|
|
72
99
|
|
|
73
|
-
[All packages ↗](https://lacspace.com/packages) · [
|
|
100
|
+
[All packages ↗](https://lacspace.com/packages) · [Docs ↗](https://lacspace.com/docs) · [npm org ↗](https://www.npmjs.com/org/lacspace) · [GitHub ↗](https://github.com/lacspace/npm-packages)
|
|
74
101
|
|
|
75
102
|
</div>
|
|
76
103
|
|
|
77
|
-
<div align="center"><sub>Built with care by <a href="https://lacspace.com">Lacspace</a> · Lacspace Free Licence
|
|
104
|
+
<div align="center"><sub>Built with care by <a href="https://lacspace.com">Lacspace</a> · Lacspace Free Licence</sub></div>
|
package/package.json
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-lacspace-app",
|
|
3
|
-
"version": "1.14.
|
|
3
|
+
"version": "1.14.1",
|
|
4
4
|
"description": "Scaffold a beautiful, production-ready Next.js app from a Lacspace template — portfolio, business, e-commerce, SaaS, blog, docs, dashboard or restaurant — pre-wired with SEO, security headers, sitemap and robots. Like create-next-app, but you start gorgeous.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"create-lacspace-app": "dist/index.js"
|
|
8
8
|
},
|
|
9
9
|
"files": [
|
|
10
|
-
"dist"
|
|
10
|
+
"dist",
|
|
11
|
+
"BENCHMARKS.md"
|
|
11
12
|
],
|
|
12
13
|
"scripts": {
|
|
13
14
|
"build": "tsup",
|