{"id":18523571,"url":"https://github.com/joduplessis/noom-tools","last_synced_at":"2026-04-09T12:51:34.622Z","repository":{"id":134970465,"uuid":"462832225","full_name":"joduplessis/noom-tools","owner":"joduplessis","description":"Boilerplate \u0026 toolkit for bootstrapping real time component-driven JAM-Stack applications. 📦","archived":false,"fork":false,"pushed_at":"2022-04-01T12:09:48.000Z","size":1141,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-12-26T00:23:08.520Z","etag":null,"topics":["fastify","jamstack","react","storybook","typescript","websocket"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/joduplessis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-02-23T17:10:38.000Z","updated_at":"2022-07-09T07:59:28.000Z","dependencies_parsed_at":null,"dependency_job_id":"67882f32-2a77-4c83-966f-580d30c919cc","html_url":"https://github.com/joduplessis/noom-tools","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joduplessis%2Fnoom-tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joduplessis%2Fnoom-tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joduplessis%2Fnoom-tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/joduplessis%2Fnoom-tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/joduplessis","download_url":"https://codeload.github.com/joduplessis/noom-tools/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239239352,"owners_count":19605492,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fastify","jamstack","react","storybook","typescript","websocket"],"created_at":"2024-11-06T17:36:17.201Z","updated_at":"2025-12-30T23:05:01.331Z","avatar_url":"https://github.com/joduplessis.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Noom Tools v0.0.1\n\n\u003e This project is work-in-progress ⚠️\n\nNoom Tools is an opinionated boilerplate for creating realtime \u0026 component driven JAMStack apps.\n\n## What does this solve?\n\nThere 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 \u0026 frameworks.\n\n- Typescript \u0026 linting everywhere\n- A RESTful API built with Fastify\n- API route schemas\n- API Swagger documentation\n- A component library \u0026 frontend built with React (already ingrated with the API)\n- Realtime communication using websockets, Socket.io \u0026 Redis (for scaling the service)\n- Custom JWT based authentication \u0026 scopes\n- Tenant security at API level \u0026 also websocket subscription level\n- Mail service for integrating Postmark (easily replacable by any other service)\n- Secure S3 file uploads \u0026 downloads (Digital Ocean Spaces is supported too)\n- TypeOrm integration\n- A publishable UI library powered by Storybook\n- Component level tests using Testing Library\n- Frontend integration tests \u0026 prelim tests using Testing Library\n- Test setup \u0026 some preliminary API tests with Supertest \u0026 Tap\n- Prettier integration for a post-commit hook\n- PubSub service for the frontend\n- useReducer/useContext setup for managing state Redux-style\n- Storage for the frontend using LocalStorage (not cookies)\n- Sass everywhere for styles using [BEM](http://getbem.com/)\n- A modular pattern for building a frontend application in a scalable way\n- Sentry integration for catching errors\n- React Query for cache \u0026 fetching data\n- A customizable webpack config geared for multi stage deployments\n- 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:\n\n```javascript\nconst { messageListener } = useSubscription();\n\nmessageListener(\"user-007\", (message) =\u003e {\n  // Do something here with the message\n});\n```\n\n## What this isn't (or doesn't have)\n\n- GraphQL based\n- Styled Components/Emotion based\n- A finished \u0026 complete product\n- An unopinionated approach (sorry!)\n\n## Roadmap\n\n- More components\n- More complete backend API\n- More complete frontend app\n- Documentation - please see each folder for a README with more details\n- More tests\n- Better type usages\n- Terraform deployment guide (TBC)\n\n---\n\nAny feedback is of course welcome!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoduplessis%2Fnoom-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjoduplessis%2Fnoom-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjoduplessis%2Fnoom-tools/lists"}