{"id":17167939,"url":"https://github.com/jacob-meacham/bsdc-2018-serverless","last_synced_at":"2026-01-20T15:07:43.012Z","repository":{"id":46065025,"uuid":"136694667","full_name":"jacob-meacham/bsdc-2018-serverless","owner":"jacob-meacham","description":":fire: Code for Big Sky Dev Con 2018 presentation \"Building a Serverless Backend\"","archived":false,"fork":false,"pushed_at":"2023-01-04T05:44:02.000Z","size":3087,"stargazers_count":3,"open_issues_count":3,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-06T04:29:00.295Z","etag":null,"topics":["serverless"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/jacob-meacham.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":"2018-06-09T05:47:20.000Z","updated_at":"2019-11-05T04:10:50.000Z","dependencies_parsed_at":"2023-02-01T23:31:21.094Z","dependency_job_id":null,"html_url":"https://github.com/jacob-meacham/bsdc-2018-serverless","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/jacob-meacham/bsdc-2018-serverless","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacob-meacham%2Fbsdc-2018-serverless","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacob-meacham%2Fbsdc-2018-serverless/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacob-meacham%2Fbsdc-2018-serverless/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacob-meacham%2Fbsdc-2018-serverless/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jacob-meacham","download_url":"https://codeload.github.com/jacob-meacham/bsdc-2018-serverless/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacob-meacham%2Fbsdc-2018-serverless/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28606139,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T14:45:23.139Z","status":"ssl_error","status_checked_at":"2026-01-20T14:44:16.929Z","response_time":117,"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":["serverless"],"created_at":"2024-10-14T23:10:32.526Z","updated_at":"2026-01-20T15:07:42.989Z","avatar_url":"https://github.com/jacob-meacham.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"## Introduction\nThis is the code and documentation that accompanies the Big Sky Dev Con 2018 presentation \"Building a Serverless Backend\". During this presentation, we built an SMS/MMS-based meme generator service.\n\n## Quick Start\nFirst, put your twilio creds into  4-memegen/config/deploy.yml. Then:\n```\nnpm install\ncp -R lambda-native-canvas/node_modules/lambda-canvas node_modules/\ncd 4-memegen\nnpx sls deploy --stage develop\n```\n\n## Project Layout\nEach step taken in the presentation is laid out in a numbered folder. I organized the repo this way so that you can easily flip back and forth between implementations. This structure relies on appropriate symlinks - if your operating system doesn't handle symlinks well, you may need to copy `node_modules`, `src`, `lib`, `images`, `package.json`, `serverless.json` into the subdirectories\n\n* 0-hello-serverless - The initial Hello World serverless function\n* 1-http-and-debugging - A Lambda invoked via HTTP and debugging\n* 2-chaining - A lambda chained to another via SNS and SQS\n* 3-deployment-and-environments - Full environments, full local debugging\n* 4-memegen - The full service\n\n## Running Locally\nRunning locally is a bit more involved than running in the cloud:\n\n### Prerequisites\n* [brew](https://brew.sh/)\n* node 8+\n* Python 3\n* [pipenv](https://github.com/pypa/pipenv)\n\n### Steps\n```\nnpm i\nnpm i -g serverless # or you can use npx\ncp -R lambda-native-canvas/node_modules/lambda-canvas node_modules/\nbrew install cairo # necessary for node-canvas\npipenv install --dev # for localstack\nSERVICES=s3,sqs,sns pipenv run localstack start\ncd 4-memegen/\n# The next command builds the localstack resources\nsls runWithEnvironment --command 'node src/local-bootstrap.js' --stage local\n```\n\nOnce this is all complete, you should be able to run with\n```\nsls offline start\n```\n\nAlternatively, you can use the [VSCode](https://code.visualstudio.com/) to debug your lambdas. Simply use the Serverless Offline debug target.\n\n### Other Directories\n* images/ - the meme images. Feel free to add your own!\n* src/ - Library code\n* lambda-native-canvas/ - A build of canvas against the linux runtime used by Lambda\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjacob-meacham%2Fbsdc-2018-serverless","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjacob-meacham%2Fbsdc-2018-serverless","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjacob-meacham%2Fbsdc-2018-serverless/lists"}