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
|
+
[](https://www.npmjs.com/package/create-clientkit)
|
|
4
|
+
[](https://github.com/JosuK22/create-clientkit/actions/workflows/ci.yml)
|
|
5
|
+
[](https://nodejs.org)
|
|
6
|
+
[](./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
|
|
8
|
-
structured data, favicon, accessibility baseline
|
|
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
|
-
|
|
15
|
-
|
|
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
|
-
|
|
19
|
-
|
|
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
|
-
|
|
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
package/package.json
CHANGED
|
@@ -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
|
-
{
|
|
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>
|