create-clientkit 1.0.1 → 1.0.2

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/README.md CHANGED
@@ -1,22 +1,37 @@
1
1
  # create-clientkit
2
2
 
3
+ [![npm](https://img.shields.io/npm/v/create-clientkit)](https://www.npmjs.com/package/create-clientkit)
4
+ [![CI](https://github.com/JosuK22/create-clientkit/actions/workflows/ci.yml/badge.svg)](https://github.com/JosuK22/create-clientkit/actions/workflows/ci.yml)
5
+ [![node](https://img.shields.io/node/v/create-clientkit)](https://nodejs.org)
6
+ [![licence](https://img.shields.io/npm/l/create-clientkit)](./LICENSE)
7
+
3
8
  **Create the boring foundation of your next client website in seconds.**
4
9
 
10
+ ```sh
11
+ npm create clientkit@latest acme-website
12
+ ```
13
+
5
14
  A scaffolding CLI for developers who build client websites over and over:
6
15
  freelancers, agencies and frontend teams. It generates the foundation you
7
- rebuild every time — layout, Coming Soon page, 404, SEO, robots, sitemap,
8
- structured data, favicon, accessibility baseline, build config — and then gets
9
- out of the way.
16
+ rebuild every time — layout, a Coming Soon page, a custom 404, SEO metadata,
17
+ `robots.txt`, a sitemap, structured data, a favicon, an accessibility baseline
18
+ and build config — and then gets out of the way.
10
19
 
11
20
  It is **not** a website builder. You own the generated source from the moment
12
21
  it lands on disk.
13
22
 
14
- ```sh
15
- npm create clientkit@latest acme-website
16
- ```
23
+ **What it generates** — a static [Astro](https://astro.build) 7 +
24
+ [Tailwind CSS](https://tailwindcss.com) 4 site in TypeScript: responsive, light
25
+ and dark themes, and no client-side JavaScript by default. Start in
26
+ **Coming Soon** mode for a launch page, **Full** for a small multi-section home
27
+ page, or **URL-less** when the domain is not decided yet.
17
28
 
18
- [![npm](https://img.shields.io/npm/v/create-clientkit)](https://www.npmjs.com/package/create-clientkit)
19
- [![CI](https://github.com/JosuK22/create-clientkit/actions/workflows/ci.yml/badge.svg)](https://github.com/JosuK22/create-clientkit/actions/workflows/ci.yml)
29
+ **What it is** — one bundled CLI with **zero runtime dependencies**, MIT
30
+ licensed, published from CI with
31
+ [provenance](https://docs.npmjs.com/generating-provenance-statements) and
32
+ tested on Linux, Windows and macOS across Node 20.19, 22 and 24. The site it
33
+ generates has its own dependencies — Astro and Tailwind, pinned exactly — which
34
+ is a separate thing from the CLI's own dependency count.
20
35
 
21
36
  ---
22
37
 
@@ -48,11 +63,24 @@ and warns before generating that the project itself will need 22.12+.
48
63
 
49
64
  ## Usage
50
65
 
66
+ Recommended — nothing to install first, and `@latest` sidesteps npm's
67
+ initializer cache:
68
+
51
69
  ```sh
52
70
  npm create clientkit@latest [directory] [options]
71
+ ```
72
+
73
+ The same binary is reachable through `npx`, if that suits your workflow better.
74
+ It does the same thing:
75
+
76
+ ```sh
53
77
  npx create-clientkit@latest [directory] [options]
54
78
  ```
55
79
 
80
+ Note that this is about how you _invoke_ the CLI. Which package manager installs
81
+ the generated project's dependencies is a separate choice — detected from your
82
+ environment, or forced with `--pm`.
83
+
56
84
  | Flag | Description |
57
85
  | --------------------- | ----------------------------------------- |
58
86
  | `-t, --template <id>` | Template to scaffold from |
@@ -115,11 +143,27 @@ One template ships in V1:
115
143
  | ---------------- | --------------------------------------- | --------------------- |
116
144
  | `astro-tailwind` | Astro 7, Tailwind CSS 4, TypeScript 5.9 | `coming-soon`, `full` |
117
145
 
118
- - **`coming-soon`** — a single polished launch page you can put live today.
119
- - **`full`** a small home page with sections, on the same design system.
146
+ - **`coming-soon`** — a single polished launch page you can put live today,
147
+ with an optional launch date and a progressive-enhancement countdown.
148
+ - **`full`** — a small multi-section home page, on the same design system.
120
149
 
121
150
  Both include the custom 404, the design system and the full SEO layer.
122
151
 
152
+ ### URL-less
153
+
154
+ Not a third mode — a state either mode starts in, and a supported one. When you
155
+ have not decided on a domain, leave the production URL unset and the generated
156
+ site **omits** every absolute tag rather than pointing it at a guess: no
157
+ canonical, no `og:url`, no sitemap, and no `Sitemap:` line in `robots.txt`.
158
+
159
+ ```sh
160
+ npm create clientkit@latest acme-website --yes # no --url: URL-less
161
+ ```
162
+
163
+ Set `SITE.url` in `src/config/site.config.ts` whenever the domain is known and
164
+ all of it appears on the next build. Nothing needs regenerating, and no
165
+ placeholder domain was ever written to disk.
166
+
123
167
  ## The generated project
124
168
 
125
169
  ```sh
package/dist/cli.js CHANGED
@@ -2477,7 +2477,7 @@ var Logger = class {
2477
2477
  };
2478
2478
 
2479
2479
  // src/version.ts
2480
- var CLI_VERSION = true ? "1.0.1" : "0.0.0-dev";
2480
+ var CLI_VERSION = true ? "1.0.2" : "0.0.0-dev";
2481
2481
 
2482
2482
  // src/cli.ts
2483
2483
  async function main(argv, options = {}) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-clientkit",
3
- "version": "1.0.1",
3
+ "version": "1.0.2",
4
4
  "description": "Create the boring foundation of your next client website in seconds.",
5
5
  "keywords": [
6
6
  "cli",
@@ -24,7 +24,8 @@ npm run dev
24
24
  1. **`src/config/site.config.ts`** - the single source of truth, and the only
25
25
  file you need for most client changes:
26
26
  - `SITE` - name, description, production URL, locale, author
27
- - `NAV` - header links (empty means no menu is rendered at all)
27
+ - `NAV` - header links (empty means no menu is rendered at all; in
28
+ coming-soon mode the home page has no header, so they show on the 404 only)
28
29
  - `SOCIAL` - social profiles (empty means no links are rendered)
29
30
  - `CONTACT` - email, phone, location; each is optional
30
31
  - `LAUNCH` - optional launch date and countdown
@@ -106,6 +106,12 @@ export const SITE: SiteIdentity = {
106
106
  /**
107
107
  * Site navigation. Empty by default: the header renders no menu at all rather
108
108
  * than inventing links. Add items once real pages or sections exist.
109
+ *
110
+ * NAV drives the header, so it shows up only on pages that render one. In
111
+ * coming-soon mode the home page deliberately has no header - it carries its
112
+ * own brand lockup instead - so there these links appear on the 404 page only.
113
+ * Delete `showHeader={false}` from src/pages/index.astro if you want a header
114
+ * and menu on the launch page too.
109
115
  */
110
116
  export const NAV: NavItem[] = [];
111
117
 
@@ -10,7 +10,17 @@ const hasSocial = SOCIAL.some((link) => link.label !== '' && link.href !== '');
10
10
  const hasLaunch = LAUNCH.enabled && LAUNCH.date !== '';
11
11
  ---
12
12
 
13
- {/* The page carries its own brand lockup, so a header would only repeat it. */}
13
+ {
14
+ /*
15
+ No header here: the page carries its own brand lockup below, and repeating it
16
+ in a bar would say the same thing twice on one screen. A launch page also has
17
+ nowhere to navigate to yet.
18
+
19
+ This is why NAV in src/config/site.config.ts does not show on this page - it
20
+ drives the header, and there is no header. It still applies to the 404 page.
21
+ Delete showHeader={false} if you want a header and menu here too.
22
+ */
23
+ }
14
24
  <BaseLayout showHeader={false} measure="narrow">
15
25
  <div class="hero">
16
26
  <div class="glow" aria-hidden="true"></div>