{"action":"created","comment":{"url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/pulls/comments/103081135","pull_request_review_id":23860178,"id":103081135,"diff_hunk":"@@ -0,0 +1,51 @@\n+# Compress with Brotli and Gzip\n+\n+## Functionality\n+\n+Compress static files with Brotli and Gzip using maximum compression.\n+This greatly reduces file size. Which means files can download much faster.\n+For more background read [our blog post on static site implosion with Brotli and Gzip](https://www.voorhoede.nl/en/blog/static-site-implosion-with-brotli-and-gzip/).  \n+\n+\n+## Usage\n+\n+### Install dependencies\n+\n+All dependencies needed to run the tests are pre-configured in [`package.json`](package.json). You just need to install these:\n+\n+```bash\n+npm install\n+```\n+\n+Note: it's smart to update to the latest versions of these dependencies.\n+\n+\n+### Configure in- and output directory\n+\n+Adjust the `inputDir` and `outputDir` in [`scripts/compress.js`](scripts/compress.js) (both default to `dist/`).\n+\n+\n+### Run compress script\n+\n+Compress all files in `inputDir` and write to `outputDir`:\n+\n+```bash\n+npm run compress\n+```\n+\n+Note: This setup contains an example file in [`dist/examples/`](dist/examples/).\n+As this setup uses the `inputDir` as the `outputDir` the compressed files are placed right next to the original.\n+\n+\n+### Configure server to use precompressed files\n+\n+You'll need to configure your server to serve the precompressed files when available.\n+In addition you can enable on-the-fly compression of dynamic assets.\n+\n+* [Nginx configuration for serving precompressed files](lib/static-compression-nginx.conf)\n+\n+","path":"compress-with-brotli-and-gzip/README.md","position":47,"original_position":47,"commit_id":"8ed54bee66e5b4ab99886d8432484eb5c4bf83f2","original_commit_id":"8ed54bee66e5b4ab99886d8432484eb5c4bf83f2","user":{"login":"thadeetrompetter","id":5120227,"avatar_url":"https://avatars.githubusercontent.com/u/5120227?v=3","gravatar_id":"","url":"https://api.github.com/users/thadeetrompetter","html_url":"https://github.com/thadeetrompetter","followers_url":"https://api.github.com/users/thadeetrompetter/followers","following_url":"https://api.github.com/users/thadeetrompetter/following{/other_user}","gists_url":"https://api.github.com/users/thadeetrompetter/gists{/gist_id}","starred_url":"https://api.github.com/users/thadeetrompetter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/thadeetrompetter/subscriptions","organizations_url":"https://api.github.com/users/thadeetrompetter/orgs","repos_url":"https://api.github.com/users/thadeetrompetter/repos","events_url":"https://api.github.com/users/thadeetrompetter/events{/privacy}","received_events_url":"https://api.github.com/users/thadeetrompetter/received_events","type":"User","site_admin":false},"body":"it's mentioned in the blog article, but maybe include a [link to Brotli Nginx module](https://github.com/google/ngx_brotli) here to make it perfectly clear that action is required to get Brotli to work with nginx?","created_at":"2017-02-25T15:31:19Z","updated_at":"2017-02-25T15:31:19Z","html_url":"https://github.com/voorhoede/front-end-tooling-recipes/pull/13#discussion_r103081135","pull_request_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/pulls/13","_links":{"self":{"href":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/pulls/comments/103081135"},"html":{"href":"https://github.com/voorhoede/front-end-tooling-recipes/pull/13#discussion_r103081135"},"pull_request":{"href":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/pulls/13"}}},"pull_request":{"url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/pulls/13","id":107919608,"html_url":"https://github.com/voorhoede/front-end-tooling-recipes/pull/13","diff_url":"https://github.com/voorhoede/front-end-tooling-recipes/pull/13.diff","patch_url":"https://github.com/voorhoede/front-end-tooling-recipes/pull/13.patch","issue_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/issues/13","number":13,"state":"open","locked":false,"title":"feat(compress): max compression w/ brotli & gzip","user":{"login":"jbmoelker","id":1516059,"avatar_url":"https://avatars.githubusercontent.com/u/1516059?v=3","gravatar_id":"","url":"https://api.github.com/users/jbmoelker","html_url":"https://github.com/jbmoelker","followers_url":"https://api.github.com/users/jbmoelker/followers","following_url":"https://api.github.com/users/jbmoelker/following{/other_user}","gists_url":"https://api.github.com/users/jbmoelker/gists{/gist_id}","starred_url":"https://api.github.com/users/jbmoelker/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jbmoelker/subscriptions","organizations_url":"https://api.github.com/users/jbmoelker/orgs","repos_url":"https://api.github.com/users/jbmoelker/repos","events_url":"https://api.github.com/users/jbmoelker/events{/privacy}","received_events_url":"https://api.github.com/users/jbmoelker/received_events","type":"User","site_admin":false},"body":"## Summary\r\n\r\nRecipe including:\r\n\r\n* npm task\r\n* nginx config\r\n* docs\r\n\r\n## Checklist\r\n\r\n* [x] The changes only affect or contain one recipe.\r\n* [x] The changes are according to [contribution guidelines](/CONTRIBUTING.md#guidelines).\r\n* [x] The new recipe has an entry in the [recipes index](/README.md#recipes) (only in case of new recipe).\r\n* [x] The changes can be merged into the target branch without conflicts. \r\n","created_at":"2017-02-24T22:18:13Z","updated_at":"2017-02-25T15:31:19Z","closed_at":null,"merged_at":null,"merge_commit_sha":"b4adf6c6ed6a0d65e5103307640482ca2ec25905","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/pulls/13/commits","review_comments_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/pulls/13/comments","review_comment_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/pulls/comments{/number}","comments_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/issues/13/comments","statuses_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/statuses/8ed54bee66e5b4ab99886d8432484eb5c4bf83f2","head":{"label":"voorhoede:compress-with-brotli-and-gzip","ref":"compress-with-brotli-and-gzip","sha":"8ed54bee66e5b4ab99886d8432484eb5c4bf83f2","user":{"login":"voorhoede","id":2759382,"avatar_url":"https://avatars.githubusercontent.com/u/2759382?v=3","gravatar_id":"","url":"https://api.github.com/users/voorhoede","html_url":"https://github.com/voorhoede","followers_url":"https://api.github.com/users/voorhoede/followers","following_url":"https://api.github.com/users/voorhoede/following{/other_user}","gists_url":"https://api.github.com/users/voorhoede/gists{/gist_id}","starred_url":"https://api.github.com/users/voorhoede/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/voorhoede/subscriptions","organizations_url":"https://api.github.com/users/voorhoede/orgs","repos_url":"https://api.github.com/users/voorhoede/repos","events_url":"https://api.github.com/users/voorhoede/events{/privacy}","received_events_url":"https://api.github.com/users/voorhoede/received_events","type":"Organization","site_admin":false},"repo":{"id":59119517,"name":"front-end-tooling-recipes","full_name":"voorhoede/front-end-tooling-recipes","owner":{"login":"voorhoede","id":2759382,"avatar_url":"https://avatars.githubusercontent.com/u/2759382?v=3","gravatar_id":"","url":"https://api.github.com/users/voorhoede","html_url":"https://github.com/voorhoede","followers_url":"https://api.github.com/users/voorhoede/followers","following_url":"https://api.github.com/users/voorhoede/following{/other_user}","gists_url":"https://api.github.com/users/voorhoede/gists{/gist_id}","starred_url":"https://api.github.com/users/voorhoede/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/voorhoede/subscriptions","organizations_url":"https://api.github.com/users/voorhoede/orgs","repos_url":"https://api.github.com/users/voorhoede/repos","events_url":"https://api.github.com/users/voorhoede/events{/privacy}","received_events_url":"https://api.github.com/users/voorhoede/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/voorhoede/front-end-tooling-recipes","description":"Collection of pre-configured front-end tooling setups for common uses.","fork":false,"url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes","forks_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/forks","keys_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/keys{/key_id}","collaborators_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/teams","hooks_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/hooks","issue_events_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/issues/events{/number}","events_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/events","assignees_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/assignees{/user}","branches_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/branches{/branch}","tags_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/tags","blobs_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/git/refs{/sha}","trees_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/git/trees{/sha}","statuses_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/statuses/{sha}","languages_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/languages","stargazers_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/stargazers","contributors_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/contributors","subscribers_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/subscribers","subscription_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/subscription","commits_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/commits{/sha}","git_commits_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/git/commits{/sha}","comments_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/comments{/number}","issue_comment_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/issues/comments{/number}","contents_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/contents/{+path}","compare_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/compare/{base}...{head}","merges_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/merges","archive_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/downloads","issues_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/issues{/number}","pulls_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/pulls{/number}","milestones_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/milestones{/number}","notifications_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/labels{/name}","releases_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/releases{/id}","deployments_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/deployments","created_at":"2016-05-18T13:46:25Z","updated_at":"2017-02-15T07:44:17Z","pushed_at":"2017-02-25T11:59:38Z","git_url":"git://github.com/voorhoede/front-end-tooling-recipes.git","ssh_url":"git@github.com:voorhoede/front-end-tooling-recipes.git","clone_url":"https://github.com/voorhoede/front-end-tooling-recipes.git","svn_url":"https://github.com/voorhoede/front-end-tooling-recipes","homepage":"https://voorhoede.github.io/front-end-tooling-recipes/","size":41,"stargazers_count":4,"watchers_count":4,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":1,"mirror_url":null,"open_issues_count":4,"forks":1,"open_issues":4,"watchers":4,"default_branch":"master"}},"base":{"label":"voorhoede:master","ref":"master","sha":"0a3e9e4d8616d5e26832dfe10aa7c0e50d45e4a1","user":{"login":"voorhoede","id":2759382,"avatar_url":"https://avatars.githubusercontent.com/u/2759382?v=3","gravatar_id":"","url":"https://api.github.com/users/voorhoede","html_url":"https://github.com/voorhoede","followers_url":"https://api.github.com/users/voorhoede/followers","following_url":"https://api.github.com/users/voorhoede/following{/other_user}","gists_url":"https://api.github.com/users/voorhoede/gists{/gist_id}","starred_url":"https://api.github.com/users/voorhoede/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/voorhoede/subscriptions","organizations_url":"https://api.github.com/users/voorhoede/orgs","repos_url":"https://api.github.com/users/voorhoede/repos","events_url":"https://api.github.com/users/voorhoede/events{/privacy}","received_events_url":"https://api.github.com/users/voorhoede/received_events","type":"Organization","site_admin":false},"repo":{"id":59119517,"name":"front-end-tooling-recipes","full_name":"voorhoede/front-end-tooling-recipes","owner":{"login":"voorhoede","id":2759382,"avatar_url":"https://avatars.githubusercontent.com/u/2759382?v=3","gravatar_id":"","url":"https://api.github.com/users/voorhoede","html_url":"https://github.com/voorhoede","followers_url":"https://api.github.com/users/voorhoede/followers","following_url":"https://api.github.com/users/voorhoede/following{/other_user}","gists_url":"https://api.github.com/users/voorhoede/gists{/gist_id}","starred_url":"https://api.github.com/users/voorhoede/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/voorhoede/subscriptions","organizations_url":"https://api.github.com/users/voorhoede/orgs","repos_url":"https://api.github.com/users/voorhoede/repos","events_url":"https://api.github.com/users/voorhoede/events{/privacy}","received_events_url":"https://api.github.com/users/voorhoede/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/voorhoede/front-end-tooling-recipes","description":"Collection of pre-configured front-end tooling setups for common uses.","fork":false,"url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes","forks_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/forks","keys_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/keys{/key_id}","collaborators_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/teams","hooks_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/hooks","issue_events_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/issues/events{/number}","events_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/events","assignees_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/assignees{/user}","branches_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/branches{/branch}","tags_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/tags","blobs_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/git/refs{/sha}","trees_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/git/trees{/sha}","statuses_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/statuses/{sha}","languages_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/languages","stargazers_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/stargazers","contributors_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/contributors","subscribers_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/subscribers","subscription_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/subscription","commits_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/commits{/sha}","git_commits_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/git/commits{/sha}","comments_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/comments{/number}","issue_comment_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/issues/comments{/number}","contents_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/contents/{+path}","compare_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/compare/{base}...{head}","merges_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/merges","archive_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/downloads","issues_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/issues{/number}","pulls_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/pulls{/number}","milestones_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/milestones{/number}","notifications_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/labels{/name}","releases_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/releases{/id}","deployments_url":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/deployments","created_at":"2016-05-18T13:46:25Z","updated_at":"2017-02-15T07:44:17Z","pushed_at":"2017-02-25T11:59:38Z","git_url":"git://github.com/voorhoede/front-end-tooling-recipes.git","ssh_url":"git@github.com:voorhoede/front-end-tooling-recipes.git","clone_url":"https://github.com/voorhoede/front-end-tooling-recipes.git","svn_url":"https://github.com/voorhoede/front-end-tooling-recipes","homepage":"https://voorhoede.github.io/front-end-tooling-recipes/","size":41,"stargazers_count":4,"watchers_count":4,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":1,"mirror_url":null,"open_issues_count":4,"forks":1,"open_issues":4,"watchers":4,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/pulls/13"},"html":{"href":"https://github.com/voorhoede/front-end-tooling-recipes/pull/13"},"issue":{"href":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/issues/13"},"comments":{"href":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/issues/13/comments"},"review_comments":{"href":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/pulls/13/comments"},"review_comment":{"href":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/pulls/13/commits"},"statuses":{"href":"https://api.github.com/repos/voorhoede/front-end-tooling-recipes/statuses/8ed54bee66e5b4ab99886d8432484eb5c4bf83f2"}}}}
{"actor":{"display_login":"thadeetrompetter"}}