{"id":20973330,"url":"https://github.com/michael-genson/unified-shopping-list","last_synced_at":"2025-05-14T12:30:24.916Z","repository":{"id":64921351,"uuid":"579431768","full_name":"michael-genson/Unified-Shopping-List","owner":"michael-genson","description":"The Unified Shopping List is an open source app to connect your shopping lists in real time.","archived":true,"fork":false,"pushed_at":"2024-07-02T21:20:07.000Z","size":660,"stargazers_count":10,"open_issues_count":1,"forks_count":0,"subscribers_count":2,"default_branch":"develop","last_synced_at":"2025-03-24T11:48:56.543Z","etag":null,"topics":["automation","integration","shopping-list"],"latest_commit_sha":null,"homepage":"https://shopping-lists.genson.dev/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/michael-genson.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":"security.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-17T17:16:15.000Z","updated_at":"2024-07-02T21:20:42.000Z","dependencies_parsed_at":"2023-11-14T17:25:38.598Z","dependency_job_id":"10685d0c-788e-4273-89e5-1051674f8e38","html_url":"https://github.com/michael-genson/Unified-Shopping-List","commit_stats":null,"previous_names":[],"tags_count":21,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michael-genson%2FUnified-Shopping-List","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michael-genson%2FUnified-Shopping-List/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michael-genson%2FUnified-Shopping-List/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michael-genson%2FUnified-Shopping-List/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/michael-genson","download_url":"https://codeload.github.com/michael-genson/Unified-Shopping-List/tar.gz/refs/heads/develop","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254142074,"owners_count":22021455,"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","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":["automation","integration","shopping-list"],"created_at":"2024-11-19T04:13:19.591Z","updated_at":"2025-05-14T12:30:24.379Z","avatar_url":"https://github.com/michael-genson.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[Amazon ended support for shopping list integrations](https://developer.amazon.com/en-US/docs/alexa/custom-skills/access-the-alexa-shopping-and-to-do-lists.html), so I've decided to archive this repo as I no longer have any use for it. Thanks for all of the support while it lasted.\n\n# \u003cimg src=\"./AppLambda/src/static/images/favicon.png\" width=\"25px\" height=\"auto\"\u003e Unified Shopping List\nThe Unified Shopping List is an open source app to connect your shopping lists in real time. The goal of the USL is to make managing your grocery shopping *easy* and *configurable*.\nThis project was born out of a frustration with existing integration tools, for both being a pain (or impossible) to set up, unreliable, and/or having little-to-no configurability.\n\nThe USL relies heavily on [Mealie](https://github.com/hay-kot/mealie), the open source, self-hosted recipe manager developed by hay-kot. This app *does not work* without an instance of Mealie to back it up, so [be sure to check it out](https://nightly.mealie.io/) if you haven't already! The app piggybacks heavily on the Mealie API, and much of the dev environment was pulled directly from the work done over there. ***We only officially support the v1 releases of Mealie, as well as the latest release***.\n\nTo get started, head over to https://shopping-lists.genson.dev and register.\n\n\nArchitecture\n---\nThe Unified Shopping List backend is built using [FastAPI](https://fastapi.tiangolo.com/) and hosted in AWS using a combination of [API Gateway](https://aws.amazon.com/api-gateway/) and [Lambda](https://aws.amazon.com/lambda/). We use [DynamoDB](https://aws.amazon.com/dynamodb/) for user storage and [SQS](https://aws.amazon.com/sqs/) for managing webhooks.\n\nThe frontend is served by FastAPI rendering [Jinja2](https://jinja.palletsprojects.com/en/3.1.x/) templates + [Bootstrap](https://getbootstrap.com/), rather than a more robust framework like Angular or Vue. This keeps things ultra-simple (and the frontend is really only for configuration anyway).\n\n\nWhy host a centralized app? Why not build a self-hosted solution / build this functionality into Mealie?\n---\nI am a huge supporter of self-hosted applications; this app is built entirely around Mealie, which itself is a self-hosted app. It's hard to consider data that you have \"somewhere else\" truly yours.\n\nThat said, one of the major roadblocks with integrations comes down to the exposed APIs and authentication schemes. The goal of this app at its inception was to integrate Mealie with [Todoist](https://todoist.com/) and [Amazon's Alexa](https://alexa.amazon.com/). Sadly, [Amazon is removing all support for integrating with Alexa lists](https://developer.amazon.com/en-US/docs/alexa/custom-skills/access-the-alexa-shopping-and-to-do-lists.html). However, while this was still supported, any and all Alexa integrations require an Alexa skill, which connects via OAuth, which requires a central authentication server. If you wanted to do this yourself, you would need to [build and host your own Alexa skill](https://github.com/michael-genson/Unified-Shopping-List-Helper).\n\nWhile Todoist has a [REST API](https://developer.todoist.com/rest/v2/#overview), their webhook subscriptions (which this app uses to initiate a sync) [require an app using OAuth](https://developer.todoist.com/sync/v9/#webhooks), which (you guessed it) requires a central authentication server. You *can* get it working without one, but it's not particularly easy if you're not experienced with OAuth.\n\n\nWhich applications are supported?\n---\nSince we are *just* releasing the Unified Shopping List, we don't support too many applications yet. Feel free to explore GitHub discussions and suggest new apps to support.\n\nSupported applications:\n- [Mealie](https://github.com/hay-kot/mealie/) (required, only the *official v1 releases* and *latest release* are supported)\n- [Todoist](https://todoist.com/)\n- ~~Alexa *[no longer supported by Amazon](https://developer.amazon.com/en-US/docs/alexa/custom-skills/access-the-alexa-shopping-and-to-do-lists.html)*~~\n\n\n(Soft) Roadmap\n---\nFeatures\n- add support for more applications\n- explore weekly item scheduling\n- expand API for end-user custom integrations\n\nQuality of Life\n- improve mobile frontend experience\n\nDevelopment / DevOps\n- remove SAM from dev container\n- implement github actions\n    - deployments\n    - versioning\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichael-genson%2Funified-shopping-list","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmichael-genson%2Funified-shopping-list","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichael-genson%2Funified-shopping-list/lists"}