@degreesign/webapp 1.7.4 → 1.7.6

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.
Files changed (2) hide show
  1. package/README.md +251 -125
  2. package/package.json +35 -4
package/README.md CHANGED
@@ -1,29 +1,78 @@
1
- # DegreeSign webpack setup for WebApps
2
- The progressive web application template built with Webpack and TypeScript. Leverage `@degreesign/webapp` package for streamlined configuration and deployment. In addition to server bundling.
3
-
4
- ## Features
5
- - **Webpack-powered**: Optimised bundling for production-ready applications.
6
- - **TypeScript Support**: Ensures type safety and modern JavaScript features.
7
- - **Modular Structure**: Organised folder layout for scalability.
8
- - **SEO & PWA Ready**: Configurable metadata and manifest for progressive web apps.
9
- - **Customisable**: Flexible Webpack configuration via `@degreesign/webapp`.
10
-
11
- ## Recommended Setup
12
- 1. **Node.js**: Version 18.x or higher.
13
- 2. **Package Manager**: npm or Yarn.
14
- 3. **Dependencies**:
15
- - Install the `@degreesign/webapp` package: `npm install @degreesign/webapp`.
16
- - Install Webpack and TypeScript: `npm install webpack webpack-cli typescript ts-loader`.
17
- 4. **Environment**:
18
- - Create a `.env` file in the root directory with for any keys used in ts code.
19
- - Ensure a TypeScript configuration (`tsconfig.json`) is set up.
20
- 5. **IDE**: Use VS Code or any TypeScript-compatible editor for best experience.
21
-
22
- ## Package File
23
- Add file `package.json` as following
1
+ # @degreesign/webapp
2
+
3
+ **A TypeScript-first development standard for building a webapp — production-ready Progressive Web Apps and Node.js servers in pure HTML, CSS and TypeScript, engineered for the fastest possible renders and sub-second page loads; one config generates optimized bundles, SEO meta tags, a PWA manifest, service worker, `sitemap.xml`, `robots.txt`, `.htaccess` and optional JavaScript obfuscation.**
4
+
5
+ [![npm version](https://img.shields.io/npm/v/@degreesign/webapp.svg)](https://www.npmjs.com/package/@degreesign/webapp)
6
+ [![npm downloads](https://img.shields.io/npm/dm/@degreesign/webapp.svg)](https://www.npmjs.com/package/@degreesign/webapp)
7
+ [![license](https://img.shields.io/npm/l/@degreesign/webapp.svg)](./LICENSE)
8
+ [![TypeScript](https://img.shields.io/badge/TypeScript-ready-3178c6.svg)](https://www.typescriptlang.org/)
9
+ [![Webpack 5](https://img.shields.io/badge/webpack-5-8dd6f9.svg)](https://webpack.js.org/)
10
+ [![Node.js 18+](https://img.shields.io/badge/node-%3E%3D18-339933.svg)](https://nodejs.org/)
11
+
12
+ ## Table of Contents
13
+
14
+ - [What is @degreesign/webapp?](#what-is-degreesignwebapp)
15
+ - [Why @degreesign/webapp?](#why-degreesignwebapp)
16
+ - [Installation](#installation)
17
+ - [Quick Start](#quick-start)
18
+ - [Build API](#build-api)
19
+ - [File Utilities](#file-utilities)
20
+ - [Types](#types)
21
+ - [Configuration Options](#configuration-options)
22
+ - [FAQ](#faq)
23
+ - [Keywords](#keywords)
24
+ - [License](#license)
25
+
26
+ ## What is @degreesign/webapp?
27
+
28
+ `@degreesign/webapp` defines a **TypeScript-first development standard** for shipping **Progressive Web Apps (PWAs)** and **Node.js server bundles** from a single `build()` call: it is a small, dependency-light Webpack and TypeScript toolkit for building a webapp from **pure HTML, CSS and TypeScript**, with no framework runtime to ship or hydrate, so first render is immediate and page loads stay sub-second. Instead of hand-writing hundreds of lines of Webpack config, you pass one typed config object and get a production-ready build: TypeScript compilation, CSS extraction and inlining, asset copying, HTML templating, SEO and Open Graph/Twitter meta tags, `app.json` manifest, auto-registered service worker, sitemap, `robots.txt`, `.htaccess` security policies, bundle analysis and optional code obfuscation. It is a build-time developer tool — it runs in Node.js during your build, not in the browser.
29
+
30
+ ## Why @degreesign/webapp?
31
+
32
+ - **One config, whole build** — a single typed object replaces a full `webpack.config.ts` with plugins, loaders and rules.
33
+ - **PWA out of the box** — generates the web app manifest, service worker, icons, orientation and install metadata automatically.
34
+ - **SEO built in** — per-page title, description, canonical URL, Open Graph, Twitter Cards, `robots.txt` and `sitemap.xml`.
35
+ - **Typed configuration** — ships type definitions and typed configuration (`ConfigBuild`, `Page`, `PreconnectLink`).
36
+ - **Web and server bundling** — build the front-end to `public_html/` and the Node.js back-end to `server_build/` from the same package.
37
+ - **Performance defaults** — Terser minification, CSS minification, tree-shaking, content hashing and a 2 MB asset budget (configurable).
38
+ - **Optional obfuscation** — toggle `obfuscateON` to protect shipped JavaScript with `webpack-obfuscator`.
39
+ - **Secure by default** — emits `.htaccess` with HSTS, `X-Frame-Options`, Referrer-Policy, Permissions-Policy and HTTPS redirects.
40
+ - **Pure HTML + CSS + TypeScript** — no framework runtime, hydration or virtual DOM to download; pages are generated as real markup at build time for the fastest possible first paint and sub-second page loads.
41
+ - **MIT licensed and free forever.**
42
+
43
+ ## Installation
44
+
45
+ Requires **Node.js 18 or higher**.
46
+
47
+ ```bash
48
+ # npm
49
+ npm install --save-dev @degreesign/webapp webpack webpack-cli typescript ts-loader
50
+
51
+ # yarn
52
+ yarn add --dev @degreesign/webapp webpack webpack-cli typescript ts-loader
53
+
54
+ # pnpm
55
+ pnpm add -D @degreesign/webapp webpack webpack-cli typescript ts-loader
56
+ ```
57
+
58
+ ### CDN
59
+
60
+ The package is a Node.js build tool, so it is normally installed via a package manager. For quick inspection or utilities in a bundler that supports ESM CDNs, load it directly:
61
+
62
+ ```html
63
+ <script type="module">
64
+ import { readJSON, writeJSON } from "https://esm.sh/@degreesign/webapp";
65
+ </script>
66
+ ```
67
+
68
+ > **Note:** the file utilities and `build()` rely on Node.js `fs`/`path`, so CDN usage is only suitable for Node-targeted environments, not the browser runtime.
69
+
70
+ ## Quick Start
71
+
72
+ **1. Add build scripts to `package.json`:**
73
+
24
74
  ```json
25
75
  {
26
- "license": "MIT",
27
76
  "scripts": {
28
77
  "build": "webpack --config webpack.web.ts",
29
78
  "start": "webpack serve --config webpack.web.ts",
@@ -36,34 +85,8 @@ Add file `package.json` as following
36
85
  }
37
86
  ```
38
87
 
39
- ## WebApp FrontEnd
40
- WebApp front-end website configuration
88
+ **2. Create `webpack.web.ts` — a complete, copy-paste PWA build:**
41
89
 
42
- ### Folder Structure
43
- ```
44
- app_folder/
45
- ├── public_html/ # Output directory for production build
46
- ├── src/ # Source files
47
- │ ├── assets/ # Static assets
48
- │ │ ├── images/ # Image assets
49
- │ │ │ ├── favicon.ico # Favicon
50
- │ │ │ ├── app_icon.png # App icon for PWA
51
- │ │ │ └── app_cover_image.webp # Cover image for SEO
52
- │ ├── code/ # Utility scripts
53
- │ │ └── utils.ts # Shared TypeScript utilities (optional)
54
- │ ├── pages/ # Page-specific files
55
- │ │ ├── home/ # Home page
56
- │ │ │ ├── home.ts # Home page logic
57
- │ │ │ └── home.html # Home page template
58
- │ └── styles.css # Global styles
59
- ├── webpack.web.ts # Webpack configuration
60
- ├── .env # Environment variables
61
- ├── tsconfig.json # TypeScript configuration
62
- └── package.json # Project metadata and scripts
63
- ```
64
-
65
- ### Configuration
66
- Add `webpack.web.ts` file as the core of the webapp build process as following
67
90
  ```typescript
68
91
  import { build } from "@degreesign/webapp";
69
92
 
@@ -86,9 +109,9 @@ module.exports = build({
86
109
  fav_icon: "favicon.ico",
87
110
  orientation: "portrait",
88
111
  pagesList: [{
89
- uri: `home`,
90
- name: `HomePage`,
91
- description: `Progressive Web App (PWA) HomePage`,
112
+ uri: "home",
113
+ name: "HomePage",
114
+ description: "Progressive Web App (PWA) HomePage",
92
115
  }],
93
116
  htmlCommonElements: [],
94
117
  obfuscateON: false,
@@ -110,85 +133,188 @@ module.exports = build({
110
133
  });
111
134
  ```
112
135
 
113
- ## WebApp BackEnd
114
- WebApp back-end server configuration
136
+ **3. Create `webpack.server.ts` — a Node.js back-end bundle:**
137
+
138
+ ```typescript
139
+ import { build } from "@degreesign/webapp";
140
+
141
+ module.exports = build({
142
+ type: "server",
143
+ obfuscateON: true,
144
+ srcDir: "server",
145
+ productionDir: "server_build",
146
+ filesList: ["main"],
147
+ port: 3211,
148
+ });
149
+ ```
150
+
151
+ **4. Add the expected source layout:**
115
152
 
116
- ### Folder Structure
117
153
  ```
118
154
  app_folder/
119
- ├── server_build/ # Output directory for production build
120
- ├── server/ # Source files
121
- │ ├── code/ # Utility scripts
122
- │ │ └── utils.ts # Shared TypeScript utilities (optional)
123
- │ └── main.ts # Main server file
124
- ├── webpack.server.ts # Webpack configuration
125
- ├── .env # Environment variables
126
- ├── tsconfig.json # TypeScript configuration
127
- └── package.json # Project metadata and scripts
155
+ ├── public_html/ # Web output
156
+ ├── server_build/ # Server output
157
+ ├── src/
158
+ │ ├── assets/images/ # favicon.ico, app_icon.png, cover images
159
+ │ ├── code/ # common HTML + ts utils
160
+ │ ├── pages/home/
161
+ │ │ ├── home.ts
162
+ │ │ └── home.html
163
+ │ └── styles.css
164
+ ├── server/
165
+ │ └── main.ts
166
+ ├── webpack.web.ts
167
+ ├── webpack.server.ts
168
+ ├── .env
169
+ └── tsconfig.json
170
+ ```
171
+
172
+ **5. Build and run:**
173
+
174
+ ```bash
175
+ npm start # web dev server on port 3210
176
+ npm run build # web build → public_html/
177
+ npm run start_server
178
+ npm run build_server # server build → server_build/
128
179
  ```
129
180
 
130
- ### Configuration
131
- Add `webpack.server.ts` file as the core of the server build process as following
181
+ ### Use the file helper API
182
+
132
183
  ```typescript
133
- import { build } from "@degreesign/webapp";
184
+ import { readJSON, writeJSON, readData, writeData } from "@degreesign/webapp";
134
185
 
135
- module.exports = build({
136
- type: `server`,
137
- obfuscateON: true,
138
- srcDir: `server`,
139
- productionDir: `server_build`,
140
- filesList: [`main`],
141
- port: 3211,
142
- });
186
+ const config = readJSON("./config.json"); // parse a JSON file
187
+ writeJSON("./dist/output.json", { built: true }); // serialize + write JSON
188
+ const html = readData("./src/pages/home/home.html"); // read a text file
189
+ writeData("./dist/robots.txt", "User-agent: *"); // write a text file
143
190
  ```
144
191
 
145
- ## Key Configuration Notes
146
- - **Environment Variables**: Use `.env` to securely store sensitive data.
147
- - **Development Server**: Runs on `port: 3210` by default.
148
- - **PWA Support**: Customise `app_icon`, `fav_icon`, and `orientation` for a native-like experience.
149
- - **Preconnect**: `preconnectLinks` adds `<link rel="preconnect">` entries (e.g. your server base URL) to the page head, so the browser starts DNS/TCP/TLS for those origins early. Each entry is a URL string or an object with `href` and optional `crossorigin`. `crossorigin` is on by default; set `crossorigin: false` per link to disable.
150
- - **SEO Optimisation**: Set `websiteTitle`, `websiteDescription`, and `coverImage` for better search visibility.
151
- - **Pages**: Add all pages to `pagesList`.
152
-
153
- ## Getting Started
154
- 1. **Clone the Repository**:
155
- ```bash
156
- git clone https://github.com/DegreeSign/ds_webapp.git
157
- cd ds_webapp
158
- ```
159
- 2. **Install Dependencies**:
160
- ```bash
161
- yarn install
162
- ```
163
- 3. **Create Folders Structure**:
164
- Create folder structure for webapp, server, or both and add necessary files as explained above.
165
- 4. **Run Development Server**:
166
- *For WebApp*
167
- ```bash
168
- yarn start
169
- ```
170
- *For Server*
171
- ```bash
172
- yarn start_server
173
- ```
174
- 5. **Build for Production**:
175
- *For WebApp*
176
- ```bash
177
- yarn build
178
- ```
179
- Output will be in the `public_html/` directory.
180
- *For Server*
181
- ```bash
182
- yarn build_server
183
- ```
184
- Output will be in the `server_build/` directory.
185
-
186
- ## Contributing
187
- 1. Fork the repository.
188
- 2. Create a feature branch: `git checkout -b feature-name`.
189
- 3. Commit changes: `git commit -m "Add feature"`.
190
- 4. Push to the branch: `git push origin feature-name`.
191
- 5. Submit a pull request.
192
+ ## Build API
193
+
194
+ ### `build(params)`
195
+
196
+ Creates and returns a Webpack `Configuration` object. Pass `type: "webapp"` for a front-end PWA build, or `type: "server"` for a Node.js bundle.
197
+
198
+ | Export | Type | Returns | Description |
199
+ | --- | --- | --- | --- |
200
+ | `build` | `(params: ConfigBuild) => webpack.Configuration` | Webpack configuration | Central entry point. Accepts `ConfigWebApp` or `ConfigServer` (discriminated by `type`) and returns a ready-to-export Webpack config for `--config webpack.web.ts` / `webpack.server.ts`. |
201
+
202
+ ## File Utilities
203
+
204
+ Small, dependency-free Node.js helpers used internally and exported for reuse in your own build scripts.
205
+
206
+ | Export | Signature | Returns | Description |
207
+ | --- | --- | --- | --- |
208
+ | `writeData` | `(file: string, code: string) => boolean` | `true` on success, `false` on empty data or failure | Writes a UTF-8 string to `file` resolved against `process.cwd()`. |
209
+ | `writeJSON` | `(file: string, code: any) => boolean` | `true` on success, `false` on empty data or failure | Serializes a value with `JSON.stringify` and writes it via `writeData`. |
210
+ | `readData` | `(file: string, internal?: boolean) => string` | File contents or `""` on failure | Reads a UTF-8 file. When `internal` is `true`, the path is resolved relative to the package directory instead of `process.cwd()`. |
211
+ | `readJSON` | `(file: string, internal?: boolean) => any` | Parsed JSON or `undefined` on failure | Reads a file via `readData` and parses it as JSON. |
212
+
213
+ ## Types
214
+
215
+ | Export | Kind | Description |
216
+ | --- | --- | --- |
217
+ | `Page` | `interface` | A page in `pagesList`: `uri`, `name`, `description`, plus optional `short_name`, `icon`, `iconMaskable`, `shortcut`, `noindex`, `publishDate`, `coverImage`, `coverImageDescription`, `headerHTML`, `menuHTML`, `footerHTML`, `customHTML`, `isPHP`, `keywords` and `canonicalURL`. Drives per-page HTML, SEO tags, shortcuts and sitemap entries. |
218
+ | `PreconnectLink` | `interface` | A `<link rel="preconnect">` entry: `{ href: string; crossorigin?: boolean }`. `crossorigin` defaults to `true`; `preconnectLinks` also accepts a plain URL string. |
219
+
220
+ Additional public types `ConfigBuild`, `ConfigBase`, `ConfigWebApp`, `ConfigServer`, `MetaTags`, `MetaTagsInput` and `WebManifest` are exported from the package source for advanced typing.
221
+
222
+ ## Configuration Options
223
+
224
+ ### Base options (`ConfigBase`)
225
+
226
+ | Option | Type | Default | Description |
227
+ | --- | --- | --- | --- |
228
+ | `srcDir` | `string` | `src` | Source directory. |
229
+ | `productionDir` | `string` | `public_html` | Build output directory. |
230
+ | `mode` | `"development" \| "production"` | `production` | Webpack mode. |
231
+ | `obfuscateON` | `boolean` | `false` | Enable JavaScript obfuscation. |
232
+ | `minimiseON` | `boolean` | `true` | Enable JS/CSS minification. |
233
+ | `port` | `number` | `3210` | Dev server port. |
234
+ | `maxFileSizeMB` | `number` | `2` | Asset/entry performance budget in MB. |
235
+ | `resolveOptions` | `ResolveOptions` | `{}` | Extra Webpack resolve options. |
236
+ | `licenseText` | `string` | `""` | Banner text prepended to bundles. |
237
+ | `openAnalyzer` | `boolean` | `false` | Open the bundle analyzer window. |
238
+ | `includeServerModules` | `boolean` | `false` | Bundle `node_modules` into server output instead of externalizing. |
239
+
240
+ ### Web app options (`ConfigWebApp`)
241
+
242
+ | Option | Type | Required | Description |
243
+ | --- | --- | --- | --- |
244
+ | `websiteName` | `string` | yes | Application name. |
245
+ | `websiteDomain` | `string` | yes | Domain used for canonical URLs, sitemap and Open Graph. |
246
+ | `appShortName` | `string` | yes | Manifest short name. |
247
+ | `twitterUserName` | `string` | yes | Twitter handle for `twitter:site`. |
248
+ | `publishedTime` | `string` | yes | Publication timestamp (ISO 8601). |
249
+ | `author` | `string` | yes | Site author meta tag. |
250
+ | `websiteTitle` | `string` | yes | Default title / slogan. |
251
+ | `websiteDescription` | `string` | yes | Default meta description. |
252
+ | `coverImage` | `string` | yes | Social cover image (Open Graph / Twitter). |
253
+ | `coverImageDescription` | `string` | yes | Cover image alt text. |
254
+ | `background_color` | `string` | yes | Manifest background color. |
255
+ | `theme_color` | `string` | yes | Manifest/`theme-color`. |
256
+ | `appIcon` | `string` | yes | App icon path. |
257
+ | `appIconMaskable` | `string` | yes | Maskable icon path. |
258
+ | `fav_icon` | `string` | yes | Favicon path. |
259
+ | `orientation` | `"portrait" \| "landscape"` | yes | Screen orientation. |
260
+ | `pagesList` | `Page[]` | yes | Pages to generate. |
261
+ | `htmlCommonElements` | `("header"\|"footer"\|"menu")[]` | no | Shared HTML partials to inject. |
262
+ | `assetsDir` | `string` | yes | Assets directory. |
263
+ | `commonDir` | `string` | yes | Shared code/HTML directory. |
264
+ | `imagesDir` | `string` | yes | Images directory. |
265
+ | `pagesDir` | `string` | yes | Pages directory. |
266
+ | `pageHome` | `string` | yes | Home page identifier. |
267
+ | `htaccessCustom` | `string` | yes | Appended to generated `.htaccess`. |
268
+ | `startURI` | `string` | no | PWA `start_url`. |
269
+ | `language` | `string` | no | Open Graph locale. |
270
+ | `preconnectLinks` | `(string \| PreconnectLink)[]` | no | Origins to `preconnect`, CORS on by default. |
271
+ | `cssDiscardUnused` | `boolean` | no | Discard unused CSS. |
272
+ | `updateServiceWorker` | `boolean` | no | Re-version the service worker on build. |
273
+ | `onlineIndicatorFile` | `string` | no | Reference file used by the service worker. |
274
+
275
+ ### Server options (`ConfigServer`)
276
+
277
+ | Option | Type | Required | Description |
278
+ | --- | --- | --- | --- |
279
+ | `type` | `"server"` | yes | Selects the Node.js target. |
280
+ | `srcDir` | `string` | yes | Server source directory (e.g. `server`). |
281
+ | `productionDir` | `string` | yes | Server output directory (e.g. `server_build`). |
282
+ | `filesList` | `string[]` | yes | Entry names, each compiled from `./<srcDir>/<name>.ts`. |
283
+ | `includeServerModules` | `boolean` | no | Bundle dependencies instead of externalizing them. |
284
+
285
+ ## FAQ
286
+
287
+ **What is `@degreesign/webapp`?**
288
+ A TypeScript-first Webpack + TypeScript build toolkit that turns one typed config object into a production-ready webapp — a Progressive Web App built from pure HTML, CSS and TypeScript — and/or a Node.js server bundle, including SEO metadata, a PWA manifest, service worker, sitemap and security headers.
289
+
290
+ **Is it free?**
291
+ Yes. It is open source under the MIT License and free to use in personal and commercial projects.
292
+
293
+ **Does it work with Node.js and the browser?**
294
+ It is a Node.js build-time tool. `build()` and the file helpers run in Node.js (18+) during your build. The generated output — HTML, JS, CSS, manifest and service worker — is what runs in the browser.
295
+
296
+ **Does it have dependencies?**
297
+ Yes. It wraps and configures Webpack plugins such as `terser-webpack-plugin`, `clean-webpack-plugin`, `copy-webpack-plugin`, `html-webpack-plugin`, `mini-css-extract-plugin`, `css-minimizer-webpack-plugin`, `sitemap-webpack-plugin`, `webpack-obfuscator` and `webpack-bundle-analyzer`. Install it alongside `webpack`, `webpack-cli`, `typescript` and `ts-loader`.
298
+
299
+ **Does it support TypeScript?**
300
+ Yes. It ships type definitions, compiles TypeScript via `ts-loader`, and exposes fully typed configuration (`ConfigBuild`, `ConfigWebApp`, `ConfigServer`, `Page`, `PreconnectLink`).
301
+
302
+ **How are pages built?**
303
+ Each page is an `.html` fragment plus a same-named `.ts` entry, styled by CSS, compiled to real markup at build time. There is no UI runtime to ship or hydrate, so first render is immediate. The package handles bundling, assets, PWA and SEO concerns rather than UI.
304
+
305
+ **Can I use it for a Node.js back-end?**
306
+ Yes. Set `type: "server"` with `filesList` to bundle one or more Node.js entry files, with `node_modules` externalized by default.
307
+
308
+ **Can I disable minification or enable obfuscation?**
309
+ Yes. Toggle `minimiseON` and `obfuscateON` in the config.
310
+
311
+ **Where does the build output go?**
312
+ Web builds default to `public_html/` and server builds to `server_build/`; both are configurable via `productionDir`.
313
+
314
+ ## Keywords
315
+
316
+ webpack, webpack config, webpack 5, typescript, ts-loader, progressive web app, PWA, webapp, web app, webapp boilerplate, PWA boilerplate, web app template, build tool, bundler, node.js server bundling, SEO, meta tags, open graph, twitter cards, sitemap, robots.txt, service worker, web manifest, app manifest, code obfuscation, webpack-bundle-analyzer, static site, front-end build, degreesign.
192
317
 
193
318
  ## License
194
- This project is licensed under the MIT License. See the `LICENSE` file for details.
319
+
320
+ This project is licensed under the MIT License. See the [LICENSE](./LICENSE) file for details.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "license": "MIT",
3
3
  "name": "@degreesign/webapp",
4
- "version": "1.7.4",
4
+ "version": "1.7.6",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
@@ -10,8 +10,39 @@
10
10
  },
11
11
  "keywords": [
12
12
  "webpack",
13
- "webdev",
14
- "development"
13
+ "webpack-config",
14
+ "webpack-5",
15
+ "typescript",
16
+ "ts-loader",
17
+ "progressive-web-app",
18
+ "pwa",
19
+ "web-app",
20
+ "pwa-boilerplate",
21
+ "web-app-template",
22
+ "build-tool",
23
+ "bundler",
24
+ "nodejs",
25
+ "server-bundling",
26
+ "seo",
27
+ "meta-tags",
28
+ "open-graph",
29
+ "twitter-cards",
30
+ "sitemap",
31
+ "robots-txt",
32
+ "service-worker",
33
+ "web-manifest",
34
+ "app-manifest",
35
+ "code-obfuscation",
36
+ "webpack-bundle-analyzer",
37
+ "static-site",
38
+ "front-end-build",
39
+ "webapp",
40
+ "webapp-template",
41
+ "webapp-boilerplate",
42
+ "typescript-first",
43
+ "development-standard",
44
+ "performance",
45
+ "degreesign"
15
46
  ],
16
47
  "repository": {
17
48
  "type": "git",
@@ -19,7 +50,7 @@
19
50
  },
20
51
  "author": "DegreeSign",
21
52
  "homepage": "https://degreesign.com",
22
- "description": "DegreeSign webpack setup for WebApps",
53
+ "description": "TypeScript-first development standard for building a webapp — production-ready Progressive Web Apps (PWA) and Node.js servers from pure HTML, CSS and TypeScript, engineered for the fastest possible renders and sub-second page loads, generating SEO meta tags, manifest, service worker, sitemap and obfuscation from one config.",
23
54
  "bugs": {
24
55
  "url": "https://github.com/DegreeSign/ds_webapp/issues"
25
56
  },