{"id":21372837,"url":"https://github.com/calebnance/feather-ssg","last_synced_at":"2026-04-07T22:31:36.159Z","repository":{"id":45792952,"uuid":"313824396","full_name":"calebnance/feather-ssg","owner":"calebnance","description":"feather static site generator","archived":false,"fork":false,"pushed_at":"2022-07-27T02:06:36.000Z","size":6667,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-24T18:40:36.475Z","etag":null,"topics":["css","gulp","gulp4","html","markdown","nunjucks","scss","server","ssg","static","static-site","static-site-generator"],"latest_commit_sha":null,"homepage":"https://feather-ssg.dev","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/calebnance.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-11-18T04:40:01.000Z","updated_at":"2022-05-11T00:17:31.000Z","dependencies_parsed_at":"2022-07-17T01:16:21.592Z","dependency_job_id":null,"html_url":"https://github.com/calebnance/feather-ssg","commit_stats":null,"previous_names":[],"tags_count":0,"template":true,"template_full_name":null,"purl":"pkg:github/calebnance/feather-ssg","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/calebnance%2Ffeather-ssg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/calebnance%2Ffeather-ssg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/calebnance%2Ffeather-ssg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/calebnance%2Ffeather-ssg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/calebnance","download_url":"https://codeload.github.com/calebnance/feather-ssg/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/calebnance%2Ffeather-ssg/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31532195,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-07T16:28:08.000Z","status":"ssl_error","status_checked_at":"2026-04-07T16:28:06.951Z","response_time":105,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["css","gulp","gulp4","html","markdown","nunjucks","scss","server","ssg","static","static-site","static-site-generator"],"created_at":"2024-11-22T08:23:18.727Z","updated_at":"2026-04-07T22:31:36.145Z","avatar_url":"https://github.com/calebnance.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# feather ssg (static site generator)\n\nhtml/css/js + markdown + gulp automation + hot-reloading to create lightweight static sites\n\n[feather-ssg.dev](https://feather-ssg.dev)\n\n---\n\n- [Features](#features)\n- [Roadmap](#roadmap)\n- [Install](#install)\n- [Development environment](#development-environment)\n- [Production builds](#production-builds)\n- [Deploying to Vercel](#deploying-to-vercel)\n- [Technologies Used](#technologies-used)\n- [Helpful code editor packages](#helpful-code-editor-packages)\n\n## Features\n\n- Fast reload on all edits\n- QR code for physical mobile web app development (also with fast reload)\n- HTML + Nunjucks Templating with Layouts\n- SCSS =\u003e CSS\n- CSS \u0026 JS Minified\n- Dark Mode check with JavaScript (adds `.dark-mode` to body)\n- Markdown support + Front Matter for page data\n- Meta supported: title, description, canonical, robots, etc.\n- Next / Previous Posts generated (within it's category)\n- Relative / Absolute pathing handled for you\n- Sitemap.xml created\n- Build stats\n  - Page count\n  - CSS before and after minification\n- eslint/prettier\n\n## Roadmap\n\n- [ ] Local WYSIWYG Editor\n- [ ] Category support\n- [ ] Show HTML before and after sizes in build report\n- [ ] Use [purgecss](https://purgecss.com/plugins/gulp.html#installation)?\n- [ ] Theming (+ predefined palettes, scss variables and root css usage)\n\n## Install\n\nrun: `yarn` or `yarn install`\n\n\n## Development environment\n\n- start local server, run: `yarn dev`\n- stop local server: **ctl** + **c**\n\n## Production builds\n\n#### create for Production deploy\n\n- run: `yarn prod`\n- creates: **/static_prod/**\n\n## Deploying to Vercel\n\n- Make sure you have [Vercel CLI](https://vercel.com/download) installed globally on your machine\n- then run: `yarn prod` to make sure you have all static files generated and ready for deployment\n- then run: `vercel` *(this will prompt a login if you are not already)*\n- going through the setup flow, make sure to set the directory your code is located to be: **./static_prod**\n- ***side note***, i've added a custom domain, (feather-ssg.dev) so to push to that domain i run: `vercel --prod`\n\n## Technologies Used\n\n- Gulp v.4\n    - [task()](https://gulpjs.com/docs/en/api/task)\n    - [watch()](https://gulpjs.com/docs/en/api/watch)\n    - [series()](https://gulpjs.com/docs/en/api/series)\n    - [parallel()](https://gulpjs.com/docs/en/api/parallel)\n    - [forward()](https://gulpjs.com/docs/en/api/series#forward-references) with Gulp v.4, they removed the ability for forward reference a task, to help performance, so you must define a task before it is called.\n- SCSS \u0026 CSS Minification\n    - [gulp-sass](https://www.npmjs.com/package/gulp-sass)\n    - [gulp-clean-css](https://www.npmjs.com/package/gulp-clean-css)\n- Nunjucks \u0026 HTML Minification\n    - [gulp-nunjucks-render](https://www.npmjs.com/package/gulp-nunjucks-render)\n    - [gulp-htmlmin](https://www.npmjs.com/package/gulp-htmlmin)\n- [BrowserSync with Gulp](https://browsersync.io/docs/gulp)\n    - for hot-reloading after a change is made to, sccs/js/nunjucks\n    - [QR Code Plugin](https://github.com/0ahz/bs-console-qrcode) for quick development on a physical mobile device (same wifi network required).\n- Notification/Error handling:\n    - [node-notifier](https://www.npmjs.com/package/node-notifier)\n    - **error handling** is happening at the compile state for both scss \u0026 nunjucks\n- Cleaning up directories before a new compile: [del](https://github.com/gulpjs/gulp/blob/master/docs/recipes/delete-files-folder.md#delete-files-and-folders)\n- CLI helpful coloring using [chalk](https://github.com/chalk/chalk)\n\n## Helpful code editor packages\n\n- For Atom:\n    - [Syntax highlighting for nunjucks templates](https://atom.io/packages/language-nunjucks)\n    - [Displays Colors used in project](https://atom.io/packages/pigments) (even scss variables)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcalebnance%2Ffeather-ssg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcalebnance%2Ffeather-ssg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcalebnance%2Ffeather-ssg/lists"}