{"id":19450281,"url":"https://github.com/a4arpon/hot-shot-kit","last_synced_at":"2026-04-11T10:37:26.931Z","repository":{"id":260880644,"uuid":"882451571","full_name":"a4arpon/hot-shot-kit","owner":"a4arpon","description":"Hot Shot Ready Kit is a ready-to-use package top of HotShot Meta Framework with lots of utility and pre-configured files","archived":false,"fork":false,"pushed_at":"2024-11-11T13:51:29.000Z","size":894,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-07T23:42:42.611Z","etag":null,"topics":["a4arpon","bun","bytecode","esbuild","hotshot","hotshot-a4arpon","hotshot-cli","http-requests","http-server","javascript","javascript-library","jsr","jwt-authentication","mr-wayne","node-adapter","nodejs","nodejs-server","nodemailer","nodemon","typescript"],"latest_commit_sha":null,"homepage":"https://jsr.io/@a4arpon/hotshot","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/a4arpon.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":"2024-11-02T20:08:53.000Z","updated_at":"2024-12-20T09:05:08.000Z","dependencies_parsed_at":"2024-11-03T10:32:30.236Z","dependency_job_id":null,"html_url":"https://github.com/a4arpon/hot-shot-kit","commit_stats":null,"previous_names":["a4arpon/hot-shot-kit"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a4arpon%2Fhot-shot-kit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a4arpon%2Fhot-shot-kit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a4arpon%2Fhot-shot-kit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/a4arpon%2Fhot-shot-kit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/a4arpon","download_url":"https://codeload.github.com/a4arpon/hot-shot-kit/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240637419,"owners_count":19833073,"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":["a4arpon","bun","bytecode","esbuild","hotshot","hotshot-a4arpon","hotshot-cli","http-requests","http-server","javascript","javascript-library","jsr","jwt-authentication","mr-wayne","node-adapter","nodejs","nodejs-server","nodemailer","nodemon","typescript"],"created_at":"2024-11-10T16:36:08.408Z","updated_at":"2025-09-26T15:16:17.328Z","avatar_url":"https://github.com/a4arpon.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Hot Shot Ready Kit -\n\n## What is Hot Shot Ready Kit?\n\nHot Shot Ready Kit is a ready-to-use package top of [HotShot](https://github.com/a4arpon/hot-shot) that provides a complete and ready-to-use application structure for building modern web applications with Bun.js. It includes a set of pre-configured libraries, utiltieis \u0026 mod manager. It provides bundeling support and multi threaded support for the server.\n\n## Getting Started\n\nTo get started with Hot Shot Ready Kit, follow these steps:\n\n1. Clone the repository:\n\n```bash\ngit clone https://github.com/a4arpon/hot-shot-ready-kit.git \u0026\u0026 cd hot-shot-ready-kit \u0026\u0026 rm -rf .git\n```\n\n2. Install the dependencies:\n\n```bash\nbun i\n```\n\n3. Run the application:\n\n```bash\nbun run dev\n```\n\n4. Open your browser and navigate to `http://localhost:PORT`.\n\nThat's it! You have successfully set up and run the Hot Shot Ready Kit application.\n\n## Pre-Configured Libraries\n\nThe Hot Shot Ready Kit comes with a set of pre-configured libraries that you can use in your application. These libraries include:\n\n- Hono\n- HotShot\n- Postgres\n- Drizzle\n- Drizzle-Zod\n- Drizzle-Kit\n- Sharp\n- Nodemailer\n- BullMQ\n- Redis\n- Ioredis\n- Jsonwebtoken\n- Zod\n- Biome\n- Drizzle Kit\n\n\nThese libraries are pre-configured and ready to use in your application. You can easily add or remove them as needed.\n\n## Pre-Configured Utilities\n\nThe Hot Shot Ready Kit also comes with a set of pre-configured utilities that you can use in your application. These utilities include:\n\n- Generators: A set of utility functions for generating random data.\n\n\n\n## Documentation\n\n\n### Mod Manager\n\nThe Mod Manager is a file that manages all the modules in your application. It is responsible for loading and registering all the modules, including routers, controllers, services, guards, and queues.\n\n#### Router Factory\n\nThe Router Factory is a function that takes an array of routers and returns a single router that combines all the routers into a single router. This function is used to combine all the routers in your application into a single router.\n\n```typescript\nexport const applicationRoutes = routerFactory([AuthRouter, BlogsRouter])\n```\n\n#### Application Workers\n\nThe Application Workers is a file that manages all the workers in your application. It is responsible for loading and registering all the workers, including queues, cache drivers, and other workers.\n\n```typescript\nexport const applicationWorkers = [NotificationQueueWorker]\n```\n\n\n### Ioredis-Json\n\nIoredis-Json is a utility library that provides a set of functions for interacting with Redis using JSON data. It includes functions for setting, getting, deleting, and managing JSON data in Redis.\n\n#### Cache Response\n\nCache Response is a type that represents the response from a cache operation. It includes a key, data, and success flag.\n\nHow to use:\n\n```typescript\nconst cacheResponse = cacheResponse(\"key\", { name: \"John Doe\" }, true)\n```\n\n#### Cache Name Generator\n\nCache Name Generator is a function that generates a cache name based on a cache partition and a key. It is used to generate cache names for different parts of the application.\n\nHow to use:\n\n```typescript\nconst cacheName = cacheNameGen(\"blogs\", \"123\")\n```\n\n#### JSON Redis\n\nJSON Redis is a utility library that provides a set of functions for interacting with Redis using JSON data. It includes functions for setting, getting, deleting, and managing JSON data in Redis.\n\nHow to use:\n\n```typescript\nawait jsonRedis.set(\"key\", { name: \"John Doe\" })\nconst data = await jsonRedis.get(\"key\")\nawait jsonRedis.delete(\"key\")\n```\n\n## Running App With Node\n\nThis application is designed to run with Bun.js. If you want to run it with Node.js, you can use the following command:\n\n```bash\nnpm i @hono/node-server \u0026\u0026 npm i -D esbuild tsx\n```\n\n**Note:** You will need to install esbuild and tsx as dev dependencies.**\n\nESBuild Config:\n\n```js\nimport { promises as fs } from \"node:fs\"\nimport path from \"node:path\"\nimport { fileURLToPath } from \"node:url\"\nimport { build } from \"esbuild\"\n\n\n// This function reads the package.json file and returns an array of dependencies to exclude from the bundle.\n\nasync function builderInit() {\n  const __filename = fileURLToPath(import.meta.url)\n  const __dirname = path.dirname(__filename)\n  const packageJsonPath = path.join(__dirname, \"package.json\")\n  const data = await fs.readFile(packageJsonPath, \"utf-8\")\n  const packageJson = JSON.parse(data)\n  return Object.keys(packageJson.dependencies || {})\n}\n\nbuilderInit()\n  .then((dependencies) =\u003e {\n    build({\n      platform: \"node\",\n      target: [\"node22\"],\n      outdir: \"dist\",\n      entryPoints: [\"./src/server.ts\"],\n      bundle: true,\n      minify: true,\n      minifySyntax: true,\n      minifyIdentifiers: true,\n      minifyWhitespace: true,\n      keepNames: false,\n      sourcemap: false,\n      treeShaking: true,\n      format: \"esm\",\n      entryNames: \"[name]\",\n      logLevel: \"info\",\n      tsconfig: \"./tsconfig.json\",\n      external: [\"events\", \"node:events\", ...dependencies],\n    })\n  })\n  .then(() =\u003e {\n    console.log(\"Build successful!\")\n  })\n  .catch((err) =\u003e {\n    console.error(err)\n    process.exit(1)\n  })\n```\n\nChanges on the application adapter:\n\nCurrent Code\n\n```ts\nBun.serve({\n  fetch: app.fetch,\n  port: env.PORT,\n  reusePort: true,\n})\n```\n\nNew Code\n\n```ts\nserve({\n    fetch: app.fetch,\n    port: env.PORT,\n    hostname: \"0.0.0.0\",\n  })\n```\n\n\n## Contributing\n\nContributions are welcome! If you have any suggestions or improvements, please open an issue or submit a pull request.\n\nSome uncompleted features:\n\n- Update the mod manager when a new module is added from the cli.\n- Update the mod manager when a new worker is added from the cli.\n- Update application utilities and other pre-configured libraries from the cli without breaking the application.\n\n## License\n\nThis project is licensed under the MIT License. See the [LICENSE](LICENSE) file for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fa4arpon%2Fhot-shot-kit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fa4arpon%2Fhot-shot-kit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fa4arpon%2Fhot-shot-kit/lists"}