{"id":16513804,"url":"https://github.com/wintercounter/mhy","last_synced_at":"2025-10-14T00:37:22.245Z","repository":{"id":44256070,"uuid":"138263848","full_name":"wintercounter/mhy","owner":"wintercounter","description":"🧩 A zero-config, out-of-the-box, multi-purpose toolbox and development environment","archived":false,"fork":false,"pushed_at":"2023-11-11T04:09:49.000Z","size":5706,"stargazers_count":134,"open_issues_count":8,"forks_count":32,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-10-05T21:57:14.184Z","etag":null,"topics":["babel","build","cli","development-environment","jest","out-of-the-box","react","redux","storybook","webpack","zero-configuration"],"latest_commit_sha":null,"homepage":"https://mhy.js.org","language":"JavaScript","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/wintercounter.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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":"2018-06-22T06:29:28.000Z","updated_at":"2025-05-26T01:43:28.000Z","dependencies_parsed_at":"2024-06-19T00:17:57.949Z","dependency_job_id":"78783cd6-00b8-4ad9-bab0-d605cc9332e7","html_url":"https://github.com/wintercounter/mhy","commit_stats":{"total_commits":1098,"total_committers":15,"mean_commits":73.2,"dds":0.2586520947176685,"last_synced_commit":"e9c24cfaae551e3d76e9c1951cc8ae0bd89df12e"},"previous_names":[],"tags_count":198,"template":false,"template_full_name":null,"purl":"pkg:github/wintercounter/mhy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wintercounter%2Fmhy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wintercounter%2Fmhy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wintercounter%2Fmhy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wintercounter%2Fmhy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wintercounter","download_url":"https://codeload.github.com/wintercounter/mhy/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wintercounter%2Fmhy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279017358,"owners_count":26086052,"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-10-13T02:00:06.723Z","response_time":61,"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":["babel","build","cli","development-environment","jest","out-of-the-box","react","redux","storybook","webpack","zero-configuration"],"created_at":"2024-10-11T16:10:21.440Z","updated_at":"2025-10-14T00:37:22.228Z","avatar_url":"https://github.com/wintercounter.png","language":"JavaScript","readme":"\u003cp align=\"center\"\u003e\u003ca href=\"https://mhy.js.org\" target=\"_blank\"\u003e\u003cimg width=\"100\" src=\"https://github.com/wintercounter/mhy/raw/master/docs/.gitbook/assets/logo-2.png\" alt=\"mhy logo\"\u003e\u003c/a\u003e\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://circleci.com/gh/wintercounter/mhy/tree/master\"\u003e\u003cimg src=\"https://img.shields.io/circleci/project/github/wintercounter/mhy/master.svg\" alt=\"Build Status\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://npmcharts.com/compare/mhy?minimal=true\"\u003e\u003cimg src=\"https://img.shields.io/npm/dm/mhy.svg\" alt=\"Downloads\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://david-dm.org/wintercounter/mhy\" title=\"dependencies status\"\u003e\u003cimg src=\"https://david-dm.org/wintercounter/mhy/status.svg\"/\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/prettier/prettier\" rel=\"nofollow\"\u003e\u003cimg src=\"https://img.shields.io/badge/code_style-prettier-ff69b4.svg\" alt=\"code style: prettier\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://conventionalcommits.org\"\u003e\u003cimg src=\"https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg\" alt=\"Conventional Commits\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/package/mhy\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/mhy.svg\" alt=\"Version\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://www.npmjs.com/package/mhy\"\u003e\u003cimg src=\"https://img.shields.io/npm/l/mhy.svg\" alt=\"License\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003ch2 align=\"center\"\u003emhy \u003ca target=\"_blank\" href=\"https://twitter.com/intent/tweet?text=Try%20out%20%23mhy%20as%20your%20new%20JavaScript%20development%20environment.%20https%3A%2F%2Fmhy.js.org\u0026hashtags=mhy,webpack,babel,jest,typescript,frontend,developers,javascript,html\"\u003e\u003cimg src=\"https://img.shields.io/twitter/url/http/shields.io.svg?style=social\" /\u003e\u003c/a\u003e\u003c/h2\u003e\n\n\u003cp align=\"center\"\u003eA \u003cstrong\u003ezero-config\u003c/strong\u003e, \u003cstrong\u003eout-of-the-box\u003c/strong\u003e, \u003cstrong\u003emulti-purpose\u003c/strong\u003e \u003ci\u003etoolbox\u003c/i\u003e and \u003ci\u003edevelopment environment\u003c/i\u003e.\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003ca href=\"https://mhy.js.org\" target=_blank\u003emhy.js.org\u003c/a\u003e\u003c/p\u003e\n\n---\n\n## Summary\n\nIt's really hard to define what `mhy` \\(my\\) is, because it tries to create a unified developer experience for any stage of your project:\n\n-   a pre-configured **development environment** to not waste time with the set-up when starting a new project or just need a quick playground.\n-   a pre-configured **production environment** to help you reach production faster compiling/building your code without any necessary setup.\n-   an **ecosystem** to be able to run different task together at once, connected together perfectly.\n-   a **toolbox** help your work with the most common tasks.\n-   a **solution for littering** your machine with the same npm package over and over again.\n-   a **config management** tool to make necessary changes faster at a single place.\n-   an **interoperable environment** to be shared across multiple projects and ensure they are being build on the same principles/stack.\n\n\u003e `mhy` helps you to be able to focus on your code again rather then the tech behind it.\n\n## Using `mhy` you'll have\n\n-   a **zero-configuration** environment **out-of-the-box**.\n-   a **portable** codebase without any `npm install`.\n-   **simple customization** if you don't favor the default settings.\n-   **package.json based customization** for any configs value `mhy` provides.\n-   **boot templates** for easy setup.\n-   **most common packages** provided to your work.\n-   **less boilerplate**.\n-   configs/tools **well-playing** together _(webpack+swc, jest+swc, storybook+swc, webpack+typescript, etc.)_.\n-   **pre-built and public Docker images** for faster CI.\n\n\u003e Note that `mhy`'s focus is on client side currently, but server side features are about to come.\n\n## Setup\n\n### Install\n\n```bash\nnpm install mhy -g\n```\n\nFrom `npm@7.0.0` peer dependencies are automatically being installed. `mhy` uses some dependencies that are not prepared\nyet for this new mechanism. We cannot do anything, but wait for updates. You need to install `mhy` using the\n`--legacy-peer-deps` or `--force` flag.\n\n```bash\nnpm install mhy -g --legacy-peer-deps\n```\n\n### Start a new Webpack project\n\nCreate an empty project with a single `index.js` file that is being served using `webpack-dev-server` _(wds)_\npre-configured with **Babel**, **React** and **React Fast-Refresh**.\n\n```bash\nmkdir src\necho \"console.log('Hello mhy!')\" \u003e src/index.js\nmhy wds\n```\n\n### Compile library\n\nCreate a production ready library. From the `src` folder it creates a complied `dist` folder.\n\n```bash\nmhy babel --mhy-env=prod\n```\n\n### Build bundle\n\nCreate a production ready bundle for you website/app using pre-configured **Webpack**. From the `src` folder it creates a `build` folder with your bundle ready to be served supporting many popular features/loaders.\n\n```bash\nmhy webpack --mhy-env=prod\n```\n\n### Start the default ecosystem\n\nIt'll run Jest, Webpack Dev Server, TypeScript compiler, Storybook at once in a single Terminal UI (TUI).\n\n```bash\nmhy\n```\n\n### That's not all\n\n\u003e These are only a few examples from all the possibilities `mhy` provides. Start exploring on https://mhy.js.org\n\n## Supported packages\n\n`mhy` is providing many common/popular packages. There are continuous adjustments being made to the includes to match the most common needs and being able to develop without the need of your own `npm install` command ever again. It's in plan to accurately list these on the site, for now the best is to check the dependencies of our `package.json` for the included packages, and I also advice you to check out our sources for more details.\n\n## Contributors ✨\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"http://andy1210.com\"\u003e\u003cimg src=\"https://avatars0.githubusercontent.com/u/964291?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAndy1210\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/wintercounter/mhy/issues?q=author%3AAndy1210\" title=\"Bug reports\"\u003e🐛\u003c/a\u003e \u003ca href=\"https://github.com/wintercounter/mhy/commits?author=Andy1210\" title=\"Tests\"\u003e⚠️\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/pablohpsilva\"\u003e\u003cimg src=\"https://avatars1.githubusercontent.com/u/2090635?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003ePablo Henrique\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/wintercounter/mhy/commits?author=pablohpsilva\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"http://beagl.in\"\u003e\u003cimg src=\"https://avatars0.githubusercontent.com/u/8502021?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eEugen Guriev\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/wintercounter/mhy/commits?author=gcofficial\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/FabianLauer\"\u003e\u003cimg src=\"https://avatars0.githubusercontent.com/u/2205595?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eFabian Lauer\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/wintercounter/mhy/commits?author=FabianLauer\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"http://winckell.com\"\u003e\u003cimg src=\"https://avatars1.githubusercontent.com/u/5302702?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eThomas Winckell\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/wintercounter/mhy/commits?author=thomaswinckell\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/wintercounter/mhy/commits?author=thomaswinckell\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/stevenmitts\"\u003e\u003cimg src=\"https://avatars1.githubusercontent.com/u/13355405?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eSteven Mitts\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/wintercounter/mhy/commits?author=stevenmitts\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://zakhardolozhevskiy.github.io/CV\"\u003e\u003cimg src=\"https://avatars0.githubusercontent.com/u/5322859?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eZakhar\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/wintercounter/mhy/commits?author=ZakharDolozhevskiy\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/wintercounter/mhy/commits?author=ZakharDolozhevskiy\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"http://andor.cool\"\u003e\u003cimg src=\"https://avatars3.githubusercontent.com/u/747365?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAndor Polgar\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/wintercounter/mhy/commits?author=andormade\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://github.com/bafxyz\"\u003e\u003cimg src=\"https://avatars1.githubusercontent.com/u/892175?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAndrei Bunulu\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/wintercounter/mhy/commits?author=bafxyz\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://zakhardolozhevskiy.github.io/CV\"\u003e\u003cimg src=\"https://avatars0.githubusercontent.com/u/5322859?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eZakhar\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/wintercounter/mhy/commits?author=ZakharDolozhevskiy\" title=\"Code\"\u003e💻\u003c/a\u003e \u003ca href=\"https://github.com/wintercounter/mhy/commits?author=ZakharDolozhevskiy\" title=\"Documentation\"\u003e📖\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-enable --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\n❤ Thank you all! ❤\n\n## Credits ❤\n\nI'm using Webpack's logo to build an `M` shape from multiple blocks. I'd like to say **Thank You** for their great logo.\n\nI also would like to thank to every developer's hard work which I'm using as a dependency in `mhy`. It would be really hard to collect all those people, but in case you find your work in our `package.json`, please feel free to create a pull request and add your logo and link.\n\n\u003ctable\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n      \u003ctd align=\"center\" valign=\"top\"\u003e\n        \u003cimg width=\"128\" height=\"128\" src=\"https://github.com/wintercounter.png?s=128\"\u003e\n        \u003cbr\u003e\n        \u003ca href=\"https://github.com/wintercounter\"\u003ewintercounter\u003c/a\u003e\n        \u003cp\u003e\n            while(!credits.length)\u003cbr\u003e\n            console.log('Example')\n        \u003c/p\u003e\n      \u003c/td\u003e\n     \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\n---\n\n\u003cp align=\"center\"\u003e🌟 PLEASE STAR THIS REPO IF YOU FOUND SOMETHING INTERESTING! 🌟\u003c/p\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwintercounter%2Fmhy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwintercounter%2Fmhy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwintercounter%2Fmhy/lists"}