{"id":23159165,"url":"https://github.com/dudelson/shortcake","last_synced_at":"2026-04-30T19:31:53.319Z","repository":{"id":69983660,"uuid":"234938894","full_name":"dudelson/shortcake","owner":"dudelson","description":":cake: Deliciously short URLs","archived":false,"fork":false,"pushed_at":"2020-01-29T05:18:55.000Z","size":93,"stargazers_count":0,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-04T09:31:34.397Z","etag":null,"topics":["dudelson-project","dudelson-showcase","flask","python","python3","rest-api"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dudelson.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2020-01-19T17:37:27.000Z","updated_at":"2020-10-03T02:13:58.000Z","dependencies_parsed_at":"2023-04-15T20:56:58.469Z","dependency_job_id":null,"html_url":"https://github.com/dudelson/shortcake","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dudelson/shortcake","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dudelson%2Fshortcake","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dudelson%2Fshortcake/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dudelson%2Fshortcake/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dudelson%2Fshortcake/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dudelson","download_url":"https://codeload.github.com/dudelson/shortcake/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dudelson%2Fshortcake/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32475191,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"ssl_error","status_checked_at":"2026-04-30T13:12:06.837Z","response_time":57,"last_error":"SSL_read: 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":["dudelson-project","dudelson-showcase","flask","python","python3","rest-api"],"created_at":"2024-12-17T22:32:19.681Z","updated_at":"2026-04-30T19:31:53.301Z","avatar_url":"https://github.com/dudelson.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# :cake: Shortcake :cake:\n\n**Shortcake** is a URL shortening service. It provides a RESTful API that allows\nURLs to be both shortened and lengthened, as well as a simple web interface to\nthe same functionality. Shortcake can easily be deployed to the cloud, allowing\nanyone to host their own URL shortener.\n\n## Shortcake in action\n\nAssuming you're running the development server locally, the API works like this:\n``` bash\n$ curl -i -H \"Content-Type: application/json\" -X POST -d '{\"url\": \"http://www.google.com/\"}' http://localhost:5000/api/v1/shorten\nHTTP/1.0 201 CREATED\nContent-Type: application/json\nContent-Length: 51\nServer: Werkzeug/0.16.0 Python/3.8.1\nDate: Wed, 22 Jan 2020 19:41:33 GMT\n\n{\"short_url\": \"http://localhost:5000/qOtlLcV\"}\n\n$ curl -i http://localhost:5000/api/v1/lengthen/qOtlLcV\nHTTP/1.0 200 OK\nContent-Type: application/json\nContent-Length: 38\nServer: Werkzeug/0.16.0 Python/3.8.1\nDate: Wed, 22 Jan 2020 19:42:23 GMT\n\n{\"url\": \"http://www.google.com/\"}\n```\n\nIt's that simple!\n\n## Deployment\n\nShortcake is designed to be easily deployed to Heroku. Other cloud deployments\n(including docker containers) are unsupported at this time.\n\nTo deploy to Heroku, first make sure you're logged in to your Heroku account via\nthe Heroku CLI. Then, run the following commands in the project root:\n``` bash\n$ heroku create\n$ heroku addons:create heroku-postgresql:hobby-dev\n# \u003cdomain-name\u003e is the domain of your heroku app as output by `heroku create`\n# e.g. shrouded-ocean-06931.herokuapp.com\n$ heroku config:set DOMAIN_NAME=\"\u003cdomain-name\u003e\"\n# generate random data to use as a secret key\n$ heroku config:set SECRET_KEY=\"$(python -c 'import os; print(os.urandom(16))')\"\n$ git push heroku master\n$ heroku open\n```\n\nYou can then invoke the API against your Heroku instance, or browse to the root\nof your Heroku app in your browser to access the web interface.\n\n*Note:* These commands allocate resources within the limits of Heroku's free\ntier. Thus an instance setup per the above will run free of charge. If you\ndecide to upgrade any of the Heroku components, this will no longer be the case.\n\n## Development\n\nIf you wish to hack on shortcake yourself, you will find the contents of the\n`scripts/` directory useful. In particular, the developer documentation can be\nbuilt locally using `scripts/build-docs`, the development server can be run\nusing `scripts/run-dev`, and the interactive shell instance of the application\ncan be invoked using `scripts/run-shell`.\n\nNote that both building the docs and running the tests require you to install\nthe development dependencies via `pipenv install -d`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdudelson%2Fshortcake","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdudelson%2Fshortcake","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdudelson%2Fshortcake/lists"}