diff --git a/README.md b/README.md index 52a70bad..10e4678d 100644 --- a/README.md +++ b/README.md @@ -92,6 +92,53 @@ You'll need to download the package manager used with this repo. You can install it by visiting [deno.com](https://deno.com/) and following the installation instructions listed on the home page. +### Development + +Install the dependencies. + +```bash +deno i +``` + +Start the development server: + +```bash +deno task dev +``` + +### Building and Packaging + +Build the project: + +```bash +deno task build +``` + +GZip the output: + +```bash +deno task package +``` + +### Why Deno? + +Meshtastic Web uses Deno as its development platform for several compelling +reasons: + +- **Built-in Security**: Deno's security-first approach requires explicit + permissions for file, network, and environment access, reducing vulnerability + risks. +- **TypeScript Support**: Native TypeScript support without additional + configuration, enhancing code quality and developer experience. +- **Modern JavaScript**: First-class support for ESM imports, top-level await, + and other modern JavaScript features. +- **Simplified Tooling**: Built-in formatter, linter, test runner, and bundler + eliminate the need for multiple third-party tools. +- **Reproducible Builds**: Lockfile ensures consistent builds across all + environments. +- **Web Standard APIs**: Uses browser-compatible APIs, making code more portable + between server and client environments. + ### Debugging #### Debugging with React Scan @@ -135,31 +182,3 @@ This will allow you to discover the following about your components and pages: Use these insights to apply targeted optimizations like `React.memo()`, `useCallback()`, or `useMemo()` where they'll have the most impact. - -### Building and Packaging - -Build the project: - -```bash -deno task build -``` - -GZip the output: - -```bash -deno task package -``` - -### Development - -Install the dependencies. - -```bash -deno i -``` - -Start the development server: - -```bash -deno task dev -```