{"id":16293012,"url":"https://github.com/atjn/easy-web-app-builder","last_synced_at":"2025-08-31T17:38:20.303Z","repository":{"id":54652386,"uuid":"350486825","full_name":"atjn/easy-web-app-builder","owner":"atjn","description":"Make your website better with one command.","archived":false,"fork":false,"pushed_at":"2023-06-16T22:03:32.000Z","size":22323,"stargazers_count":2,"open_issues_count":4,"forks_count":4,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-28T22:54:43.314Z","etag":null,"topics":["build","easy","favicon","icon","minify","pwa","servieworker","simple","webapp"],"latest_commit_sha":null,"homepage":"","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/atjn.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":"2021-03-22T20:55:42.000Z","updated_at":"2023-06-06T18:41:22.000Z","dependencies_parsed_at":"2024-10-27T21:44:31.303Z","dependency_job_id":"b619a366-1fc1-47a8-ba3e-caff615a8111","html_url":"https://github.com/atjn/easy-web-app-builder","commit_stats":{"total_commits":81,"total_committers":4,"mean_commits":20.25,"dds":0.03703703703703709,"last_synced_commit":"9243fbc6edb95c92d7179d3468e166a3497b3331"},"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atjn%2Feasy-web-app-builder","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atjn%2Feasy-web-app-builder/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atjn%2Feasy-web-app-builder/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/atjn%2Feasy-web-app-builder/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/atjn","download_url":"https://codeload.github.com/atjn/easy-web-app-builder/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244047647,"owners_count":20389206,"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":["build","easy","favicon","icon","minify","pwa","servieworker","simple","webapp"],"created_at":"2024-10-10T20:09:43.322Z","updated_at":"2025-03-20T03:30:58.110Z","avatar_url":"https://github.com/atjn.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Easy Web App Builder (EWAB)\n\n| :warning: | This software is still under development. Expect bad documentation, weird bugs, missing features, and a constant flood of breaking changes. |\n|-----------|---------------------------------------------------------------------------------------------------------------------------------------------|\n\nEWAB automates all the boring stuff you need to do when publishing a webapp. It will:\n\n- Generate icons in all necessary sizes and link to them in your html and manifest files.\n- Generate a serviceworker, allowing your site to run as a standalone app.\n- Minify your files.\n- Compress your images.\n\n..and it will do all this with no configuration!\n\n## Motivation\nDoing the same repetitive work for every release of a webapp (or any project) has always been a nuisance for developers, which is why we now have many excellent build systems that can do the work for us. These build systems are often very modular, which means they can do anything you could ever want them to, but that modularity also comes at a cost. It can take forever to find the correct modules, understand how to use them, and set them up just right to get everything working, and because of that long setup time, many developers just don't bother with any of it.\n\nEWAB is designed to solve this problem. It isn't modular, it can't do every single crazy idea you have in mind, but it will do most of the stuff most people need, and it will do it with no setup _at all_. It is very adaptable and will apply best-practices wherever it can without requiring the developer to even know what is going on.\nAt the same time, EWAB doesn't block the developer from making improvements to the process. Most of the stuff EWAB does is very configurable, and if that isn't enough, certain parts of EWAB can be turned off and handed over to a more complicated build system, while EWAB takes care of all the other stuff the developer doesn't want to touch.\n\n## How to use\nEWAB is a Node module. If you don't know what that means, you should start by checking out one of the great tutorials online, such as [nodejs.dev](https://nodejs.dev/learn/introduction-to-nodejs).\n\nWhen you have Node installed, you can install EWAB in your project with the following command:\n```\nnpm install easy-web-app-builder --save-dev\n```\nNow make sure your website files are all in a folder, at the root of your project, called something like \"source\".\n\nBuild the website by running the following command:\n```\neasy-web-app-builder\n```\n\nEWAB will now start up and spend a minute working on your website. When it is done, it will copy the completed website to that new folder.\nWhile running, EWAB will tell you what it is doing, and will sometimes warn you if it has trouble understanding your website. Please read these messages carefully to make sure everything is working smoothly.\n\n## Customizing the process\nIt is possible to customize much of the work EWAB does. The recommended way to do this, is to run the setup wizard:\n```\nnpx easy-web-app-builder setup\n```\n\nIf you'd rather set things up manually, you can do so by adding a file called \".ewabconfig.js\" to the root of your project. An ewabconfig file could look something like this:\n```js\nexport default {\n\n\toutputPath: \"build/ewab\",\n\n\tserviceworker: {\n\t\tadd: true,\n\t},\n\n\tfileExceptions: [\n\t\t{\n\t\t\tglob: \"**/*.dev.*\",\n\t\t\tfiles: {\n\t\t\t\tremove: true,\n\t\t\t},\n\t\t},\n\t],\n};\n```\nYou can also pass a JSON configuration to EWAB through the CLI:\n```\nnpx easy-web-app-builder --config '{\"outputPath\": \"build/ewab\"}'\n```\nIf a configuration is present both in the CLI and as a file, they are merged.\n\n\nHere are some of the things you can set in the configuration object:\n\n## Basic settings\n\n### `inputPath` and  `outputPath`\nThe source files for your webapp need to be saved to a folder somewhere. EWAB will try to guess which folder it should use, but you can also set it manually like this:\n```js\n{\n  inputPath: \"path/to/input/folder/\",\n}\n```\nWhen EWAB is done, it will output the final website to a new folder. If you want to specify the folder name/path, you can do so like this:\n```js\n{\n  outputPath: \"path/to/output/folder/\",\n}\n```\n\n## Icons\nBy default, EWAB will find your website's icons, generate them in different sizes, and then add the new copies to the website. If you don't want EWAB to mess with your icons, you can set:\n```js\n{\n  icons: {\n    add: false,\n  },\n}\n```\n\nEWAB can also generate your different icons for you if you link to your main app icon here:\n```js\n{\n  icons: {\n    source: {\n      main: \"path/to/your/favicon.svg\",\n    },\n  },\n}\n```\n\nIf EWAB is using the wrong image for certain icons, you can tell it exactly which icon it should use by setting:\n```js\n{\n  icons: {\n    custom: {\n      any: \"path/to/your/favicon.svg\",\n    },\n  },\n}\n```\n\n## Images\n\n## Files\nBy default, EWAB will locate all HTML, CSS, JS, JSON and SVG files and minify them. It will not preserve comments.\n\nIf you don't want EWAB to minify your files, you can change it here:\n```js\n{\n  files: {\n    minify: false,\n  },\n}\n```\n\nEWAB will also create source files and add them to your project. If you don't like that, you can change it here:\n```js\n{\n  files: {\n    addSourceMaps: false,\n  },\n}\n```\n\n### Serviceworker\nEWAB won't add a serviceworker by default because it requires a bit of manual setup.\n\nGo to the [serviceworker configuration guide](./docs/serviceworker.md).\n\n---\n\u003cp style=\"opacity:.8;font-style:italic;text-align:right\"\u003eThis documentation was generated for \u003ca href=\"https://github.com/atjn/easy-web-app-builder#readme\"\u003eEasy Web App Builder\u003c/a\u003e 1.0.0-beta5\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatjn%2Feasy-web-app-builder","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fatjn%2Feasy-web-app-builder","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fatjn%2Feasy-web-app-builder/lists"}