{"action":"created","comment":{"url":"https://api.github.com/repos/gatsbyjs/gatsby/pulls/comments/242367248","pull_request_review_id":185860010,"id":242367248,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI0MjM2NzI0OA==","diff_hunk":"@@ -0,0 +1,405 @@\n+---\n+title: Turning the Static Dynamic: Gatsby + Netlify Functions + Netlify Identity\n+date: 2018-12-17\n+author: swyx\n+tags:\n+  - apps\n+  - web apps\n+  - applications\n+  - beyond static\n+excerpt: Gatsby is great for not only static sites but also traditional web applications. You can add authentication and serverless functionality up and running incredibly quickly with Netlify - here's how.\n+---\n+\n+[In a recent Reactiflux interview](https://www.reactiflux.com/transcripts/gatsby-team/), the Gatsby team was asked this question:\n+\n+> Q: What is one thing that Gatsby is capable of doing that might surprise some people? — ctlee\n+\n+> A: Gatsby can be used to build fully dynamic sites, which surprises some people because of it’s label as a “static site generator”. It’s fully equipped to be a powerful alternative to create-react-app and other similar solutions with the addition of easy pre-rendering and perf baked in. — biscarch\n+\n+Even though Dustin [recently wrote about Gatsby for Apps](https://www.gatsbyjs.org/blog/2018-11-07-gatsby-for-apps/) and open sourced his [Gatsby Mail](https://gatsby-mail.netlify.com/) demo, I do still find people constantly having to explain that Gatsby is \"not just for sites\".\n+\n+Today I'd like to show you how you can incrementally add functionality to a Gatsby static site with Netlify Functions, and then add authentication with Netlify Identity to begin a proper Gatsby app.\n+\n+## Static-Dynamic is a spectrum\n+\n+Why would you use something like Gatsby over Jekyll or Hugo or one of the [hundreds of Static Site Generators](https://www.staticgen.com/) out there? [There are many reasons](https://www.gatsbyjs.org/blog/2018-2-27-why-i-upgraded-my-website-to-gatsbyjs-from-jekyll/), but one of the unique selling points is how Gatsby helps you build [\"Static Progressive Web Apps\"](https://www.gatsbyjs.org/docs/progressive-web-app/#progressive-web-app) with React.\n+\n+[Gatsby's ability to rehydrate](https://www.gatsbyjs.org/docs/production-app/#dom-hydration) (what a delicious word!) the DOM means you can do incredibly dynamic things with Javascript and React that would be much harder with legacy SSG's.","path":"docs/blog/2018-12-17-turning-the-static-dynamic/index.md","position":27,"original_position":27,"commit_id":"dac1a9ecc04b8b23df2ccfd954c2a002281262b9","original_commit_id":"dac1a9ecc04b8b23df2ccfd954c2a002281262b9","user":{"login":"shannonbux","id":32467162,"node_id":"MDQ6VXNlcjMyNDY3MTYy","avatar_url":"https://avatars1.githubusercontent.com/u/32467162?v=4","gravatar_id":"","url":"https://api.github.com/users/shannonbux","html_url":"https://github.com/shannonbux","followers_url":"https://api.github.com/users/shannonbux/followers","following_url":"https://api.github.com/users/shannonbux/following{/other_user}","gists_url":"https://api.github.com/users/shannonbux/gists{/gist_id}","starred_url":"https://api.github.com/users/shannonbux/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shannonbux/subscriptions","organizations_url":"https://api.github.com/users/shannonbux/orgs","repos_url":"https://api.github.com/users/shannonbux/repos","events_url":"https://api.github.com/users/shannonbux/events{/privacy}","received_events_url":"https://api.github.com/users/shannonbux/received_events","type":"User","site_admin":false},"body":"yeah, \"rehydrate\" is great","created_at":"2018-12-18T00:23:10Z","updated_at":"2018-12-18T00:34:02Z","html_url":"https://github.com/gatsbyjs/gatsby/pull/10493#discussion_r242367248","pull_request_url":"https://api.github.com/repos/gatsbyjs/gatsby/pulls/10493","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/gatsbyjs/gatsby/pulls/comments/242367248"},"html":{"href":"https://github.com/gatsbyjs/gatsby/pull/10493#discussion_r242367248"},"pull_request":{"href":"https://api.github.com/repos/gatsbyjs/gatsby/pulls/10493"}}},"pull_request":{"url":"https://api.github.com/repos/gatsbyjs/gatsby/pulls/10493","id":238940124,"node_id":"MDExOlB1bGxSZXF1ZXN0MjM4OTQwMTI0","html_url":"https://github.com/gatsbyjs/gatsby/pull/10493","diff_url":"https://github.com/gatsbyjs/gatsby/pull/10493.diff","patch_url":"https://github.com/gatsbyjs/gatsby/pull/10493.patch","issue_url":"https://api.github.com/repos/gatsbyjs/gatsby/issues/10493","number":10493,"state":"open","locked":false,"title":"docs: add Static-To-Dynamic blogpost - gatsby + netlify identity + netlify functions","user":{"login":"sw-yx","id":6764957,"node_id":"MDQ6VXNlcjY3NjQ5NTc=","avatar_url":"https://avatars1.githubusercontent.com/u/6764957?v=4","gravatar_id":"","url":"https://api.github.com/users/sw-yx","html_url":"https://github.com/sw-yx","followers_url":"https://api.github.com/users/sw-yx/followers","following_url":"https://api.github.com/users/sw-yx/following{/other_user}","gists_url":"https://api.github.com/users/sw-yx/gists{/gist_id}","starred_url":"https://api.github.com/users/sw-yx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sw-yx/subscriptions","organizations_url":"https://api.github.com/users/sw-yx/orgs","repos_url":"https://api.github.com/users/sw-yx/repos","events_url":"https://api.github.com/users/sw-yx/events{/privacy}","received_events_url":"https://api.github.com/users/sw-yx/received_events","type":"User","site_admin":false},"body":"as discussed with @calcsam :)","created_at":"2018-12-16T00:39:13Z","updated_at":"2018-12-18T00:34:02Z","closed_at":null,"merged_at":null,"merge_commit_sha":"7f29949f0144272a12d7cbfd94cced2d520ed2e4","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":1118709590,"node_id":"MDU6TGFiZWwxMTE4NzA5NTkw","url":"https://api.github.com/repos/gatsbyjs/gatsby/labels/blogpost","name":"blogpost","color":"c5def5","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/gatsbyjs/gatsby/pulls/10493/commits","review_comments_url":"https://api.github.com/repos/gatsbyjs/gatsby/pulls/10493/comments","review_comment_url":"https://api.github.com/repos/gatsbyjs/gatsby/pulls/comments{/number}","comments_url":"https://api.github.com/repos/gatsbyjs/gatsby/issues/10493/comments","statuses_url":"https://api.github.com/repos/gatsbyjs/gatsby/statuses/dac1a9ecc04b8b23df2ccfd954c2a002281262b9","head":{"label":"gatsbyjs:netlify-identity-blogpost","ref":"netlify-identity-blogpost","sha":"dac1a9ecc04b8b23df2ccfd954c2a002281262b9","user":{"login":"gatsbyjs","id":12551863,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyNTUxODYz","avatar_url":"https://avatars1.githubusercontent.com/u/12551863?v=4","gravatar_id":"","url":"https://api.github.com/users/gatsbyjs","html_url":"https://github.com/gatsbyjs","followers_url":"https://api.github.com/users/gatsbyjs/followers","following_url":"https://api.github.com/users/gatsbyjs/following{/other_user}","gists_url":"https://api.github.com/users/gatsbyjs/gists{/gist_id}","starred_url":"https://api.github.com/users/gatsbyjs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gatsbyjs/subscriptions","organizations_url":"https://api.github.com/users/gatsbyjs/orgs","repos_url":"https://api.github.com/users/gatsbyjs/repos","events_url":"https://api.github.com/users/gatsbyjs/events{/privacy}","received_events_url":"https://api.github.com/users/gatsbyjs/received_events","type":"Organization","site_admin":false},"repo":{"id":36040894,"node_id":"MDEwOlJlcG9zaXRvcnkzNjA0MDg5NA==","name":"gatsby","full_name":"gatsbyjs/gatsby","private":false,"owner":{"login":"gatsbyjs","id":12551863,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyNTUxODYz","avatar_url":"https://avatars1.githubusercontent.com/u/12551863?v=4","gravatar_id":"","url":"https://api.github.com/users/gatsbyjs","html_url":"https://github.com/gatsbyjs","followers_url":"https://api.github.com/users/gatsbyjs/followers","following_url":"https://api.github.com/users/gatsbyjs/following{/other_user}","gists_url":"https://api.github.com/users/gatsbyjs/gists{/gist_id}","starred_url":"https://api.github.com/users/gatsbyjs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gatsbyjs/subscriptions","organizations_url":"https://api.github.com/users/gatsbyjs/orgs","repos_url":"https://api.github.com/users/gatsbyjs/repos","events_url":"https://api.github.com/users/gatsbyjs/events{/privacy}","received_events_url":"https://api.github.com/users/gatsbyjs/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/gatsbyjs/gatsby","description":"Build blazing fast, modern apps and websites with React","fork":false,"url":"https://api.github.com/repos/gatsbyjs/gatsby","forks_url":"https://api.github.com/repos/gatsbyjs/gatsby/forks","keys_url":"https://api.github.com/repos/gatsbyjs/gatsby/keys{/key_id}","collaborators_url":"https://api.github.com/repos/gatsbyjs/gatsby/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/gatsbyjs/gatsby/teams","hooks_url":"https://api.github.com/repos/gatsbyjs/gatsby/hooks","issue_events_url":"https://api.github.com/repos/gatsbyjs/gatsby/issues/events{/number}","events_url":"https://api.github.com/repos/gatsbyjs/gatsby/events","assignees_url":"https://api.github.com/repos/gatsbyjs/gatsby/assignees{/user}","branches_url":"https://api.github.com/repos/gatsbyjs/gatsby/branches{/branch}","tags_url":"https://api.github.com/repos/gatsbyjs/gatsby/tags","blobs_url":"https://api.github.com/repos/gatsbyjs/gatsby/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/gatsbyjs/gatsby/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/gatsbyjs/gatsby/git/refs{/sha}","trees_url":"https://api.github.com/repos/gatsbyjs/gatsby/git/trees{/sha}","statuses_url":"https://api.github.com/repos/gatsbyjs/gatsby/statuses/{sha}","languages_url":"https://api.github.com/repos/gatsbyjs/gatsby/languages","stargazers_url":"https://api.github.com/repos/gatsbyjs/gatsby/stargazers","contributors_url":"https://api.github.com/repos/gatsbyjs/gatsby/contributors","subscribers_url":"https://api.github.com/repos/gatsbyjs/gatsby/subscribers","subscription_url":"https://api.github.com/repos/gatsbyjs/gatsby/subscription","commits_url":"https://api.github.com/repos/gatsbyjs/gatsby/commits{/sha}","git_commits_url":"https://api.github.com/repos/gatsbyjs/gatsby/git/commits{/sha}","comments_url":"https://api.github.com/repos/gatsbyjs/gatsby/comments{/number}","issue_comment_url":"https://api.github.com/repos/gatsbyjs/gatsby/issues/comments{/number}","contents_url":"https://api.github.com/repos/gatsbyjs/gatsby/contents/{+path}","compare_url":"https://api.github.com/repos/gatsbyjs/gatsby/compare/{base}...{head}","merges_url":"https://api.github.com/repos/gatsbyjs/gatsby/merges","archive_url":"https://api.github.com/repos/gatsbyjs/gatsby/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/gatsbyjs/gatsby/downloads","issues_url":"https://api.github.com/repos/gatsbyjs/gatsby/issues{/number}","pulls_url":"https://api.github.com/repos/gatsbyjs/gatsby/pulls{/number}","milestones_url":"https://api.github.com/repos/gatsbyjs/gatsby/milestones{/number}","notifications_url":"https://api.github.com/repos/gatsbyjs/gatsby/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/gatsbyjs/gatsby/labels{/name}","releases_url":"https://api.github.com/repos/gatsbyjs/gatsby/releases{/id}","deployments_url":"https://api.github.com/repos/gatsbyjs/gatsby/deployments","created_at":"2015-05-21T22:43:05Z","updated_at":"2018-12-18T00:20:21Z","pushed_at":"2018-12-18T00:20:00Z","git_url":"git://github.com/gatsbyjs/gatsby.git","ssh_url":"git@github.com:gatsbyjs/gatsby.git","clone_url":"https://github.com/gatsbyjs/gatsby.git","svn_url":"https://github.com/gatsbyjs/gatsby","homepage":"https://www.gatsbyjs.org","size":541058,"stargazers_count":28971,"watchers_count":28971,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":3733,"mirror_url":null,"archived":false,"open_issues_count":865,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":3733,"open_issues":865,"watchers":28971,"default_branch":"master"}},"base":{"label":"gatsbyjs:master","ref":"master","sha":"b712b958f08498d80244f9f6dbafe8b9e27e9452","user":{"login":"gatsbyjs","id":12551863,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyNTUxODYz","avatar_url":"https://avatars1.githubusercontent.com/u/12551863?v=4","gravatar_id":"","url":"https://api.github.com/users/gatsbyjs","html_url":"https://github.com/gatsbyjs","followers_url":"https://api.github.com/users/gatsbyjs/followers","following_url":"https://api.github.com/users/gatsbyjs/following{/other_user}","gists_url":"https://api.github.com/users/gatsbyjs/gists{/gist_id}","starred_url":"https://api.github.com/users/gatsbyjs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gatsbyjs/subscriptions","organizations_url":"https://api.github.com/users/gatsbyjs/orgs","repos_url":"https://api.github.com/users/gatsbyjs/repos","events_url":"https://api.github.com/users/gatsbyjs/events{/privacy}","received_events_url":"https://api.github.com/users/gatsbyjs/received_events","type":"Organization","site_admin":false},"repo":{"id":36040894,"node_id":"MDEwOlJlcG9zaXRvcnkzNjA0MDg5NA==","name":"gatsby","full_name":"gatsbyjs/gatsby","private":false,"owner":{"login":"gatsbyjs","id":12551863,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEyNTUxODYz","avatar_url":"https://avatars1.githubusercontent.com/u/12551863?v=4","gravatar_id":"","url":"https://api.github.com/users/gatsbyjs","html_url":"https://github.com/gatsbyjs","followers_url":"https://api.github.com/users/gatsbyjs/followers","following_url":"https://api.github.com/users/gatsbyjs/following{/other_user}","gists_url":"https://api.github.com/users/gatsbyjs/gists{/gist_id}","starred_url":"https://api.github.com/users/gatsbyjs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gatsbyjs/subscriptions","organizations_url":"https://api.github.com/users/gatsbyjs/orgs","repos_url":"https://api.github.com/users/gatsbyjs/repos","events_url":"https://api.github.com/users/gatsbyjs/events{/privacy}","received_events_url":"https://api.github.com/users/gatsbyjs/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/gatsbyjs/gatsby","description":"Build blazing fast, modern apps and websites with React","fork":false,"url":"https://api.github.com/repos/gatsbyjs/gatsby","forks_url":"https://api.github.com/repos/gatsbyjs/gatsby/forks","keys_url":"https://api.github.com/repos/gatsbyjs/gatsby/keys{/key_id}","collaborators_url":"https://api.github.com/repos/gatsbyjs/gatsby/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/gatsbyjs/gatsby/teams","hooks_url":"https://api.github.com/repos/gatsbyjs/gatsby/hooks","issue_events_url":"https://api.github.com/repos/gatsbyjs/gatsby/issues/events{/number}","events_url":"https://api.github.com/repos/gatsbyjs/gatsby/events","assignees_url":"https://api.github.com/repos/gatsbyjs/gatsby/assignees{/user}","branches_url":"https://api.github.com/repos/gatsbyjs/gatsby/branches{/branch}","tags_url":"https://api.github.com/repos/gatsbyjs/gatsby/tags","blobs_url":"https://api.github.com/repos/gatsbyjs/gatsby/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/gatsbyjs/gatsby/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/gatsbyjs/gatsby/git/refs{/sha}","trees_url":"https://api.github.com/repos/gatsbyjs/gatsby/git/trees{/sha}","statuses_url":"https://api.github.com/repos/gatsbyjs/gatsby/statuses/{sha}","languages_url":"https://api.github.com/repos/gatsbyjs/gatsby/languages","stargazers_url":"https://api.github.com/repos/gatsbyjs/gatsby/stargazers","contributors_url":"https://api.github.com/repos/gatsbyjs/gatsby/contributors","subscribers_url":"https://api.github.com/repos/gatsbyjs/gatsby/subscribers","subscription_url":"https://api.github.com/repos/gatsbyjs/gatsby/subscription","commits_url":"https://api.github.com/repos/gatsbyjs/gatsby/commits{/sha}","git_commits_url":"https://api.github.com/repos/gatsbyjs/gatsby/git/commits{/sha}","comments_url":"https://api.github.com/repos/gatsbyjs/gatsby/comments{/number}","issue_comment_url":"https://api.github.com/repos/gatsbyjs/gatsby/issues/comments{/number}","contents_url":"https://api.github.com/repos/gatsbyjs/gatsby/contents/{+path}","compare_url":"https://api.github.com/repos/gatsbyjs/gatsby/compare/{base}...{head}","merges_url":"https://api.github.com/repos/gatsbyjs/gatsby/merges","archive_url":"https://api.github.com/repos/gatsbyjs/gatsby/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/gatsbyjs/gatsby/downloads","issues_url":"https://api.github.com/repos/gatsbyjs/gatsby/issues{/number}","pulls_url":"https://api.github.com/repos/gatsbyjs/gatsby/pulls{/number}","milestones_url":"https://api.github.com/repos/gatsbyjs/gatsby/milestones{/number}","notifications_url":"https://api.github.com/repos/gatsbyjs/gatsby/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/gatsbyjs/gatsby/labels{/name}","releases_url":"https://api.github.com/repos/gatsbyjs/gatsby/releases{/id}","deployments_url":"https://api.github.com/repos/gatsbyjs/gatsby/deployments","created_at":"2015-05-21T22:43:05Z","updated_at":"2018-12-18T00:20:21Z","pushed_at":"2018-12-18T00:20:00Z","git_url":"git://github.com/gatsbyjs/gatsby.git","ssh_url":"git@github.com:gatsbyjs/gatsby.git","clone_url":"https://github.com/gatsbyjs/gatsby.git","svn_url":"https://github.com/gatsbyjs/gatsby","homepage":"https://www.gatsbyjs.org","size":541058,"stargazers_count":28971,"watchers_count":28971,"language":"JavaScript","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":3733,"mirror_url":null,"archived":false,"open_issues_count":865,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":3733,"open_issues":865,"watchers":28971,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/gatsbyjs/gatsby/pulls/10493"},"html":{"href":"https://github.com/gatsbyjs/gatsby/pull/10493"},"issue":{"href":"https://api.github.com/repos/gatsbyjs/gatsby/issues/10493"},"comments":{"href":"https://api.github.com/repos/gatsbyjs/gatsby/issues/10493/comments"},"review_comments":{"href":"https://api.github.com/repos/gatsbyjs/gatsby/pulls/10493/comments"},"review_comment":{"href":"https://api.github.com/repos/gatsbyjs/gatsby/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/gatsbyjs/gatsby/pulls/10493/commits"},"statuses":{"href":"https://api.github.com/repos/gatsbyjs/gatsby/statuses/dac1a9ecc04b8b23df2ccfd954c2a002281262b9"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"shannonbux"}}