Skip to main content

Welcome!

@spa-tools is a collection of packages aimed at helping engineers better-build single-page applications. It came about after years of shipping real-world, business-focused SPAs and then taking a handful of the resulting wants+learnings and distilling them into a set of packages that can be used in any modern Web project.

TypeScript First
Zero Dependencies
Small Footprint
Tree-shakable

Motivation

Aside from the earnest intent of giving back to the community, the primary motivation is to offer frontend developers simple and efficient alternatives to other webapp-focused libraries that can sometimes pile up in the kitchen sink.

Ideation

Got an idea for a new package or feature? We have fun solving problems and making repetitive tasks easier and more efficient. Share your ideas and we promise to consider.

To do so, please create an issue on the @spa-tools monorepo in GitHub.

Contributing

If you're interested in contributing to @spa-tools, please first create an issue on the @spa-tools monorepo in GitHub or comment on an existing issue. From there we can discuss the feature or bugfix you're interested in and how best to approach it. In terms of workflow, we use the standard approach of forking the repo, creating a PR, and merging after tesing/approval.

Unit Test Coverage

All packages in @spa-tools require 100% unit test coverage on logic. This is a condition for all PRs to be merged whether you're adding a new feature or fixing a bug.

The only exception is when native code is being wrapped and coverage is not feasible or is redundant, either of which can be discussed on a case-by-case basis during the approval process.

License

All packages in @spa-tools are licensed under the MIT license. Copyright © 2024, Ryan Howard (rollercodester). All rights reserved.