{"id":13603042,"url":"https://github.com/eser/stack","last_synced_at":"2026-04-02T15:05:11.058Z","repository":{"id":45753863,"uuid":"275277833","full_name":"eser/stack","owner":"eser","description":"The Portability Solution for Your Code! 🚀 Powered By Deno and JavaScript.","archived":false,"fork":false,"pushed_at":"2025-10-13T23:06:23.000Z","size":14990,"stargazers_count":83,"open_issues_count":6,"forks_count":4,"subscribers_count":3,"default_branch":"dev","last_synced_at":"2025-10-21T12:35:33.627Z","etag":null,"topics":["acikkaynak","bot","cool","deno","eser-live","faas","function","javascript","platform","portability","runtime","toolkit","tools","typescript"],"latest_commit_sha":null,"homepage":"https://eserstack.com/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eser.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":".github/CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":".github/SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["eser"]}},"created_at":"2020-06-27T01:23:01.000Z","updated_at":"2025-09-19T20:40:58.000Z","dependencies_parsed_at":"2023-10-16T03:27:46.646Z","dependency_job_id":"e7915360-6849-4ad7-9246-d329132f6c4c","html_url":"https://github.com/eser/stack","commit_stats":{"total_commits":308,"total_committers":8,"mean_commits":38.5,"dds":"0.12012987012987009","last_synced_commit":"4e557317e320d8f149619ff3f49fe445ed203c31"},"previous_names":["eser/hex","eserozvataf/hex","eser/stack"],"tags_count":26,"template":false,"template_full_name":null,"purl":"pkg:github/eser/stack","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eser%2Fstack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eser%2Fstack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eser%2Fstack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eser%2Fstack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eser","download_url":"https://codeload.github.com/eser/stack/tar.gz/refs/heads/dev","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eser%2Fstack/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27555346,"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","status":"online","status_checked_at":"2025-12-06T02:00:06.463Z","response_time":60,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["acikkaynak","bot","cool","deno","eser-live","faas","function","javascript","platform","portability","runtime","toolkit","tools","typescript"],"created_at":"2024-08-01T18:01:47.474Z","updated_at":"2025-12-11T21:11:10.122Z","avatar_url":"https://github.com/eser.png","language":"TypeScript","readme":"# `eserstack` - The Portability Solution for Your Code! 🚀\n\n[![JSR @eser](https://jsr.io/badges/@eser)](https://jsr.io/@eser)\n[![codecov](https://codecov.io/gh/eser/stack/branch/main/graph/badge.svg?token=w6s3ODtULz)](https://codecov.io/gh/eser/stack)\n[![Build Pipeline](https://github.com/eser/stack/actions/workflows/build.yml/badge.svg)](https://github.com/eser/stack/actions/workflows/build.yml)\n[![Built with the Deno Standard Library](https://raw.githubusercontent.com/denoland/deno_std/main/badge.svg)](https://deno.land/std)\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"./\"\u003e\n    \u003cimg alt=\"eser stack javascript toolkit\" src=\"./etc/cover.svg\" width=\"849\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\nStep into a world where you never have to deal with portability and platform\nissues. Whether you're targeting **web browsers**, **serverless platforms**,\n**chatbots**, **CLI**, or multiple platforms simultaneously, eserstack ensures\n**your code runs** flawlessly **everywhere**.\n\n## 📖 Overview\n\n`eserstack` is a JavaScript toolkit designed to uphold best practices and\nenhance portability across different platforms.\n\nBeyond being a toolkit, `eserstack` advocates for a philosophy that emphasizes\nwriting code driven by algorithms, design and patterns, not by platform-specific\nimplementation details.\n\nWhile `eserstack` offers you a layer of abstraction that isolates you from the\nplatforms, **you can focus on your implementation**. Don't worry about the rest,\nyour solution will excel across diverse environments.\n\nEvery [component](#component-set) of `eserstack` is designed to work in harmony,\nstrives to offer you an intuitive and delightful development experience.\n\n## 🌟 Why choose eserstack?\n\n`eserstack` is meticulously designed for developers who:\n\n- **Seek Portability**: If you've ever felt the need for a JavaScript/TypeScript\n  framework that seamlessly works across web browsers, Deno, Supabase, Netlify,\n  AWS Lambda and Cloudflare Workers, `eserstack` is your answer.\n  [See the full list of supported platforms](#platform-support)\n\n- **Love Functional Programming**: `eserstack` not only supports but encourages\n  a functional programming approach. This means you can write your code once and\n  run it on various platforms without modifications.\n  [Dive into our functional programming tools](./fp/README.md)\n\n- **Want Enhanced Testability**: With the removal of hard-coded dependencies and\n  the promotion of loose coupling, `eserstack` enhances the testability of your\n  codebase, ensuring that your applications run as expected.\n  [Explore our dependency injection system](./di/README.md)\n\n- **Desire a Unified Approach**: Instead of juggling multiple libraries and\n  tools, `eserstack` provides a unified toolkit where each component works\n  seamlessly with the others, ensuring a smoother development experience.\n  [Check out our component set](#component-set)\n\n- **Prioritize Best Practices**: If you've been struggling with maintaining best\n  practices in your development process, `eserstack` is here to guide you. With\n  built-in support for principles like 12factor and dependency injection, you\n  can ensure that your code remains clean, maintainable, and scalable.\n  [Learn more about our best practices approach](#best-practices)\n\n## 📂 Components\n\n### Component Set\n\n| Component                              | Area              | Description                                         | Latest Version                                                                  |\n| -------------------------------------- | ----------------- | --------------------------------------------------- | ------------------------------------------------------------------------------- |\n| 📓 [@eser/directives](pkg/directives/) | Rules             | The ground rules adhered to by the entire ecosystem | -                                                                               |\n| 📑 [@eser/standards](pkg/standards/)   | Abstraction       | Provides common abstraction layers for DI           | [![JSR](https://jsr.io/badges/@eser/standards)](https://jsr.io/@eser/standards) |\n| ⚙️ [@eser/di](pkg/di/)                 | Manager           | Dependency injection system                         | [![JSR](https://jsr.io/badges/@eser/di)](https://jsr.io/@eser/di)               |\n| 🧱 [@eser/fp](pkg/fp/)                 | Functions Library | Tools for functional programming                    | [![JSR](https://jsr.io/badges/@eser/fp)](https://jsr.io/@eser/fp)               |\n| 🔐 [@eser/config](pkg/config/)         | Manager           | Load configurations from environment                | [![JSR](https://jsr.io/badges/@eser/config)](https://jsr.io/@eser/config)       |\n| 〰️ [@eser/parsing](pkg/parsing/)       | Manager           | Parsing tools for various strings and streams       | [![JSR](https://jsr.io/badges/@eser/parsing)](https://jsr.io/@eser/parsing)     |\n\nVisit the respective component page for detailed usage instructions.\n\n### Our Goal / The Bigger Picture\n\nWe strive to run the following code seamlessly across\n[all platforms we support](#platform-support):\n\n```js\nimport { Runtime, Context } from \"@eser/runtime\";\n\nconst home = (ctx: Context) =\u003e {\n  return ctx.results.jsx(\u003ch1\u003eHello there!\u003c/h1\u003e);\n};\n\nconst profile = (ctx: Context) =\u003e {\n  const slug = ctx.input.param(\"id\");\n  const db = ctx.di`db`;\n\n  ctx.logger.info(`Visiting the profile of ${slug}!`);\n\n  return ctx.results.json(db.query(\"SELECT * FROM users WHERE slug=:slug\", { slug }));\n};\n\nconst router = (ctx: Context) =\u003e {\n  switch (true) {\n    case ctx.route.match(\"/\"):\n      return home(ctx);\n    case ctx.route.match(\"/:id\"):\n      return profile(ctx);\n    default:\n      return ctx.results.notFound();\n  }\n};\n\nconst runtime = new Runtime();\nruntime.ci.register(\"db\", new DatabaseConnection());\nruntime.listen(router); // or runtime.execute(fn);\n```\n\n### Platform Support\n\nSince the reason we started to build this project is the feeling of a lack of a\nJavaScript/TypeScript framework that is portable across many platforms, we're\nalways looking for the widen this list. By adhering to\n[WinterCG guidelines](https://wintercg.org/) and\n[TC39 standards](https://tc39.es/), we strive to provide a framework that is\nportable across all these platforms.\n\n- [x] Deno\n- [ ] Node.js\n- [x] Web Browsers\n- [ ] Service Workers\n- [x] Deno Deploy\n- [ ] Cloudflare Workers\n- [ ] Supabase Functions\n- [ ] Netlify\n- [ ] AWS Lambda\n- [ ] Google Cloud Functions\n- [ ] Azure Functions\n- [ ] Telegram Bots\n- [ ] Discord Bots\n- [ ] Slack Bots\n\n...and all other platforms that comply with the\n[WinterCG guidelines](https://wintercg.org/).\n\n## 🚀 Jumpstart\n\nEnsure that [Deno](https://deno.land/) 2.4 or higher is installed on your system\nfirst.\n\nFirst, install `cool cli` globally, then create a new project:\n\n```sh\n$ deno install -g jsr:@cool/cli\n\n$ cool create my-project\n\nCreating \"cool web project template 0.0.1\" on my-project...\n...\ndone.\n```\n\n## 🙋🏻 FAQ\n\n### Want to report a bug or request a feature?\n\nIf you're going to report a bug or request a new feature, please ensure first\nthat you comply with the conditions found under\n[@eser/directives](https://github.com/eser/stack/blob/dev/pkg/directives/README.md).\nAfter that, you can report an issue or request using\n[GitHub Issues](https://github.com/eser/stack/issues). Thanks in advance.\n\n### Want to contribute?\n\nIt is publicly open for any contribution from the community. Bug fixes, new\nfeatures and additional components are welcome.\n\nIf you're interested in becoming a contributor and enhancing the ecosystem,\nplease start by reading through our [CONTRIBUTING.md](CONTRIBUTING.md).\n\nIf you're not sure where to begin, take a look at the\n[issues](https://github.com/eser/stack/issues) labeled `good first issue` and\n`help wanted`. Reviewing closed issues can also give you a sense of the types of\ncontributions we're looking for and you can tackle.\n\nIf you're already an experienced OSS contributor, let's take you to the shortest\npath: To contribute to the codebase, just fork the repo, push your changes to\nyour fork, and then submit a pull request.\n\n### Requirements\n\n- Deno 2.4 or higher (https://deno.land/)\n\n### Versioning\n\nThis project follows [Semantic Versioning](https://semver.org/). For the\nversions available, see the\n[tags on this repository](https://github.com/eser/stack/tags).\n\n### License\n\nThis project is licensed under the Apache 2.0 License. For further details,\nplease see the [LICENSE](LICENSE) file.\n\n### To support the project...\n\n[Visit my GitHub Sponsors profile at github.com/sponsors/eser](https://github.com/sponsors/eser)\n","funding_links":["https://github.com/sponsors/eser"],"categories":["bot"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feser%2Fstack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feser%2Fstack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feser%2Fstack/lists"}