{"id":15091672,"url":"https://github.com/snollygolly/koa-starter","last_synced_at":"2026-03-06T12:33:55.739Z","repository":{"id":2942332,"uuid":"47945532","full_name":"snollygolly/koa-starter","owner":"snollygolly","description":":koala: A starter kit for a slightly opinionated koa project.","archived":false,"fork":false,"pushed_at":"2026-02-14T05:25:39.000Z","size":2672,"stargazers_count":86,"open_issues_count":9,"forks_count":17,"subscribers_count":5,"default_branch":"master","last_synced_at":"2026-02-14T13:43:51.526Z","etag":null,"topics":["bootstrap","handlebars","koa","passport","starter-kit"],"latest_commit_sha":null,"homepage":"","language":"Handlebars","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/snollygolly.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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":"2015-12-14T01:40:20.000Z","updated_at":"2024-07-02T01:18:27.000Z","dependencies_parsed_at":"2024-09-11T19:55:52.379Z","dependency_job_id":"dfebfe56-07aa-44d1-adaa-3ac14b80ba4a","html_url":"https://github.com/snollygolly/koa-starter","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/snollygolly/koa-starter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snollygolly%2Fkoa-starter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snollygolly%2Fkoa-starter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snollygolly%2Fkoa-starter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snollygolly%2Fkoa-starter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/snollygolly","download_url":"https://codeload.github.com/snollygolly/koa-starter/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/snollygolly%2Fkoa-starter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30176301,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-06T11:48:51.886Z","status":"ssl_error","status_checked_at":"2026-03-06T11:48:51.460Z","response_time":250,"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":["bootstrap","handlebars","koa","passport","starter-kit"],"created_at":"2024-09-25T10:42:38.004Z","updated_at":"2026-03-06T12:33:55.708Z","avatar_url":"https://github.com/snollygolly.png","language":"Handlebars","funding_links":[],"categories":[],"sub_categories":[],"readme":"# :koala: koa-starter\nA starter kit for a slightly opinionated [Koa](http://koajs.com/) project.\n\n## Opinions\nI built this Koa starter kit because there's a number of packages I like to use when starting a new project.  The major ones are:\n\n* [Koa v2](http://koajs.com/)\n* [Passport](http://passportjs.org/)\n* [Handlebars](http://handlebarsjs.com/)\n* [Bootstrap v4.2.1](http://getbootstrap.com/)\n* [FontAwesome 4.7](https://fortawesome.github.io/Font-Awesome/)\n\nI'm also including goodies from:\n\n* [Nodemon](https://github.com/remy/nodemon)\n* [Bootstrap Social](http://lipis.github.io/bootstrap-social/)\n* [Github Corners](https://github.com/tholman/github-corners)\n* [Google Universal Analytics](https://www.google.com/analytics/)\n* [ESLint](http://eslint.org/)\n* [Auth0](https://auth0.com/)\n\n## Prerequisites\n* [Node.js](https://nodejs.org/en/) (Version 8 and up recommended, async/await support required)\n* [Github Client ID and Secret](https://github.com/settings/developers) (for OAuth)\n* [Auth0 Account](https://auth0.com/) (for OAuth)\n\n### Installation\n\n* Clone down the repository.\n```\ngit clone https://github.com/snollygolly/koa-starter.git\n```\n\n* Install packages (from inside the koa-starter folder).\n```\nnpm install\n```\n\n* Create your config.  There's a `config.example.json` file in the root.  Edit it to include all your values for the site and your OAuth information.  Save it as `config.json` and leave it in the root.\n\n* If you want to use Google Analytics, set `config.site.analytics` to your Tracking ID and make sure the analytics partial (analytics.hbs) contains the correct Universal Analytics tracking code.  If you don't want to use Google Analytics, remove that property or set it to false.\n\n* Start it up.\n```\nnpm start\n```\n\n* Enjoy!\n\n## Extras\n\nWhile koa-starter isn't a framework, I've added a few small extras to make getting your project up and started as easy as possible.\n\n#### Including assets from view rendering\n\nWhen you render you view, you can use the following properties to link to assets.\n\n- Scripts: This array contains scripts living in `/assets/js` that you'd like to link to.  The `.js` will be added for you.\n\n```\nawait ctx.render(\"index\", {\n  title: config.site.name,\n  user: user,\n  scripts: [\"index\", \"extra\"]\n});\n```\n\n- Vendor JavaScript: This array contains links to external files you'd like to link to.  The `.js` will not be added for you.\n\n```\nawait ctx.render(\"index\", {\n  title: config.site.name,\n  user: user,\n  vendor_js: [\"http://vendor.com/cdn/lib.min.js\"]\n});\n```\n\n- Vendor CSS: This array contains links to external files you'd like to link to.  The `.css` will not be added for you.\n\n```\nawait ctx.render(\"index\", {\n  title: config.site.name,\n  user: user,\n  vendor_css: [\"http://vendor.com/cdn/lib.min.css\"]\n});\n```\n\n#### Error Handling\n\nThrown errors are caught in the error handling middleware in `index.js`.  By default, all errors will render the `error.hbs` view with information about the error.  It's possible to set `ctx.state.api` equal to `true` in the controller to tell the error handling middleware that this route is an API endpoint, and the error should be sent in JSON instead of rendered as a view.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsnollygolly%2Fkoa-starter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsnollygolly%2Fkoa-starter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsnollygolly%2Fkoa-starter/lists"}