@undp/create-app 0.91.0 → 0.91.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 +5 -3
- package/bin/generateFiles/generateIndexHtml.js +13 -5
- package/bin/generateFiles/generatePackageJson.js +1 -0
- package/bin/generateFiles/generateStaticWebAppConfig.js +15 -5
- package/bin/generateFiles/generateViteConfig.js +6 -0
- package/bin/promptUser.js +146 -127
- package/bin/templates/next/auth/README.md +17 -0
- package/bin/templates/next/basic/README.md +17 -0
- package/bin/templates/vite/basic/.github/ISSUE_TEMPLATE/launch-checklist.md +73 -0
- package/bin/templates/vite/basic/README.md +40 -5
- package/bin/templates/vite/query/.github/ISSUE_TEMPLATE/launch-checklist.md +73 -0
- package/bin/templates/vite/query/README.md +39 -5
- package/bin/templates/vite/query+router/.github/ISSUE_TEMPLATE/launch-checklist.md +73 -0
- package/bin/templates/vite/query+router/README.md +17 -0
- package/bin/templates/vite/router/.github/ISSUE_TEMPLATE/launch-checklist.md +73 -0
- package/bin/templates/vite/router/README.md +17 -0
- package/bin/templates/viteWithLanguage/basic/.github/ISSUE_TEMPLATE/launch-checklist.md +73 -0
- package/bin/templates/viteWithLanguage/basic/README.md +52 -5
- package/bin/templates/viteWithLanguage/query/.github/ISSUE_TEMPLATE/launch-checklist.md +73 -0
- package/bin/templates/viteWithLanguage/query/README.md +53 -5
- package/bin/templates/viteWithLanguage/query+router/.github/ISSUE_TEMPLATE/launch-checklist.md +72 -0
- package/bin/templates/viteWithLanguage/query+router/README.md +17 -0
- package/bin/templates/viteWithLanguage/router/.github/ISSUE_TEMPLATE/launch-checklist.md +73 -0
- package/bin/templates/viteWithLanguage/router/README.md +17 -0
- package/package.json +1 -1
package/bin/templates/viteWithLanguage/query+router/.github/ISSUE_TEMPLATE/launch-checklist.md
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Launch checklist
|
|
3
|
+
about: Pre-launch checks to complete before going to production
|
|
4
|
+
title: "Launch checklist"
|
|
5
|
+
labels: launch
|
|
6
|
+
assignees: ''
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
<!-- Tick items as you go. Don't close this issue until every box is checked or explicitly marked N/A with a reason. -->
|
|
10
|
+
|
|
11
|
+
## Metadata & SEO
|
|
12
|
+
|
|
13
|
+
- [ ] Favicon added (`favicon.ico` + SVG).
|
|
14
|
+
- [ ] `<meta name="theme-color">` added.
|
|
15
|
+
- [ ] `<html lang="…">` is set correctly.
|
|
16
|
+
- [ ] Every route has a unique `<title>` and `<meta name="description">`.
|
|
17
|
+
- [ ] Every route has a canonical URL: `<link rel="canonical" href="…">`.
|
|
18
|
+
- [ ] Open Graph and Twitter tags are added (globally in `index.html` or per route). Use absolute URLs for `og:url` and `og:image`:
|
|
19
|
+
|
|
20
|
+
```html
|
|
21
|
+
<meta property="og:type" content="website" />
|
|
22
|
+
<meta property="og:site_name" content="SITE_NAME" />
|
|
23
|
+
<meta property="og:title" content="TITLE" />
|
|
24
|
+
<meta property="og:description" content="DESCRIPTION" />
|
|
25
|
+
<meta property="og:url" content="https://example.com/page" />
|
|
26
|
+
<meta property="og:image" content="https://example.com/og-image.png" />
|
|
27
|
+
<meta property="og:image:width" content="1200" />
|
|
28
|
+
<meta property="og:image:height" content="630" />
|
|
29
|
+
<meta property="og:image:alt" content="IMAGE_ALT_TEXT" />
|
|
30
|
+
<meta name="twitter:card" content="summary_large_image" />
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
- [ ] Social previews verified with a preview tool (e.g. opengraph.xyz, LinkedIn Post Inspector).
|
|
34
|
+
- [ ] `robots.txt` and `sitemap.xml` are in place.
|
|
35
|
+
- [ ] `<meta name="robots" content="noindex">` is added to routes that should not be indexed for search.
|
|
36
|
+
- [ ] Production is indexable (no leftover `noindex`), and staging is **not** indexable.
|
|
37
|
+
- [ ] `apple-touch-icon` (180×180) added - only needed for site which the users might "install".
|
|
38
|
+
- [ ] `site.webmanifest` added - only needed for site which the users might "install".
|
|
39
|
+
|
|
40
|
+
## Functionality & QA
|
|
41
|
+
|
|
42
|
+
- [ ] All routes load, including on direct visit or refresh (host has SPA fallback routing).
|
|
43
|
+
- [ ] A custom 404 page exists, and React error boundaries catch runtime errors.
|
|
44
|
+
- [ ] No errors or warnings in the browser console.
|
|
45
|
+
- [ ] All forms, links and external integrations work in production.
|
|
46
|
+
- [ ] Design QA is complete and signed off.
|
|
47
|
+
- [ ] The layout works on all viewport widths from 360px up. At minimum, check 360, 768, 1024 and 1440px.
|
|
48
|
+
- [ ] Tested in the latest Chrome, Firefox, Edge and Safari.
|
|
49
|
+
|
|
50
|
+
## Performance
|
|
51
|
+
|
|
52
|
+
- [ ] Initial JS on first page load is ≤ 175 KB gzipped.
|
|
53
|
+
- [ ] Main CSS file is ≤ 50 KB gzipped.
|
|
54
|
+
- [ ] Images are optimised (WebP/AVIF, correctly sized, ≤ 75 KB each, lazy-loaded below the fold).
|
|
55
|
+
- [ ] Lighthouse scores (run in incognito against production):
|
|
56
|
+
|
|
57
|
+
| Category | Desktop | Mobile |
|
|
58
|
+
|----------------|---------|--------|
|
|
59
|
+
| Performance | ≥ 90 | ≥ 70 |
|
|
60
|
+
| Accessibility | ≥ 90 | ≥ 90 |
|
|
61
|
+
| Best Practices | ≥ 90 | ≥ 90 |
|
|
62
|
+
| SEO | ≥ 90 | ≥ 90 |
|
|
63
|
+
|
|
64
|
+
## Security & infrastructure
|
|
65
|
+
|
|
66
|
+
- [ ] `npm audit` shows no high or critical vulnerabilities.
|
|
67
|
+
- [ ] `npm audit --omit=dev` shows no vulnerabilities.
|
|
68
|
+
- [ ] No secrets or private API keys in the client bundle.
|
|
69
|
+
|
|
70
|
+
## Analytics & privacy
|
|
71
|
+
|
|
72
|
+
- [ ] Google Analytics and/or Microsoft Clarity are installed and events are confirmed arriving from production.
|
|
@@ -120,6 +120,23 @@ __Please note: Language routing is done at in `src/main.tsx`__
|
|
|
120
120
|
|
|
121
121
|
Data fetching is powered by [TanStack Query](https://tanstack.com/query) for efficient, declarative data fetching and caching.
|
|
122
122
|
|
|
123
|
+
## ✅ Launch Checklist
|
|
124
|
+
|
|
125
|
+
Before deploying to production, complete the launch checklist. It covers metadata and SEO, analytics, QA, accessibility, performance, security headers and caching.
|
|
126
|
+
|
|
127
|
+
The checklist is set up as a GitHub issue template, so each launch gets its own tickable copy:
|
|
128
|
+
|
|
129
|
+
1. Go to **Issues → New issue** in this repository.
|
|
130
|
+
2. Select **Launch checklist**.
|
|
131
|
+
3. Assign yourself, and click **Create**.
|
|
132
|
+
4. Tick items off as you complete them. The issue list shows progress (e.g. "7 of 32 tasks").
|
|
133
|
+
|
|
134
|
+
Or open it directly: [Create launch checklist issue](../../issues/new?template=launch-checklist.md)
|
|
135
|
+
|
|
136
|
+
Don't close the issue until every item is checked, or marked N/A with a reason.
|
|
137
|
+
|
|
138
|
+
The template lives in `.github/ISSUE_TEMPLATE/launch-checklist.md`.
|
|
139
|
+
|
|
123
140
|
## 📬 Contact us
|
|
124
141
|
|
|
125
142
|
For questions or feedback, contact us at [data@undp.org](mailto:data@undp.org).
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Launch checklist
|
|
3
|
+
about: Pre-launch checks to complete before going to production
|
|
4
|
+
title: "Launch checklist"
|
|
5
|
+
labels: launch
|
|
6
|
+
assignees: ''
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
<!-- Tick items as you go. Don't close this issue until every box is checked or explicitly marked N/A with a reason. -->
|
|
10
|
+
|
|
11
|
+
## Metadata & SEO
|
|
12
|
+
|
|
13
|
+
- [ ] Favicon added (`favicon.ico` + SVG), plus `apple-touch-icon` (180×180).
|
|
14
|
+
- [ ] `<meta name="theme-color">` added.
|
|
15
|
+
- [ ] `<html lang="…">` is set correctly.
|
|
16
|
+
- [ ] Every route has a unique `<title>` and `<meta name="description">`.
|
|
17
|
+
- [ ] Every route has a canonical URL: `<link rel="canonical" href="…">`.
|
|
18
|
+
- [ ] Open Graph and Twitter tags are added (globally in `index.html` or per route). Use absolute URLs for `og:url` and `og:image`:
|
|
19
|
+
|
|
20
|
+
```html
|
|
21
|
+
<meta property="og:type" content="website" />
|
|
22
|
+
<meta property="og:site_name" content="SITE_NAME" />
|
|
23
|
+
<meta property="og:title" content="TITLE" />
|
|
24
|
+
<meta property="og:description" content="DESCRIPTION" />
|
|
25
|
+
<meta property="og:url" content="https://example.com/page" />
|
|
26
|
+
<meta property="og:image" content="https://example.com/og-image.png" />
|
|
27
|
+
<meta property="og:image:width" content="1200" />
|
|
28
|
+
<meta property="og:image:height" content="630" />
|
|
29
|
+
<meta property="og:image:alt" content="IMAGE_ALT_TEXT" />
|
|
30
|
+
<meta name="twitter:card" content="summary_large_image" />
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
- [ ] Social previews verified with a preview tool (e.g. opengraph.xyz, LinkedIn Post Inspector).
|
|
34
|
+
- [ ] `robots.txt` and `sitemap.xml` are in place.
|
|
35
|
+
- [ ] `<meta name="robots" content="noindex">` is added to routes that should not be indexed for search.
|
|
36
|
+
- [ ] Production is indexable (no leftover `noindex`), and staging is **not** indexable.
|
|
37
|
+
- [ ] `apple-touch-icon` (180×180) added - only needed for site which the users might "install".
|
|
38
|
+
- [ ] `site.webmanifest` added - only needed for site which the users might "install".
|
|
39
|
+
|
|
40
|
+
## Functionality & QA
|
|
41
|
+
|
|
42
|
+
- [ ] All routes load, including on direct visit or refresh (host has SPA fallback routing).
|
|
43
|
+
- [ ] A custom 404 page exists, and React error boundaries catch runtime errors.
|
|
44
|
+
- [ ] No errors or warnings in the browser console.
|
|
45
|
+
- [ ] All forms, links and external integrations work in production.
|
|
46
|
+
- [ ] Design QA is complete and signed off.
|
|
47
|
+
- [ ] The layout works on all viewport widths from 360px up. At minimum, check 360, 768, 1024 and 1440px.
|
|
48
|
+
- [ ] Tested in the latest Chrome, Firefox, Edge and Safari.
|
|
49
|
+
|
|
50
|
+
## Performance
|
|
51
|
+
|
|
52
|
+
- [ ] Initial JS on first page load is ≤ 175 KB gzipped.
|
|
53
|
+
- [ ] Main CSS file is ≤ 50 KB gzipped.
|
|
54
|
+
- [ ] Images are optimised (WebP/AVIF, correctly sized, ≤ 75 KB each, lazy-loaded below the fold).
|
|
55
|
+
- [ ] Fonts are subset and preloaded, with `font-display: swap`.
|
|
56
|
+
- [ ] Lighthouse scores (run in incognito against production):
|
|
57
|
+
|
|
58
|
+
| Category | Desktop | Mobile |
|
|
59
|
+
|----------------|---------|--------|
|
|
60
|
+
| Performance | ≥ 90 | ≥ 70 |
|
|
61
|
+
| Accessibility | ≥ 90 | ≥ 90 |
|
|
62
|
+
| Best Practices | ≥ 90 | ≥ 90 |
|
|
63
|
+
| SEO | ≥ 90 | ≥ 90 |
|
|
64
|
+
|
|
65
|
+
## Security & infrastructure
|
|
66
|
+
|
|
67
|
+
- [ ] `npm audit` shows no high or critical vulnerabilities.
|
|
68
|
+
- [ ] `npm audit --omit=dev` shows no vulnerabilities.
|
|
69
|
+
- [ ] No secrets or private API keys in the client bundle.
|
|
70
|
+
|
|
71
|
+
## Analytics & privacy
|
|
72
|
+
|
|
73
|
+
- [ ] Google Analytics and/or Microsoft Clarity are installed and events are confirmed arriving from production.
|
|
@@ -115,6 +115,23 @@ More info: [Link documentation](https://tanstack.com/router/v1/docs/framework/re
|
|
|
115
115
|
|
|
116
116
|
__Please note: Language routing is done at in `src/main.tsx`__
|
|
117
117
|
|
|
118
|
+
## ✅ Launch Checklist
|
|
119
|
+
|
|
120
|
+
Before deploying to production, complete the launch checklist. It covers metadata and SEO, analytics, QA, accessibility, performance, security headers and caching.
|
|
121
|
+
|
|
122
|
+
The checklist is set up as a GitHub issue template, so each launch gets its own tickable copy:
|
|
123
|
+
|
|
124
|
+
1. Go to **Issues → New issue** in this repository.
|
|
125
|
+
2. Select **Launch checklist**.
|
|
126
|
+
3. Assign yourself, and click **Create**.
|
|
127
|
+
4. Tick items off as you complete them. The issue list shows progress (e.g. "7 of 32 tasks").
|
|
128
|
+
|
|
129
|
+
Or open it directly: [Create launch checklist issue](../../issues/new?template=launch-checklist.md)
|
|
130
|
+
|
|
131
|
+
Don't close the issue until every item is checked, or marked N/A with a reason.
|
|
132
|
+
|
|
133
|
+
The template lives in `.github/ISSUE_TEMPLATE/launch-checklist.md`.
|
|
134
|
+
|
|
118
135
|
## 📬 Contact us
|
|
119
136
|
|
|
120
137
|
For questions or feedback, contact us at [data@undp.org](mailto:data@undp.org).
|