{"id":15022493,"url":"https://github.com/storm-software/storm-stack","last_synced_at":"2025-09-13T10:39:11.560Z","repository":{"id":206730103,"uuid":"717060510","full_name":"storm-software/storm-stack","owner":"storm-software","description":"⚡ The Storm Stack monorepo contains utility applications, tools, and various libraries to create modern and scalable web applications.","archived":false,"fork":false,"pushed_at":"2025-09-13T03:44:30.000Z","size":21223,"stargazers_count":5,"open_issues_count":23,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-09-13T05:46:49.226Z","etag":null,"topics":["deepkit","onestack","storm","storm-stack","vite"],"latest_commit_sha":null,"homepage":"https://stormsoftware.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/storm-software.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":"docs/CLA.md"},"funding":{"patreon":"StormSoftware"}},"created_at":"2023-11-10T13:19:16.000Z","updated_at":"2025-09-13T03:44:33.000Z","dependencies_parsed_at":"2024-01-01T01:28:09.994Z","dependency_job_id":"8dbc135f-bbe5-422b-aa86-7732d3b30dea","html_url":"https://github.com/storm-software/storm-stack","commit_stats":{"total_commits":917,"total_committers":7,"mean_commits":131.0,"dds":0.3729552889858233,"last_synced_commit":"85ab369813bca921de5640fba1adeb5e4aff357c"},"previous_names":["storm-software/storm-stack"],"tags_count":2633,"template":false,"template_full_name":null,"purl":"pkg:github/storm-software/storm-stack","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/storm-software%2Fstorm-stack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/storm-software%2Fstorm-stack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/storm-software%2Fstorm-stack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/storm-software%2Fstorm-stack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/storm-software","download_url":"https://codeload.github.com/storm-software/storm-stack/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/storm-software%2Fstorm-stack/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274949951,"owners_count":25379537,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-13T02:00:10.085Z","response_time":70,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["deepkit","onestack","storm","storm-stack","vite"],"created_at":"2024-09-24T19:58:01.648Z","updated_at":"2025-09-13T10:39:11.549Z","avatar_url":"https://github.com/storm-software.png","language":"TypeScript","funding_links":["https://patreon.com/StormSoftware"],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\u003cimg src=\"https://public.storm-cdn.com/storm-banner.gif\" width=\"100%\" alt=\"Storm Stack\" /\u003e\u003c/div\u003e\n\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n\u003cb\u003e\n\u003ca href=\"https://stormsoftware.com\" target=\"_blank\"\u003eWebsite\u003c/a\u003e  •\n\u003ca href=\"https://github.com/storm-software/storm-stack\" target=\"_blank\"\u003eGitHub\u003c/a\u003e  •\n\u003ca href=\"https://discord.gg/MQ6YVzakM5\"\u003eDiscord\u003c/a\u003e  •  \u003ca href=\"https://stormstack.github.io/stormstack/\" target=\"_blank\"\u003eDocs\u003c/a\u003e  •  \u003ca href=\"https://stormsoftware.com/contact\" target=\"_blank\"\u003eContact\u003c/a\u003e  •\n\u003ca href=\"https://github.com/storm-software/stack/issues/new?assignees=\u0026labels=bug\u0026template=bug-report.yml\u0026title=Bug Report%3A+\"\u003eReport a Bug\u003c/a\u003e\n\u003c/b\u003e\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\nAt a high-level, **⚡ Storm Stack** is a toolchain system that generates code and other artifacts during the build and deploy processes via TypeScript transformers and static code analysis. Many modern code generation tools require you to explicitly define the structure and behavior of your code in separate schema files and/or configurations, which can be time-consuming and error-prone. Some tools even require you to learn a new SDL or write boilerplate code to wire everything together. **Storm Stack does not require any extra work - you just write your code the way you normally would, and Storm Stack does the rest**.\n\n**The goal is to allow the developer to focus on the actual application/business logic, rather than the specifics around technologies, frameworks, or cloud providers.** This is achieved by using a set of powerful tools and extensible plugins that are designed to work together.\n\nStorm Stack is largely built on top of [Deepkit](https://deepkit.io/), so our projects benefit from access to very small bytecode type definitions at runtime. **This means you have builtin serialization, deserialization, or validation logic without writing any additional code (with greatly improved performance and reduced bundle sizes when compared to popular packages like Zod, Yup, class-validator, and Valibot)**.\n\nThe Storm Stack monorepo contains the [Storm Stack engine](https://www.npmjs.com/package/@storm-stack/core) package and various plugins and tools to help developers using the toolchain. More details can be found below in the [Features](#features) section.\n\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\n\u003e [!NOTE] \n\u003e Some features of Storm Stack are opinionated to meet the needs of [Storm Software](https://stormsoftware.com); however, it should be simple to customize the behavior to fit any specific requirements you may have. If you believe any plugins include logic that should be split out into separate packages, please feel free to submit a pull request or open an issue, and we will be happy to discuss it.\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003ch3 align=\"center\"\u003e💻 Visit \u003ca href=\"https://stormsoftware.com\" target=\"_blank\"\u003estormsoftware.com\u003c/a\u003e to stay up to date with this developer\u003c/h3\u003e\n\n\u003cbr /\u003e\n\n[![github](https://img.shields.io/github/package-json/v/storm-software/storm-stack?style=for-the-badge\u0026color=1fb2a6)](https://github.com/storm-software/storm-stack)\u0026nbsp;[![Nx](https://img.shields.io/badge/Nx-17.0.2-lightgrey?style=for-the-badge\u0026logo=nx\u0026logoWidth=20\u0026\u0026color=1fb2a6)](http://nx.dev/)\u0026nbsp;[![NextJs](https://img.shields.io/badge/Next.js-14.0.2-lightgrey?style=for-the-badge\u0026logo=nextdotjs\u0026logoWidth=20\u0026color=1fb2a6)](https://nextjs.org/)\u0026nbsp;[![Commitizen friendly](https://img.shields.io/badge/commitizen-friendly-brightgreen.svg?style=for-the-badge\u0026logo=commitlint\u0026color=1fb2a6)](http://commitizen.github.io/cz-cli/)\u0026nbsp;![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg?style=for-the-badge\u0026color=1fb2a6)\u0026nbsp;![documented with docusaurus](https://img.shields.io/badge/documented_with-docusaurus-success.svg?style=for-the-badge\u0026logo=readthedocs\u0026color=1fb2a6)\u0026nbsp;![GitHub Workflow Status (with event)](https://img.shields.io/github/actions/workflow/status/storm-software/storm-stack/cr.yml?style=for-the-badge\u0026logo=github-actions\u0026color=1fb2a6)\n\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\n\u003e [!IMPORTANT] \n\u003e This repository, and the apps, libraries, and tools contained within, is still in it's initial development phase. As a result, bugs and issues are expected with it's usage. When the main development phase completes, a proper release will be performed, the packages will be available through NPM (and other distributions), and this message will be removed. However, in the meantime, please feel free to report any issues you may come across.\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- START doctoc --\u003e\n\u003c!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE --\u003e\n## Table of Contents\n\n- [Features](#features)\n  - [Engine](#engine)\n    - [@storm-stack/core](#storm-stackcore)\n    - [@storm-stack/cli](#storm-stackcli)\n  - [Plugins](#plugins)\n    - [@storm-stack/plugin-env](#storm-stackplugin-env)\n    - [@storm-stack/plugin-date](#storm-stackplugin-date)\n    - [@storm-stack/plugin-node](#storm-stackplugin-node)\n    - [@storm-stack/plugin-cloudflare-worker](#storm-stackplugin-cloudflare-worker)\n    - [@storm-stack/plugin-cli](#storm-stackplugin-cli)\n    - [@storm-stack/plugin-log-console](#storm-stackplugin-log-console)\n    - [@storm-stack/plugin-log-sentry](#storm-stackplugin-log-sentry)\n    - [@storm-stack/plugin-log-otel](#storm-stackplugin-log-otel)\n    - [@storm-stack/plugin-log-storage](#storm-stackplugin-log-storage)\n  - [Development Tools](#development-tools)\n    - [@storm-stack/devkit](#storm-stackdevkit)\n    - [@storm-stack/nx](#storm-stacknx)\n    - [eslint-plugin-storm-stack](#eslint-plugin-storm-stack)\n    - [eslint-config-storm-stack](#eslint-config-storm-stack)\n    - [@storm-stack/biome](#storm-stackbiome)\n    - [@storm-stack/tsdoc](#storm-stacktsdoc)\n    - [@storm-stack/tsconfig](#storm-stacktsconfig)\n- [Environment Configuration Help](#environment-configuration-help)\n- [Local Development](#local-development)\n  - [Build](#build)\n  - [Development Server](#development-server)\n- [Testing](#testing)\n  - [Running Unit Tests](#running-unit-tests)\n  - [Running End-to-End Tests](#running-end-to-end-tests)\n  - [Understand your workspace](#understand-your-workspace)\n- [☁ Nx Cloud](#-nx-cloud)\n  - [Distributed Computation Caching \\\u0026 Distributed Task Execution](#distributed-computation-caching--distributed-task-execution)\n- [Roadmap](#roadmap)\n- [Contributing](#contributing)\n  - [Pull Requests](#pull-requests)\n  - [Contributor License Agreement (CLA)](#contributor-license-agreement-cla)\n  - [Bug Reports](#bug-reports)\n- [Support](#support)\n- [License](#license)\n- [Contributors](#contributors)\n\n\u003c!-- END doctoc --\u003e\n\n\u003cbr /\u003e\n\n# Features\n\nThe core functionality of Storm Stack is built around the concept of a \"stack\" of tools and services that work together seamlessly. This includes everything from code generation and transformation to deployment and monitoring.\n\nThe following sections outline some of the features/publishable content included in this repository.\n\n## Engine\n\nThe _Storm Stack Engine_ is an actual class that drives the Storm Stack pipeline's commands; however, the phrase is also often used to describe the base packages containing the core architecture (primarily the [@storm-stack/core](https://www.npmjs.com/package/@storm-stack/core) and [@storm-stack/cli](https://www.npmjs.com/package/@storm-stack/cli) packages).\n\n### [@storm-stack/core](https://www.npmjs.com/package/@storm-stack/core)\n\nThe [@storm-stack/core](https://www.npmjs.com/package/@storm-stack/core) package\nincludes the Storm Stack engine - used to drive the Storm Stack pipeline's commands.\n\nThe following features are included in the package:\n\n- The `Engine` class - responsible for orchestrating the various stages of the Storm Stack pipeline. This can be used as a sort of API for driving the processes from an external tool or service.\n- Extensible architecture that allows for easy integration of new tools and services.\n- Utilities and helpers for working with the Storm Stack ecosystem.\n- Various build plugins (supported by [unplugin](https://github.com/unjs/unplugin)) that allow you to benefit from Storm Stack's features, such as code generation, transformation, and deployment, while using an external build system.\n\nSome of the supported build systems with existing plugins are:\n\n- [Vite](https://vitejs.dev/)\n- [ESBuild](https://esbuild.github.io/)\n- [Webpack](https://webpack.js.org/)\n- [Rollup](https://rollupjs.org/)\n\n### [@storm-stack/cli](https://www.npmjs.com/package/@storm-stack/cli)\n\nThis package provides a binary to interact with the Storm Stack engine via a [command-line interface](https://en.wikipedia.org/wiki/Command-line_interface).\n\nThe following features are included in the package:\n\n- Inclusion of required commands and options for Storm Stack development.\n- Utilities for managing local project dependencies and scripts.\n- Integration with the Storm Stack ecosystem for seamless project management.\n\n## Plugins\n\nThe following Storm Stack plugin packages are included in this repository:\n\n### [@storm-stack/plugin-env](https://www.npmjs.com/package/@storm-stack/plugin-env)\n\nA plugin to generate TypeScript definitions, apply static parameter values, and encourage best practices for managing environment configuration in Storm Stack applications.\n\nThe plugin provides a set of utilities for working with configuration files, including:\n\n- TypeScript definition generation for configuration schemas.\n- `$storm.env.\u003cparameter\u003e` object is used to apply static configuration values at build time with automatic type generation for improved type safety.\n- Logic to determine all used environment configurations so that they can be validated and documented later.\n- Best practice recommendations for organizing and managing configuration.\n- The `storm:env` builtin runtime module, which contains the `StormEnv` type definition and related utilities for working with configuration parameters at runtime.\n\n### [@storm-stack/plugin-date](https://www.npmjs.com/package/@storm-stack/plugin-date)\n\nA plugin package that injects a consistent interface into the application for working with dates across some popular JavaScript libraries, such as `date-fns`, `dayjs`, `luxon`, and `moment.js`. **Never feel the pressure to choose a date library again!**\n\nThis plugin was inspired by (and largely lifted from) [date-io](https://github.com/dmtrKovalenko/date-io), which provides a similar interface for date manipulation. The key difference is that this plugin will inject the date manipulation logic into the application at build time, rather than at runtime, allowing for more consistent and performant code.\n\nHuge thanks to [dmtrKovalenko](https://github.com/dmtrKovalenko) for their work on date-io.\n\n### [@storm-stack/plugin-node](https://www.npmjs.com/package/@storm-stack/plugin-node)\n\nA plugin to provide a set of utilities and best practices for building Node.js applications with Storm Stack.\n\nThe following features are included in the package:\n\n- The `$storm` context object, which provides access to various utilities and services at runtime.\n- The `storm:context` builtin runtime module, which contains the `StormContext` type definition, the `useStorm` hook to access the context (if using the `$storm` object feels uncomfortable), and other related utilities.\n- The `storm:env` builtin runtime module, which can be imported directly to access information about the runtime environment.\n- The `storm:request` builtin runtime module, which contains the `StormRequest` class to package information about the incoming request.\n- The `storm:response` builtin runtime module, which contains the `StormResponse` class to package information about the outgoing response.\n- The `storm:event` builtin runtime module, which contains the `StormEvent` class to package information about events that occur in the application.\n\n### [@storm-stack/plugin-cloudflare-worker](https://www.npmjs.com/package/@storm-stack/plugin-cloudflare-worker)\n\nA plugin that provides utilities and best practices for building Cloudflare Worker applications with Storm Stack. Key features include:\n\nThe following features are included in the package:\n\n- The `$storm` context object for accessing runtime utilities and services.\n- Built-in modules for environment, request, result, and event handling tailored for Cloudflare Workers.\n- Preset configuration for seamless deployment to the Cloudflare platform.\n\n### [@storm-stack/plugin-cli](https://www.npmjs.com/package/@storm-stack/plugin-cli)\n\nA plugin for creating command-line applications using Storm Stack.\n\nThe following features are included in the package:\n\n- CLI scaffolding and context management via the `$storm` object.\n- Utilities for parsing arguments, handling input/output, and managing CLI commands.\n- Built-in modules for environment and event handling in CLI contexts.\n\n### [@storm-stack/plugin-log-console](https://www.npmjs.com/package/@storm-stack/plugin-log-console)\n\nProvides logging functionality for Storm Stack applications by writing log messages to the console.\n\nThe following features are included in the package:\n\n- Console-based log adapter for development and debugging.\n- Integration with the Storm Stack logging system for consistent log formatting.\n\n### [@storm-stack/plugin-log-sentry](https://www.npmjs.com/package/@storm-stack/plugin-log-sentry)\n\nEnables logging to [Sentry](https://sentry.io) for error tracking and monitoring.\n\nThe following features are included in the package:\n\n- Sentry log adapter for capturing errors and events.\n- Configuration options for Sentry DSN and environment.\n\n### [@storm-stack/plugin-log-otel](https://www.npmjs.com/package/@storm-stack/plugin-log-otel)\n\nProvides logging to [OpenTelemetry](https://opentelemetry.io/) collectors for distributed tracing and monitoring.\n\nThe following features are included in the package:\n\n- OpenTelemetry log adapter for exporting traces and metrics.\n- Integration with Storm Stack's logging and event system.\n\n### [@storm-stack/plugin-log-storage](https://www.npmjs.com/package/@storm-stack/plugin-log-storage)\n\nAllows log messages to be written to a specified storage type (e.g., file system, cloud storage).\n\nThe following features are included in the package:\n\n- Storage log adapter for persistent log management.\n- Configurable storage backends and retention policies.\n\n## Development Tools\n\nThe following packages are included in this repository to assist with the\ndevelopment/repository management process and are available for use in any\napplication.\n\n### [@storm-stack/devkit](https://www.npmjs.com/package/@storm-stack/devkit)\n\nA set of base plugins, shared templates, and helpful utilities for extending Storm Stack.\n\nThe following features are included in the package:\n\n- Multiple base plugins for common functionality that could be extended or customized in a personal plugin to meet your specific needs.\n- Shared template files for generating boilerplate code.\n\n### [@storm-stack/nx](https://www.npmjs.com/package/@storm-stack/nx)\n\nAn [Nx](https://nx.dev/) plugin to manage monorepos using Storm Stack for building and deploying applications.\n\nThe following features are included in the package:\n\n- Nx generators and executors tailored for Storm Stack workflows.\n- Enhanced project graph visualization and dependency management.\n\n### [eslint-plugin-storm-stack](https://www.npmjs.com/package/eslint-plugin-storm-stack)\n\nAn [ESLint](https://eslint.org/) plugin to enforce code quality and best practices in Storm Stack projects.\n\nThe following features are included in the package:\n\n- Custom ESLint rules for Storm Stack conventions.\n- Integration with shared configuration for consistency across packages.\n\n### [eslint-config-storm-stack](https://www.npmjs.com/package/eslint-config-storm-stack)\n\nA shared [ESLint](https://eslint.org/) configuration for Storm Stack repositories.\n\nThe following features are included in the package:\n\n- Predefined rulesets for JavaScript/TypeScript projects.\n- Easy integration with ESLint for consistent code style.\n\n### [@storm-stack/biome](https://www.npmjs.com/package/@storm-stack/biome)\n\nA shared [Biome](https://biomejs.dev/) configuration for Storm Stack projects.\n\nThe following features are included in the package:\n\n- Pre-configured Biome settings for formatting and linting.\n- Inclusion of required globals and rules for Storm Stack development.\n\n### [@storm-stack/tsdoc](https://www.npmjs.com/package/@storm-stack/tsdoc)\n\nA shared [TSDoc](https://tsdoc.org/) configuration for Storm Stack projects.\n\nThe following features are included in the package:\n\n- Pre-configured TSDoc settings for consistent documentation.\n- Inclusion of required tags and rules for Storm Stack development.\n\n### [@storm-stack/tsconfig](https://www.npmjs.com/package/@storm-stack/tsconfig)\n\nA shared [TypeScript](https://www.typescriptlang.org/) configuration for Storm Stack projects.\n\nThe following features are included in the package:\n\n- Pre-configured TypeScript settings for consistent development.\n- Inclusion of required compiler options and rules for Storm Stack development.\n\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\n\u003cb\u003e\u003ca href=\"https://github.com/storm-software/storm-stack\" target=\"_blank\"\u003eBe sure to ⭐ this repository on GitHub so you can keep up to date on any daily progress!\u003c/a\u003e\n\u003c/b\u003e\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\u003cdiv align=\"right\"\u003e[ \u003ca href=\"#table-of-contents\"\u003eBack to top ▲\u003c/a\u003e ]\u003c/div\u003e\n\u003cbr /\u003e\n\n# Environment Configuration Help\n\nIf you run into any issues while trying to run any of the monorepo's code\nlocally, please reach out to us on [Discord](https://discord.gg/MQ6YVzakM5). See\nthe [Support](#support) section for more information.\n\n\u003cdiv align=\"right\"\u003e[ \u003ca href=\"#table-of-contents\"\u003eBack to top ▲\u003c/a\u003e ]\u003c/div\u003e\n\u003cbr /\u003e\n\n# Local Development\n\nOnce the code is pulled locally, open a command prompt and run `pnpm install` in\nthe root repo directory (/storm-stack).\n\nMore information can be found in the\n[Open System documentation](https://storm-software.github.io/storm-stack/docs/getting-started/installation).\n\n\u003cdiv align=\"right\"\u003e[ \u003ca href=\"#table-of-contents\"\u003eBack to top ▲\u003c/a\u003e ]\u003c/div\u003e\n\u003cbr /\u003e\n\n## Build\n\nRun `pnpm build` to build the project. The build artifacts will be stored in the\n`dist/` directory. Use the `--prod` flag for a production build.\n\n\u003cdiv align=\"right\"\u003e[ \u003ca href=\"#table-of-contents\"\u003eBack to top ▲\u003c/a\u003e ]\u003c/div\u003e\n\u003cbr /\u003e\n\n## Development Server\n\nRun `pnpm serve` for a dev server. Navigate to \u003chttp://localhost:4200/\u003e. The app\nwill automatically reload if you change any of the source files.\n\n\u003cdiv align=\"right\"\u003e[ \u003ca href=\"#table-of-contents\"\u003eBack to top ▲\u003c/a\u003e ]\u003c/div\u003e\n\u003cbr /\u003e\n\n# Testing\n\nOpen System uses [Jest](https://jestjs.io/) for unit testing and\n[Cypress](https://www.cypress.io/) for end-to-end testing.\n\n\u003cdiv align=\"right\"\u003e[ \u003ca href=\"#table-of-contents\"\u003eBack to top ▲\u003c/a\u003e ]\u003c/div\u003e\n\u003cbr /\u003e\n\n## Running Unit Tests\n\nRun `pnpm test` to execute the unit tests via [Jest](https://jestjs.io).\n\nRun `pnpm affected:test` to execute the unit tests affected by a change.\n\n\u003cdiv align=\"right\"\u003e[ \u003ca href=\"#table-of-contents\"\u003eBack to top ▲\u003c/a\u003e ]\u003c/div\u003e\n\u003cbr /\u003e\n\n## Running End-to-End Tests\n\nRun `pnpm e2e` to execute the end-to-end tests via\n[Cypress](https://www.cypress.io).\n\nRun `pnpm affected:e2e` to execute the end-to-end tests affected by a change.\n\n\u003cdiv align=\"right\"\u003e[ \u003ca href=\"#table-of-contents\"\u003eBack to top ▲\u003c/a\u003e ]\u003c/div\u003e\n\u003cbr /\u003e\n\n## Understand your workspace\n\nRun `pnpm graph` to see a diagram of the dependencies of the Open System\nprojects.\n\n\u003cdiv align=\"right\"\u003e[ \u003ca href=\"#table-of-contents\"\u003eBack to top ▲\u003c/a\u003e ]\u003c/div\u003e\n\u003cbr /\u003e\n\n# ☁ Nx Cloud\n\nNx caches the output of any previously run command such as testing and building,\nso it can replay the cached results instead of rerunning it. Nx Cloud allows you\nto share the computation cache across everyone in your team and CI.\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://pub-4661138852db4e5da99a6660fbf9b633.r2.dev/Nx Cloud - Dashboard.png\" width=\"100%\" alt=\"Nx Cloud - Dashboard\" /\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"right\"\u003e[ \u003ca href=\"#table-of-contents\"\u003eBack to top ▲\u003c/a\u003e ]\u003c/div\u003e\n\u003cbr /\u003e\n\n## Distributed Computation Caching \u0026 Distributed Task Execution\n\nNx Cloud pairs with Nx in order to enable you to build and test code more\nrapidly, by up to 10 times. Even teams that are new to Nx can connect to Nx\nCloud and start saving time instantly.\n\nTeams using Nx gain the advantage of building full-stack applications with their\npreferred framework alongside Nx’s advanced code generation and project\ndependency graph, plus a unified experience for both frontend and backend\ndevelopers.\n\nVisit [Nx Cloud](https://nx.app/) to learn more.\n\n\u003cdiv align=\"right\"\u003e[ \u003ca href=\"#table-of-contents\"\u003eBack to top ▲\u003c/a\u003e ]\u003c/div\u003e\n\u003cbr /\u003e\n\n# Roadmap\n\nSee the [open issues](https://github.com/storm-software/storm-stack/issues) for\na list of proposed features (and known issues).\n\n- [Top Feature Requests](https://github.com/storm-software/storm-stack/issues?q=label%3Aenhancement+is%3Aopen+sort%3Areactions-%2B1-desc)\n  (Add your votes using the 👍 reaction)\n- [Top Bugs](https://github.com/storm-software/storm-stack/issues?q=is%3Aissue+is%3Aopen+label%3Abug+sort%3Areactions-%2B1-desc)\n  (Add your votes using the 👍 reaction)\n- [Newest Bugs](https://github.com/storm-software/storm-stack/issues?q=is%3Aopen+is%3Aissue+label%3Abug)\n\n\u003cdiv align=\"right\"\u003e[ \u003ca href=\"#table-of-contents\"\u003eBack to top ▲\u003c/a\u003e ]\u003c/div\u003e\n\u003cbr /\u003e\n\n# Contributing\n\nFirst off, thanks for taking the time to contribute! Contributions are what\nmakes the open-source community such an amazing place to learn, inspire, and\ncreate. Any contributions you make will benefit everybody else and are **greatly\nappreciated**.\n\nPlease read through the [contributing guidelines](.github/CONTRIBUTING.md) so you know what\nto expect in terms of development and code style. We also have a\n[Code of Conduct](.github/CODE_OF_CONDUCT.md) that we expect all contributors to\nadhere to. Please read it before contributing.\n\n\u003cdiv align=\"right\"\u003e[ \u003ca href=\"#table-of-contents\"\u003eBack to top ▲\u003c/a\u003e ]\u003c/div\u003e\n\u003cbr /\u003e\n\n## Pull Requests\n\nBefore you submit a pull request (PR), please ensure all [lefthook](https://lefthook.dev/) hooks pass. These hooks will run automatically when you commit your changes.\n\n\u003cdiv align=\"right\"\u003e[ \u003ca href=\"#table-of-contents\"\u003eBack to top ▲\u003c/a\u003e ]\u003c/div\u003e\n\u003cbr /\u003e\n\n## Contributor License Agreement (CLA)\n\nIf you have **not** yet signed the Contributor License Agreement (CLA), add a PR comment containing the exact text:\n\n```text\nI have read the CLA Document and I hereby sign the CLA\n```\n\nThe CLA‑Assistant bot will turn the PR status green once all authors have signed.\n\n\u003cdiv align=\"right\"\u003e[ \u003ca href=\"#table-of-contents\"\u003eBack to top ▲\u003c/a\u003e ]\u003c/div\u003e\n\u003cbr /\u003e\n\n## Bug Reports\n\nPlease try to create bug reports that are:\n\n- _Reproducible._ Include steps to reproduce the problem.\n- _Specific._ Include as much detail as possible: which version, what\n  environment, etc.\n- _Unique._ Do not duplicate existing opened issues.\n- _Scoped to a Single Bug._ One bug per report.\n\n\u003cdiv align=\"right\"\u003e[ \u003ca href=\"#table-of-contents\"\u003eBack to top ▲\u003c/a\u003e ]\u003c/div\u003e\n\u003cbr /\u003e\n\n# Support\n\nReach out to the maintainer at one of the following places:\n\n- [Contact](https://stormsoftware.com/contact)\n- [GitHub discussions](https://github.com/storm-software/storm-stack/discussions)\n- \u003ccontact@stormsoftware.com\u003e\n\n\u003cdiv align=\"right\"\u003e[ \u003ca href=\"#table-of-contents\"\u003eBack to top ▲\u003c/a\u003e ]\u003c/div\u003e\n\u003cbr /\u003e\n\n# License\n\nThis project is licensed under the **Apache License 2.0**. Feel free to edit and\ndistribute this template as you like. If you have any specific questions, please\nreach out to the Storm Software development team.\n\nSee [LICENSE](LICENSE) for more information.\n\n\u003cbr /\u003e\n\n[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fstorm-software%2Fstorm-stack.svg?type=large\u0026issueType=license)](https://app.fossa.io/projects/git%2Bgithub.com%2Fstorm-software%2Fstorm-stack?ref=badge_large\u0026issueType=license)\n\n\u003cdiv align=\"right\"\u003e[ \u003ca href=\"#table-of-contents\"\u003eBack to top ▲\u003c/a\u003e ]\u003c/div\u003e\n\u003cbr /\u003e\n\n# Contributors\n\nThanks goes to these wonderful people\n([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://www.sullypat.com/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/99053093?v=4?s=100\" width=\"100px;\" alt=\"Patrick Sullivan\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ePatrick Sullivan\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#design-sullivanpj\" title=\"Design\"\u003e🎨\u003c/a\u003e \u003ca href=\"https://github.com/storm-software/storm-stack/commits?author=sullivanpj\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"#tool-sullivanpj\" title=\"Tools\"\u003e🔧\u003c/a\u003e \u003ca href=\"https://github.com/storm-software/storm-stack/commits?author=sullivanpj\" title=\"Documentation\"\u003e📖\u003c/a\u003e \u003ca href=\"https://github.com/storm-software/storm-stack/commits?author=sullivanpj\" title=\"Tests\"\u003e⚠️\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"https://tylerbenning.com/\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/7265547?v=4?s=100\" width=\"100px;\" alt=\"Tyler Benning\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eTyler Benning\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#design-tbenning\" title=\"Design\"\u003e🎨\u003c/a\u003e\u003c/td\u003e\n      \u003ctd align=\"center\" valign=\"top\" width=\"14.28%\"\u003e\u003ca href=\"http://stormsoftware.com\"\u003e\u003cimg src=\"https://avatars.githubusercontent.com/u/149802440?v=4?s=100\" width=\"100px;\" alt=\"Stormie\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eStormie\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#maintenance-stormie-bot\" title=\"Maintenance\"\u003e🚧\u003c/a\u003e\u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tbody\u003e\n  \u003ctfoot\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" size=\"13px\" colspan=\"7\"\u003e\n        \u003cimg src=\"https://raw.githubusercontent.com/all-contributors/all-contributors-cli/1b8533af435da9854653492b1327a23a4dbd0a10/assets/logo-small.svg\"\u003e\n          \u003ca href=\"https://all-contributors.js.org/docs/en/bot/usage\"\u003eAdd your contributions\u003c/a\u003e\n        \u003c/img\u003e\n      \u003c/td\u003e\n    \u003c/tr\u003e\n  \u003c/tfoot\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-restore --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the\n[all-contributors](https://github.com/all-contributors/all-contributors)\nspecification. Contributions of any kind welcome!\n\n\u003cdiv align=\"right\"\u003e[ \u003ca href=\"#table-of-contents\"\u003eBack to top ▲\u003c/a\u003e ]\u003c/div\u003e\n\u003cbr /\u003e\n\n\u003chr /\u003e\n\u003cbr /\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003cimg src=\"https://public.storm-cdn.com/brand-banner.png\" width=\"100%\" alt=\"Storm Software\" /\u003e\n\u003c/div\u003e\n\u003cbr /\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003ca href=\"https://stormsoftware.com\" target=\"_blank\"\u003eWebsite\u003c/a\u003e  •  \u003ca href=\"https://stormsoftware.com/contact\" target=\"_blank\"\u003eContact\u003c/a\u003e  •  \u003ca href=\"https://linkedin.com/in/patrick-sullivan-865526b0\" target=\"_blank\"\u003eLinkedIn\u003c/a\u003e  •  \u003ca href=\"https://medium.com/@pat.joseph.sullivan\" target=\"_blank\"\u003eMedium\u003c/a\u003e  •  \u003ca href=\"https://github.com/storm-software\" target=\"_blank\"\u003eGitHub\u003c/a\u003e  •  \u003ca href=\"https://keybase.io/sullivanp\" target=\"_blank\"\u003eOpenPGP Key\u003c/a\u003e\n\u003c/div\u003e\n\n\u003cdiv align=\"center\"\u003e\n\u003cb\u003eFingerprint:\u003c/b\u003e 1BD2 7192 7770 2549 F4C9 F238 E6AD C420 DA5C 4C2D\n\u003c/div\u003e\n\u003cbr /\u003e\n\nStorm Software is an open source software development organization and creator\nof Acidic, StormStack and StormCloud.\n\nOur mission is to make software development more accessible. Our ideal future is\none where anyone can create software without years of prior development\nexperience serving as a barrier to entry. We hope to achieve this via LLMs,\nGenerative AI, and intuitive, high-level data modeling/programming languages.\n\nJoin us on [Discord](https://discord.gg/MQ6YVzakM5) to chat with the team,\nreceive release notifications, ask questions, and get involved.\n\nIf this sounds interesting, and you would like to help us in creating the next\ngeneration of development tools, please reach out on our\n[website](https://stormsoftware.com/contact) or join our\n[Slack](https://join.slack.com/t/storm-software/shared_invite/zt-2gsmk04hs-i6yhK_r6urq0dkZYAwq2pA)\nchannel!\n\n\u003cbr /\u003e\n\n\u003cdiv align=\"center\"\u003e\u003ca href=\"https://stormsoftware.com\" target=\"_blank\"\u003e\u003cimg src=\"https://public.storm-cdn.com/icon-fill.png\" alt=\"Storm Software\" width=\"200px\"/\u003e\u003c/a\u003e\u003c/div\u003e\n\u003cbr /\u003e\n\u003cdiv align=\"center\"\u003e\u003ca href=\"https://stormsoftware.com\" target=\"_blank\"\u003e\u003cimg src=\"https://public.storm-cdn.com/visit-us-text.svg\" alt=\"Visit us at stormsoftware.com\" height=\"90px\"/\u003e\u003c/a\u003e\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstorm-software%2Fstorm-stack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstorm-software%2Fstorm-stack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstorm-software%2Fstorm-stack/lists"}