{"id":15408185,"url":"https://github.com/one-aalam/havyt","last_synced_at":"2026-03-09T21:08:21.333Z","repository":{"id":151100013,"uuid":"384696085","full_name":"one-aalam/havyt","owner":"one-aalam","description":"Learn Fastify step-by-step, by building a Recipe App. Follow the outline below/commits to see what's new at each level. Create a issue if something doesn't work for you.","archived":false,"fork":false,"pushed_at":"2021-08-04T17:16:11.000Z","size":1276,"stargazers_count":11,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-06-09T01:34:35.811Z","etag":null,"topics":["fastify","fastify-plugin","nodejs"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/one-aalam.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2021-07-10T12:46:43.000Z","updated_at":"2025-03-14T07:14:35.000Z","dependencies_parsed_at":null,"dependency_job_id":"6f7822c4-0d26-43e2-93b2-73cde671b103","html_url":"https://github.com/one-aalam/havyt","commit_stats":{"total_commits":91,"total_committers":1,"mean_commits":91.0,"dds":0.0,"last_synced_commit":"e0cad14aff87027f9397071d730bf4ed0af1c193"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/one-aalam/havyt","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/one-aalam%2Fhavyt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/one-aalam%2Fhavyt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/one-aalam%2Fhavyt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/one-aalam%2Fhavyt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/one-aalam","download_url":"https://codeload.github.com/one-aalam/havyt/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/one-aalam%2Fhavyt/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30312171,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T20:05:46.299Z","status":"ssl_error","status_checked_at":"2026-03-09T19:57:04.425Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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","fastify-plugin","nodejs"],"created_at":"2024-10-01T16:32:24.672Z","updated_at":"2026-03-09T21:08:21.315Z","avatar_url":"https://github.com/one-aalam.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"\u003cimg src=\"./public/logo.png\" alt=\"Havyt\"/\u003e\n\nLearn Fastify by building a Recipe App (Typescript Ready)\n\n__Havyt__ is Node.js Full-Stack Web Application that's built ground-up, step-by-step to\n- Introduce the essential components of Fastify like the _server_, _router_ and powerful constructs like _plugins_, _hooks_ and _decorators_ all while remaining simple in its approach so that it's easy for new comers to the Framework to pick things\n- Show the workings of a modern  Node.js framework that values stability, extensibility and speed over simple ergnomics\n- Possibly accomodate all sorts of very common use cases with time (while remaining commited to simplicity) either in the `main` branch\n    - Fastify for APIs\n    - Fastify for Server Side Web Apps\n    - Fastify \u0026 Auth\n- Or, extended use cases like (in the different branches or forks)\n    - Fastify \u0026 Modern FE Frameworks (Svelte, SolidJS, Next.js, Vite, etc.)\n    - Fastify Fully-Tested (setup is available, but lagging currently )\n    - Fastify and different DB flavors(The main repo has just a hand-rolled FS based data store)\n    - Fastify \u0026 GraphQL\n    - Fastify for Serverless\n    - Fastify \u0026 Micro-services\n\nNote: The repo may remain **Concept-Complete First** than Feature-complete, so that individual important commits could be checked out, and built upon as an exercise to learn about different features in-depth.\n\n## Commits so far...\n__partially documented__\n\n| Topic                                    | Sub-topic                                                  | Commit                                                                             |\n|------------------------------------------|------------------------------------------------------------|------------------------------------------------------------------------------------|\n| 1.Setup                                  | [Set-up Typescript, ESLint, Prettier, ts-node-dev](https://github.com/one-aalam/havyt/commit/856878f689a27ba846c7212bdbd580df47ce6df2)           |\n|                                          | [Husky and lint-staged](https://github.com/one-aalam/havyt/commit/fb360392f3d026972009cdf6cfb00930ec35dd10)                                      |\n| 2. Model Entities                        | [Add Types](https://github.com/one-aalam/havyt/commit/a821513745a6a616f29bab04834ccfb922ba1ac9)                                                  |\n|                                          | [Add Fixtures](https://github.com/one-aalam/havyt/commit/cc6c520003eb5f32444c7dfe2dbde0157f644478)                                               |\n| 3. Serve                                 | [Your first HTTP Server](https://github.com/one-aalam/havyt/commit/5c6d6a2f8fa444b326988de334dd2283db06a103)                                     |\n|                                          | [Your First HTTP Server with Fastify](https://github.com/one-aalam/havyt/commit/7abbc253603cd3832035f34840651aa809c601ef)                        |\n|                                          | [Use ES Syntax for a better looking code](https://github.com/one-aalam/havyt/commit/07e16e8288153462ff2be468bb1f8321376dbfab)                    |\n|                                          | [Keep Fastify App and Server, close but separate](https://github.com/one-aalam/havyt/commit/7025757278dfbb1fd3241f9661792aaeb4e9e0f4)            |\n|                                          | [Catch Server exceptions, and exit the process](https://github.com/one-aalam/havyt/commit/e3cc6624758537a6ea0c3a9434e881e5fe5f4ae8)              |\n| 4. GET what they want                    | [Create routes per resource](https://github.com/one-aalam/havyt/commit/7d513dea8bc09df72426b2b7e9b99d6c3aecce59)                                 |\n|                                          | [Get creative with /GETs](https://github.com/one-aalam/havyt/commit/9d536e47b17c0388225f929e0da04c127eed0625)                                    |\n|                                          | [Type what you receive](https://github.com/one-aalam/havyt/commit/afd9042f365f1fbd0a40ef604251893e6822415e)                                      |\n|                                          | [Get more creative with /GET (recipe)](https://github.com/one-aalam/havyt/commit/0214cf354285253a83042aeeb439084a806cda5c)                       |\n|                                          | [Tell what you don't have](https://github.com/one-aalam/havyt/commit/5148ed68d6f5f007aaffed8ba1e620dcc17a54ce)                                   |\n|                                          | [Tell what you don't have (JSON edition)](https://github.com/one-aalam/havyt/commit/e91496fa7cd07c4f5f7b1de09d3ec76a7892ae5b)                    |\n| 5. Be able to get more of what they want | [HTTP verb galore - more ways to receive actions (category)](https://github.com/one-aalam/havyt/commit/308b1624a49b3f57e5c89f5fb47c201b87dcf74c) |\n|                                          | [Enforce constraints, inform data issues](https://github.com/one-aalam/havyt/commit/1baba2f602dde96e2bb1c2b0c896791f91effe43)                    |\n|                                          | [Type easy](https://github.com/one-aalam/havyt/commit/4bb5375fc9cc30592538a67662e71d1580e4d340)                                                  |\n|                                          | [Exercise: Add more methods for recipe](https://github.com/one-aalam/havyt/commit/0d1a1eaadb76e9ab64a265b723ee159d24355f23)                      |\n| 6. Validate what you get                 | [Add validation with JSON Schema](https://github.com/one-aalam/havyt/commit/1e6f8370899f3f46bfc9ad58223a1fb9b04b4fb5)                            |\n|                                          | [Schemas to Types](https://github.com/one-aalam/havyt/commit/72d4e2fe2b9ff9adfbacbfd10433be693c1d9c3a)                                           |\n|                                          | [Add serialisation with JSON Schema](https://github.com/one-aalam/havyt/commit/f5314176a5cbc3c1c4f1e72d01a4603344755625)                         |\n|                                          | [Re-factor: Add Per-resource schema files](https://github.com/one-aalam/havyt/commit/eac3bff7fddd20ce191c043f4d17ef7805e2596d)                   |\n|                                          | [Derive types from schemas](https://github.com/one-aalam/havyt/commit/590bf12a138fb4ff7598c69bddf4caa932543eaf)                                  |\n|                                          | [Add schemas to Get All calls](https://github.com/one-aalam/havyt/commit/6de3be04c2747e1982aea0c34e95f4292b3ad5ec)\n                            |\n\n\n## When to expect the new changes?\nThere's no timeline, but I try to contribute once every week in this repo with application of one single concept. You can watch the repo, or follow me on [Twitter](https://twitter.com/aftabbuddy) to be notified of the updates.\n\n## Trivia\nThis project builds upon my past experience of building Web-Apps/APIs/Boilerplates on top of Node.js like [Attic](https://github.com/one-aalam/attic) and [Embrace](https://github.com/one-aalam/Embrace)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fone-aalam%2Fhavyt","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fone-aalam%2Fhavyt","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fone-aalam%2Fhavyt/lists"}