{"id":16237021,"url":"https://github.com/jlengstorf/frontendmasters-serverless","last_synced_at":"2025-08-13T03:20:20.757Z","repository":{"id":42698452,"uuid":"280740005","full_name":"jlengstorf/frontendmasters-serverless","owner":"jlengstorf","description":"Source code for the Serverless workshop on Frontend Masters.","archived":false,"fork":false,"pushed_at":"2024-04-06T15:21:34.000Z","size":461,"stargazers_count":76,"open_issues_count":8,"forks_count":56,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-08-04T06:23:47.296Z","etag":null,"topics":["serverless","serverless-functions","workshop"],"latest_commit_sha":null,"homepage":"https://frontendmasters.com/courses/serverless-functions/","language":"HTML","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/jlengstorf.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}},"created_at":"2020-07-18T21:09:25.000Z","updated_at":"2025-06-09T06:08:28.000Z","dependencies_parsed_at":"2022-08-22T14:50:51.213Z","dependency_job_id":null,"html_url":"https://github.com/jlengstorf/frontendmasters-serverless","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jlengstorf/frontendmasters-serverless","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlengstorf%2Ffrontendmasters-serverless","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlengstorf%2Ffrontendmasters-serverless/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlengstorf%2Ffrontendmasters-serverless/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlengstorf%2Ffrontendmasters-serverless/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jlengstorf","download_url":"https://codeload.github.com/jlengstorf/frontendmasters-serverless/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jlengstorf%2Ffrontendmasters-serverless/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270173884,"owners_count":24539659,"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","status":"online","status_checked_at":"2025-08-13T02:00:09.904Z","response_time":66,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["serverless","serverless-functions","workshop"],"created_at":"2024-10-10T13:34:02.815Z","updated_at":"2025-08-13T03:20:20.688Z","avatar_url":"https://github.com/jlengstorf.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Frontend Masters: Serverless Functions with Jason Lengstorf\n\nThis is the source code for a Frontend Masters course with Jason Lengstorf about serverless functions.\n\nLive site! https://frontendmasters-serverless.netlify.app/\n\n### [See details](https://frontendmasters.com/courses/serverless-functions/)\n\n## The Major Things We’ll Learn in This Workshop\n\n1. What does “serverless” mean?\n2. How to load data using serverless functions\n3. How to protect private credentials in front-end applications\n4. How to send data to serverless functions\n5. How to save data sent to serverless functions\n6. How to limit access to serverless functions\n\n## Get Started\n\nNode version: v12.12.0\n\n```bash\n# currently v2.58.0\nnpm install -g netlify-cli@latest\n```\n\n```bash\n# or use HTTPS if you have issues cloning\ngit clone --branch start https://github.com/jlengstorf/frontendmasters-serverless.git\n```\n\n## Get Environment Variables:\n\nSave all of these in `.env`:\n\n- `OMDB_API_KEY` — get this from https://omdbapi.com/\n- `HASURA_API_URL` — get this from https://hasura.io/\n- `HASURA_ADMIN_SECRET` — get this from https://hasura.io/\n\nMake sure to install dotenv `npm install dotenv` and add `require(\"dotenv\").config()` to each file that uses one of the environment variables.\n\n## Resources\n\n- [Netlify Functions](https://www.netlify.com/products/functions/?utm_source=fem-sls\u0026utm_medium=functions-jl\u0026utm_campaign=devex)\n- [Netlify Identity](https://docs.netlify.com/visitor-access/identity/?utm_source=fem-sls\u0026utm_medium=functions-jl\u0026utm_campaign=devex)\n- [Hasura](https://cloud.hasura.io/)\n- [Heroku](https://www.heroku.com/)\n\n## Using Hasura \u0026 Heroku to create a secret Admin Key:\n\n- Create a Hasura account, and link it to a Heroku account.\n\n- Go to Settings on your Heroku account, and add config vars HASURA_ADMIN_SECRET and HASURA_GRAPHQL_ADMIN_SECRET.\n  ![Config Var Heroku](/img/config-vars.png)\n\n- On Hasura, once you create a new project, add a new env var, Admin Secret, by clicking on **New Env Var**, and name it Admin Secret.\n  ![Config Var Hasura](/img/env-var.png)\n\n- Launch the Hasura console and make sure that your GraphQL endpoint is no longer public.\n  ![GraphQL Endpoint](/img/GraphQL-endpoint.png)\n\n## License\n\n\u003ca rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\"\u003e\u003cimg alt=\"Creative Commons License\" style=\"border-width:0\" src=\"https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png\" /\u003e\u003c/a\u003e\u003cbr /\u003eThis work is licensed under a \u003ca rel=\"license\" href=\"http://creativecommons.org/licenses/by-nc-sa/4.0/\"\u003eCreative Commons Attribution-NonCommercial-ShareAlike 4.0 International License\u003c/a\u003e.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjlengstorf%2Ffrontendmasters-serverless","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjlengstorf%2Ffrontendmasters-serverless","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjlengstorf%2Ffrontendmasters-serverless/lists"}