diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..2c07726 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,10 @@ + + + +## Local testing + +To verify the generator before publishing: + +1. Run `npm pack` in this repository to produce a tarball (for example `create-tinker-stack-0.2.2.tgz`). +2. In a temporary directory, execute `npx --yes create-tinker-stack@file:/absolute/path/to/create-tinker-stack-0.2.2.tgz`. + - Replace the path with the absolute path to the tarball from step 1 (npm `create` does not currently support `file:` specifiers). diff --git a/README.md b/README.md index 856f863..5957604 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,15 @@ This is a [npm Template](https://remix.run/docs/en/main/guides/templates) for a It puts emphasis on rapid prototyping and a prototype-driven development ([Pixar Planning](https://www.youtube.com/watch?v=gbuWJ48T0bE&t=1294s)). +The prototypes are using a virtual and ephemeral backend, so changes can be made very quickly without any need for +data migrations on schema changes. + +Stakeholders can test a fully working UI before a single line of backend code has been written. + +Test UI concepts on day 1, iterate on them with the designer on day 2 and present them to the customer on day 3. + +The API to the backend has usually had several major iterations before a backend developer even gets involved. + ## What is included? This monorepo contains the following packages/apps: @@ -12,34 +21,23 @@ This monorepo contains the following packages/apps: ### Apps and Packages - A prototype for the application, based on React Router SPA. -- A package that provides the domain types and enums. -- A documentation in Antora (AsciiDoc) format. +- A package that provides the domain types and enums that can be shared with the backend. +- A documentation in [Antora](https://antora.org/) (AsciiDoc) format. - A package that provides synthetic data for the applications using [Faker.js](https://fakerjs.dev/). - A package that provides a mock API via service workers using [MSW](https://mswjs.io/). -- A component library that is shared by the main application and the prototype. +- A component library that is shared by the main application and the prototype (still empty). - ESLint and TypeScript configurations that are shared throughout the monorepo. ### Features -- Monorepo based on ESM standards. -- Turborepo for building and running the monorepo. -- Pre-Configured CI Pipeline for Gitlab CI. -- Continuous deployment for the prototype and preview environments for merge-requests. -- Automatic deployment of the documentation to Gitlab Pages. +- [TypeScript](https://www.typescriptlang.org/) Monorepo based on ESM standards. +- Turborepo setup for building and running the monorepo. - Code formatting with [Prettier](https://prettier.io/) and linting with [ESLint](https://eslint.org/). -Each package/app is written in [TypeScript](https://www.typescriptlang.org/). - -The prototype is automatically deployed to a preview server on a push to the `main` branch or a -tagged commit. - ## Documentation -The developer documentation is located in the `docs` folder. It is automatically published via -Gitlab Pages. - The project documentation is written in [AsciiDoc](https://asciidoctor.org/) and is generated using [Antora](https://antora.org/). @@ -48,13 +46,7 @@ The project documentation is written in [AsciiDoc](https://asciidoctor.org/) and To get started, run the following command: ```bash -npm create tinker-stack +npm create tinker-stack@latest ``` -### Local testing - -To verify the generator before publishing: - -1. Run `npm pack` in this repository to produce a tarball (for example `create-tinker-stack-0.2.2.tgz`). -2. In a temporary directory, execute `npx --yes create-tinker-stack@file:/absolute/path/to/create-tinker-stack-0.2.2.tgz`. - - Replace the path with the absolute path to the tarball from step 1 (npm `create` does not currently support `file:` specifiers). +This will create a new project based on the Tinker Stack.