{"id":15209133,"url":"https://github.com/waldronmatt/bowman","last_synced_at":"2025-10-29T13:30:23.624Z","repository":{"id":54789100,"uuid":"277166018","full_name":"waldronmatt/bowman","owner":"waldronmatt","description":"A simple static site generator with an integrated toolchain for efficient development and delivery.","archived":false,"fork":false,"pushed_at":"2021-09-24T22:08:55.000Z","size":31877,"stargazers_count":20,"open_issues_count":0,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-02T01:32:21.603Z","etag":null,"topics":["asset-management","browsersync","compile","ejs","eslint","generator","glob","html","javascript","javascript-template-engine","json","nodejs","postcss","scss","site","static","static-site-generator","stylelint","template","webpack"],"latest_commit_sha":null,"homepage":"https://bowman.netlify.app/","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/waldronmatt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-07-04T18:37:10.000Z","updated_at":"2024-02-21T11:10:50.000Z","dependencies_parsed_at":"2022-08-14T03:00:47.170Z","dependency_job_id":null,"html_url":"https://github.com/waldronmatt/bowman","commit_stats":null,"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waldronmatt%2Fbowman","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waldronmatt%2Fbowman/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waldronmatt%2Fbowman/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/waldronmatt%2Fbowman/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/waldronmatt","download_url":"https://codeload.github.com/waldronmatt/bowman/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":238825809,"owners_count":19537131,"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":["asset-management","browsersync","compile","ejs","eslint","generator","glob","html","javascript","javascript-template-engine","json","nodejs","postcss","scss","site","static","static-site-generator","stylelint","template","webpack"],"created_at":"2024-09-28T07:21:33.847Z","updated_at":"2025-10-29T13:30:23.189Z","avatar_url":"https://github.com/waldronmatt.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Bowman\n\n[![Netlify Status](https://api.netlify.com/api/v1/badges/981f8252-c7bd-4215-8b05-60aee8402a2d/deploy-status)](https://app.netlify.com/sites/bowman/deploys) ![npm](https://img.shields.io/npm/v/@waldronmatt/bowman) ![webpack](https://img.shields.io/badge/webpack-4.43.0-green)\n\nA simple static site generator with an integrated toolchain for efficient development and delivery. [Click here to see it live on Netlify](https://bowman.netlify.app).\n\n![](bowman.gif)\n\n## Introduction\n\nBowman is a simple static site generator powered by Node.js, Webpack, and Browsersync. Bowman comes with pre-configured scripts to bundle assets, generate markup, and hot-reload pages. Pages are generated using the J.E.N. technology core (JSON - data, EJS - templating, Node.js - markup generation).\n\n## Installation\n\nInstall globally:\n\n        npm i -g @waldronmatt/bowman\n\nCreate project:\n\n       create-bowman-starter -y\n\n\nInstall dependencies:\n\n        npm install\n\n## Getting Started\n\nRun dev environment:\n\n        npm run dev\n\nBuild and serve for production:\n\n        npm run build\n\n## Languages\n\nUse core front-end languages and JavaScript-like technologies to build your site.\n\n- Next-Gen JavaScript\n- Sass\n- EJS - generate HTML markup with plain JavaScript\n- JSON - store page text/data\n\n## Workflow\n\nUtilize a complete workflow of industry-leading software:\n\n- Webpack: module bundler\n- Browsersync: Development server for serving assets\n- Autoprefixer: Automatically add vendor prefixes to styles\n- Babel: Transpile to different versions of EcmaScript\n- Browserlist: Configure which browsers will be supported\n- Prettier: Formatter for scripts and styles\n- ESLint: Linting for scripts\n- StyleLint: Linting for styles\n- EditorConfig: general file formatter for your editor/IDE\n\n## Features\n\nTake advantage of Bowman's build scripts with performance and best practices built in:\n\n- Bowman\n  - Recursively find, generate, and minify html markup\n  - JSON cache prevention and file watch debouncing for robust page hot-reloading\n- Webpack\n  - Recursively find and output entry points\n  - Transpile Next-Gen JavaScript using Babel\n  - Compile Sass using Webpack loaders\n  - Manifest generation for assets so you can reference in your markup\n  - Minify js and css\n  - Compress images and generate next-gen image formats\n- Browsersync\n  - Serve pages and assets for development\n\n## Bowman Starter Template\n\nBowman comes with a default template with the following features:\n\n- ~100% Lighthouse Score on Mobile and Desktop (Excluding PWA)\n- Contains popular, pre-configured webpack optimizations with examples:\n  - cache busting using [contenthash]\n  - code splitting\n  - tree-shaking\n- Polyfill support\n- Eliminates render blocking js/css\n- Next-gen image and fallback support for production builds\n- Critical css and favicon generation\n- Popular css reset and normalizing libraries\n- Suggested folder structure for an organized project\n\n## Usage\n\n### Create the markup\n\n        build/\n            content/\n                my-page.ejs\n\nmy-page.ejs\n\n        \u003ch1\u003e\u003c%= data.info.header %\u003e\u003c/h1\u003e\n\n        \u003cdiv class=\"container\"\u003e\n            \u003cp\u003e\u003c%= data.info.description %\u003e\u003c/p\u003e\n        \u003c/div\u003e\n\n### Create the data\n\n        build/\n            data/\n                my-page.json\n\nmy-page.json\n\n        {\n            \"title\": \"My Page\",\n            \"info\": {\n                \"header\": \"Hello World!\",\n                \"description\": \"This is my cool new page.\"\n            }\n        }\n\n## Documentation\n\n[Read the full documentation](https://github.com/waldronmatt/bowman/tree/master/docs)\n\n## Limitations\n\nBowman has several caveats/unsupported features:\n\n- file/folder structures must match for page data and markup\n  - the decision was made to keep both build/content/ and build/data/ the same structure in order to easily automate variable page generation\n- webpack prefetch and preload needs webpack html-webpack-plugin to work\n- font file cache-busting not supported\n\n## Contributing\n\nPull requests are welcome! For major changes, please open an issue first to discuss what you would like to change.\n\n## License\n\nMIT\n\n## Credits\n\n- CLI authored by Dominik Kundel's [create-project](https://github.com/dkundel/create-project)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwaldronmatt%2Fbowman","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwaldronmatt%2Fbowman","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwaldronmatt%2Fbowman/lists"}