Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/joduplessis/noom-tools
Boilerplate & toolkit for bootstrapping real time component-driven JAM-Stack applications. 📦
https://github.com/joduplessis/noom-tools
fastify jamstack react storybook typescript websocket
Last synced: about 1 month ago
JSON representation
Boilerplate & toolkit for bootstrapping real time component-driven JAM-Stack applications. 📦
- Host: GitHub
- URL: https://github.com/joduplessis/noom-tools
- Owner: joduplessis
- License: mit
- Created: 2022-02-23T17:10:38.000Z (almost 3 years ago)
- Default Branch: main
- Last Pushed: 2022-04-01T12:09:48.000Z (almost 3 years ago)
- Last Synced: 2024-11-06T17:52:09.476Z (3 months ago)
- Topics: fastify, jamstack, react, storybook, typescript, websocket
- Language: TypeScript
- Homepage:
- Size: 1.09 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Noom Tools v0.0.1
> This project is work-in-progress ⚠️
Noom Tools is an opinionated boilerplate for creating realtime & component driven JAMStack apps.
## What does this solve?
There are usually things that every product/project needs to do - Noom Tools aims to be a starter kit for building quickly without a lot of reliance on 3rd party libs & frameworks.
- Typescript & linting everywhere
- A RESTful API built with Fastify
- API route schemas
- API Swagger documentation
- A component library & frontend built with React (already ingrated with the API)
- Realtime communication using websockets, Socket.io & Redis (for scaling the service)
- Custom JWT based authentication & scopes
- Tenant security at API level & also websocket subscription level
- Mail service for integrating Postmark (easily replacable by any other service)
- Secure S3 file uploads & downloads (Digital Ocean Spaces is supported too)
- TypeOrm integration
- A publishable UI library powered by Storybook
- Component level tests using Testing Library
- Frontend integration tests & prelim tests using Testing Library
- Test setup & some preliminary API tests with Supertest & Tap
- Prettier integration for a post-commit hook
- PubSub service for the frontend
- useReducer/useContext setup for managing state Redux-style
- Storage for the frontend using LocalStorage (not cookies)
- Sass everywhere for styles using [BEM](http://getbem.com/)
- A modular pattern for building a frontend application in a scalable way
- Sentry integration for catching errors
- React Query for cache & fetching data
- A customizable webpack config geared for multi stage deployments
- A set of easy to use React Hooks that makes integrating difficult tasks easy, listening for websocket events (using `websocket.hook`) is as simple as:```javascript
const { messageListener } = useSubscription();messageListener("user-007", (message) => {
// Do something here with the message
});
```## What this isn't (or doesn't have)
- GraphQL based
- Styled Components/Emotion based
- A finished & complete product
- An unopinionated approach (sorry!)## Roadmap
- More components
- More complete backend API
- More complete frontend app
- Documentation - please see each folder for a README with more details
- More tests
- Better type usages
- Terraform deployment guide (TBC)---
Any feedback is of course welcome!