Skip to content

ezex-io/boilerplate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project Boilerplate

A Standardized Boilerplate for starting new projects quickly and consistently.

Features

  • Templates: Ready-to-use templates for Go, TypeScript, and Rust.
  • CI/CD: GitHub Actions workflows for testing, linting, and deploying.
  • Templates: Standardized issue and pull request templates.
  • Docs: LICENSE and CONTRIBUTING.md for compliance and collaboration.

Usage

Some Notes

Go

In go.mod update the Go version to the latest.

Rust

For libraries, add Cargo.lock into .gitignore. For application, keep Cargo.lock in git source control.

TypeScript

Creating a standardized boilerplate for TypeScript is quite challenging. Many frameworks and libraries have their own conventions and tooling.

For example, the simple "Hello, World!" application in TypeScript requires five dependencies, whereas in Go and Rust, it has zero dependencies. Dependencies evolve over time, and perhaps by the time you're reading this, some may already be outdated.

With this in mind, we decided to create a simple TypeScript template and outline some key principles to follow when starting a new TypeScript-based project.

We recommend:

  • Following the Google TypeScript Style Guide.
  • Using Yarn as the package manager.
  • Using Vitest as the testing framework.
  • Using gts for linting.
  • Keeping dependencies as low as possible.
  • Avoid using packages like Husky or anything that alters the developer environment.

About Tests

Keep test files as close as possible to the source files they relate to. Avoid placing them in a separate tests folder unless they are specifically for system or integration tests.