Welcome to phi school's project-templates
repository.
Here, you'll find standardized templates to aid rapid and consistent development,
ensuring alignment with phi school's best practices.
The project-templates
repository is dedicated to maintaining a curated collection of templates. These are designed to seamlessly integrate high-quality tools, empowering developers to swiftly tackle complex problems with well-implemented, scalable solutions.
Our approach to template design is rooted in continuous experimentation and direct developer feedback. Through this, we identify ideal tool combinations, patterns, and practices that support cohesive collaboration and yield superior results.
We remain independent from any specific vendors, frameworks, languages, and paradigms. Our goal is to objectively evaluate technologies and understand their trade-offs. We prioritize open-source, platform-neutral solutions that offer both developers and users the greatest degree of autonomy while accommodating diverse infrastructures.
As technology progresses, we will continually re-evaluate our toolset. Our commitment is to always incorporate tools that provide the best in performance, developer experience, and stability.
The following table provides an overview of the templates currently included in the repository:
Template Name | Description | Features |
---|---|---|
node-ts-monorepo | A setup for a Node.js TypeScript monorepo in a reproducible, isolated dev environment. Ideal for managing multiple packages within a single repository. | Devbox, Turborepo, pnpm workspaces, Changesets, GitHub Actions, tsup, Vitest, ESLint, Prettier, and more. |
node-ts-package | A single-package repository or "polyrepo" optimized for streamlined development and distribution. | Devbox, pnpm, semantic-release, GitHub Actions, tsup, Vitest, ESLint, Prettier, and more. |
readme | A standardized template for creating README files. Ensures consistent documentation across Acme projects. |
Note
For specific installation and usage instructions, refer to each respective template'sREADME.md
.
Templates can be most efficiently installed using degit, which you can install globally with your preferred package manager:
pnpm install -g degit
# OR
npm install -g degit
# OR
yarn global add degit
# OR
nix-env -iA nixpkgs.nodePackages.degit
Additionally, many templates make use of Devbox to create a reproducible, isolated dev environment. Devbox is based on the superior Nix Package Manager. See Installing Devbox to quickly get started.
With degit
installed, run the following command, replacing <TEMPLATE_NAME>
with the name of the desired template, and <YOUR_PROJECT_NAME>
with your desired project name:
degit phi-school/templates/<TEMPLATE_NAME> <YOUR_PROJECT_NAME>
cd <YOUR_PROJECT_NAME>
Feedback and contributions are encouraged! If you know of a superior technology or implementation that is not included in our templates, please initiate a discussion and make a case for it. As the technological landscape is vast and continually evolving, we remain open-minded and constantly question our own assumptions.
Please see the Contributing Guide for more information.
This project is released under the MIT License. © 2023-Present phi school