Source
This app’s code and revision history are public. Download a copy or explore the files below.
Public
The app’s code and revision history are public.
Run it yourself
Take the whole tree and run it on your own machine. The download needs no account. Cloning needs a sign-in.
Download .zip
bounded clone ee59501e91bae6d2c23a8370
A copy you download is not bounded. The guarantees this app runs under - declared egress, proven invariants, writes that fail closed - live in the runtime serving this page, not in the files. What you get is auditable source you can read and run, with no runtime guarantees attached.
index.html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<title>Lists: free shared grocery list app for the whole house | OpenApps</title>
<meta name="description" content="A free shared grocery list app. Send the link and everyone in the house sees items added and checked off live. Sorts by store aisle, works offline in the store, no ads and no sign-up. A free alternative to AnyList, OurGroceries and Bring!.">
<link rel="canonical" href="https://lists-free.openapps.xyz/">
<meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large">
<meta property="og:type" content="website">
<meta property="og:site_name" content="OpenApps">
<meta property="og:title" content="Lists: free shared grocery and to-do lists, live for the whole house">
<meta property="og:description" content="Make a list, send the link, and every phone in the house stays in sync. Sorted by aisle, works offline in the store. Free, no ads, no sign-up.">
<meta property="og:url" content="https://lists-free.openapps.xyz/">
<meta property="og:image" content="https://openapps.free/og/lists.png">
<meta name="twitter:card" content="summary_large_image">
<meta name="theme-color" content="#fdfdfc">
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
<link rel="manifest" href="/manifest.webmanifest">
<link rel="apple-touch-icon" href="/icons/apple-touch-icon.png">
<meta name="apple-mobile-web-app-title" content="Lists">
<meta name="apple-mobile-web-app-capable" content="yes">
<link rel="alternate" type="text/markdown" title="Lists as plain markdown" href="/index.md">
<link rel="alternate" type="text/plain" title="llms.txt" href="/llms.txt">
<link rel="service-desc" type="application/vnd.oai.openapi+json" title="Lists API" href="/openapi.json">
<link rel="preload" href="/fonts/NewsreaderVariable-var.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/fonts/ArchivoVariable-var.woff2" as="font" type="font/woff2" crossorigin>
<link rel="stylesheet" href="/kit.css">
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"SoftwareApplication","name":"Lists by OpenApps","alternateName":"Lists","applicationCategory":"ShoppingApplication","operatingSystem":"Web, iOS, Android","url":"https://lists-free.openapps.xyz/","image":"https://openapps.free/og/lists.png","description":"Free shared grocery and to-do lists that update live for everyone in the house. Share a list by link, check items off in the store, and see changes on every phone right away. Items sort by store aisle on their own, suggestions come from what you buy, and it works offline. No ads, no sign-up, no paid tier. A free alternative to AnyList, OurGroceries and Bring!.","featureList":["Shared lists by link, with no accounts","Live updates on every phone in the house","Items sort by store aisle on their own, and you can correct an aisle once","Suggestions from what your house buys","Quantities and notes on any item","Check off, uncheck and clear checked items, with undo","Arrange the aisles to match your store","Several lists: groceries, Costco, to do, packing","Works offline in the store and syncs when back online","Installs on your phone's home screen","The person who made a list can remove people, change the link and delete the list","Public API so AI and voice assistants can add items and read the list"],"offers":{"@type":"Offer","price":"0","priceCurrency":"USD"},"isAccessibleForFree":true,"dateModified":"2026-10-19","publisher":{"@type":"Organization","name":"OpenApps","url":"https://openapps.xyz"}}
</script>
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"FAQPage","dateModified":"2026-10-19","mainEntity":[
{"@type":"Question","name":"Is there a free alternative to AnyList?","acceptedAnswer":{"@type":"Answer","text":"Yes. Lists is a free shared grocery list app with no ads and no paid tier. You make a list, send the link to your household, and everyone sees items added and checked off live. It sorts items by store aisle and works offline. It does not do recipes or meal planning, which AnyList does."}},
{"@type":"Question","name":"What is a good free shared grocery list app for families?","acceptedAnswer":{"@type":"Answer","text":"Lists is free, has no ads, and needs no account for anyone in the family: one person makes the list and sends the link, and every phone stays in sync. It works in any browser and installs on the home screen of iPhones and Android phones."}},
{"@type":"Question","name":"Is Lists really free?","acceptedAnswer":{"@type":"Answer","text":"Yes. There is no paid plan, no trial and no ads, and no limit on lists, items or people. Each change costs a tiny amount to store, and OpenApps pays for it."}},
{"@type":"Question","name":"How do I share a grocery list with my family?","acceptedAnswer":{"@type":"Answer","text":"Make a list, tap Share and send the link by text or chat. Whoever opens it is on the list right away, with no sign-up. Everything anyone adds or checks off shows on every phone within a second."}},
{"@type":"Question","name":"Does Lists work offline in the store?","acceptedAnswer":{"@type":"Answer","text":"Yes. Once you have opened a list on your phone, you can check items off and add new ones with no signal. The changes are saved on the phone and sync when you are back online."}},
{"@type":"Question","name":"What happens if two people change the list at the same time?","acceptedAnswer":{"@type":"Answer","text":"Both changes are kept when they touch different items. When two people change the same item, the change that reaches the server last wins. Two phones adding the same item, even offline, end up with one item, not two. A change to an item someone else already cleared is dropped, and Lists says so."}},
{"@type":"Question","name":"How does Lists sort items by aisle?","acceptedAnswer":{"@type":"Answer","text":"Lists has a built-in list of common grocery items, so milk goes to Dairy and bananas to Produce. If it gets one wrong, change the aisle once and the list remembers it for next time. You can also put the aisles in the order you walk your store, separately for each list."}},
{"@type":"Question","name":"Is there a grocery list app with no ads?","acceptedAnswer":{"@type":"Answer","text":"Yes. Lists has no ads anywhere and no paid plan to remove them. OurGroceries and Bring! show ads in their free versions, as reported in 2026."}},
{"@type":"Question","name":"How is Lists different from OurGroceries?","acceptedAnswer":{"@type":"Answer","text":"OurGroceries is free with ads on some screens, and charges to remove them (about $6 a year, as reported in 2026). Lists has no ads at all, needs no account, and has a public API for AI assistants."}},
{"@type":"Question","name":"Can my AI assistant add items to the list?","acceptedAnswer":{"@type":"Answer","text":"Yes. Lists has a public API. Give your assistant the list key from the Share screen and it can add items (say, milk and eggs), check things off and read the list back. Assistants can also make a new list without any key. See lists-free.openapps.xyz/llms.txt."}},
{"@type":"Question","name":"Can I remove someone from a shared list?","acceptedAnswer":{"@type":"Answer","text":"Yes. The person who made the list can remove anyone and change the link, so the old link stops working. People already on the list stay. The admin link lets that person do this from any device."}}
]}
</script>
<link rel="stylesheet" href="/openapp-community.css">
</head>
<body>
<header class="site-head">
<div class="wrap">
<a class="brand" href="https://openapps.free/" aria-label="OpenApps free apps">
<img src="/logo.svg" alt="" width="26" height="26">
<span>OpenApps</span>
</a>
<span class="brand-sep" aria-hidden="true">/</span>
<a class="brand brand-app" href="/">Lists</a>
<nav class="site-nav" aria-label="Main">
<a class="nav-optional landing-link" href="/#how">How it works</a>
<a class="nav-optional landing-link" href="/#api">API</a>
<a href="/lists">Your lists</a>
<a class="nav-optional" href="https://openapps.free/apps">Free apps</a>
</nav>
</div>
</header>
<aside id="openapp-community" aria-label="Help improve this OpenApp"><div><span>This is an <a href="https://beta.openapps.xyz/a/lists_free" target="_blank" rel="noopener noreferrer">OpenApp</a>.</span> <a href="https://beta.openapps.xyz/a/lists_free/discussion" target="_blank" rel="noopener noreferrer">Suggest a change</a><span aria-hidden="true"> · </span><a href="https://beta.openapps.xyz/a/lists_free/source" target="_blank" rel="noopener noreferrer">View source & contribute</a></div></aside>
<main>
<div id="app"></div>
<section class="app-hero landing-only">
<div class="wrap app-hero-grid">
<div class="hero-copy">
<img class="art hero-art" src="/art/card-lists.webp" alt="" width="220" height="182">
<p class="eyebrow">Free alternative to AnyList, OurGroceries and Bring!</p>
<h1 class="display">Shared grocery lists, live for the whole house. Free.</h1>
<p class="lede">Lists is a free shared grocery and to-do list app. Make a list, send the link, and everything anyone adds or checks off shows on every phone right away. It sorts items by store aisle, works offline in the store, and has no ads and no sign-up.</p>
<ul class="hero-points">
<li>Share by link: no accounts for anyone</li>
<li>Sorted by aisle, with suggestions from what you buy</li>
<li>Works offline in the store and installs on your phone</li>
</ul>
</div>
<div id="start"><noscript><p class="notice">Lists needs JavaScript to make a list.</p></noscript></div>
</div>
</section>
<section class="section landing-only" id="features">
<div class="wrap">
<h2 class="h2">Everything a shared shopping list needs</h2>
<ul class="features">
<li><h3>Live for everyone</h3><p>Someone adds oat milk at home while you are in the store: it shows on your phone within a second. Checked items move out of the way for everyone.</p></li>
<li><h3>Sorted by aisle</h3><p>A built-in list of common groceries puts bananas in Produce and yogurt in Dairy. Fix an aisle once and the list remembers. Put the aisles in your store's order.</p></li>
<li><h3>Suggestions from your house</h3><p>Start typing and Lists suggests what your house usually buys. Tap Add again to put back last week's staples in a few taps.</p></li>
<li><h3>Works with no signal</h3><p>Check things off and add items in a basement store. Changes wait on your phone and sync when you are back online.</p></li>
<li><h3>Several lists</h3><p>Groceries, Costco, a to-do list, a packing list. Each has its own link and its own people. To-do lists keep the order you add things.</p></li>
<li><h3>One hand, big buttons</h3><p>Tap anywhere on an item to check it off. Add "2 lb chicken" or "milk, eggs and bread" in one go. Install it on your home screen like an app.</p></li>
</ul>
</div>
</section>
<section class="section landing-only how" id="how">
<div class="wrap">
<h2 class="h2">How it works</h2>
<ol class="steps">
<li><h3>Make a list</h3><p>Name it (Groceries is ready to go) and start adding. No account, no app store, no email.</p></li>
<li><h3>Send the link</h3><p>Tap Share and send it to the people you live with. Opening the link puts them on the list.</p></li>
<li><h3>Shop together</h3><p>Everyone adds what they need. In the store, check things off as they go in the cart. Clear checked when you are done.</p></li>
</ol>
</div>
</section>
<section class="section-tight landing-only" id="compare">
<div class="wrap">
<h2 class="h2">Free, with no catch</h2>
<p class="answer">The popular grocery list apps are free to start and charge to remove ads or add extras. Lists has nothing to pay for: sharing, aisles, offline and the API are all free, with no ads. It is free because it costs almost nothing to run, and OpenApps pays for it.</p>
<div class="table-wrap" style="margin-top:24px">
<table class="table compare">
<thead><tr><th scope="col"></th><th scope="col">Lists</th><th scope="col">AnyList</th><th scope="col">OurGroceries</th><th scope="col">Bring!</th></tr></thead>
<tbody>
<tr><td>Price</td><td class="yes">Free</td><td>Free; Complete is $9.99 a year, or $14.99 for a household</td><td>Free with ads; removing them is about $6 a year or $20 once</td><td>Free with ads; Premium is $8.99 a year</td></tr>
<tr><td>Ads</td><td class="yes">None</td><td>None mentioned</td><td class="no">On a few screens</td><td class="no">Yes, including offers from nearby stores</td></tr>
<tr><td>Shared lists</td><td class="yes">Yes, by link, live</td><td>Yes, free</td><td>Yes, free</td><td>Yes, free</td></tr>
<tr><td>What paying adds</td><td class="yes">Nothing to pay for</td><td>Web app on a computer, meal planning, unlimited recipe import, photos, prices and more</td><td>No ads, for everyone you share with</td><td>Not stated on its App Store listing</td></tr>
</tbody>
</table>
</div>
<p class="hint" style="margin-top:12px">Updated October 2026. Prices and features as reported in 2026 on each app's website and US App Store listing; they change, so check before you buy.</p>
</div>
</section>
<section class="section-tight landing-only">
<div class="wrap split-cols">
<div>
<h2 class="h2">What Lists does not do</h2>
<ul>
<li>No recipes, meal planning or barcode scanning.</li>
<li>No prices, budgets or store reminders.</li>
<li>No watch app. On a phone, it installs from the browser.</li>
<li>No accounts: a list lives in its link. Keep the link, or add Lists to your home screen, to find your lists again.</li>
</ul>
</div>
<div>
<h2 class="h2">Good for</h2>
<ul>
<li>Families and couples sharing the weekly shop.</li>
<li>Roommates splitting house supplies (and <a href="https://split-free.openapps.xyz/">Split</a> for the costs).</li>
<li>A separate Costco or Target list with its own aisle order.</li>
<li>Packing lists, chores and to-dos for the whole house.</li>
</ul>
</div>
</div>
</section>
<section class="section landing-only" id="api">
<div class="wrap api-grid">
<div>
<p class="eyebrow">For AI assistants</p>
<h2 class="h2">"Add milk and eggs to the grocery list."</h2>
<p class="lede" style="margin-top:14px">Lists has a public API. An assistant can make a list with no key, then add items, check them off and read the list back with the list key from the Share screen.</p>
<p style="margin-top:14px">Full reference: <a href="/llms.txt">llms.txt</a> and <a href="/openapi.json">openapi.json</a>. The list key works like the share link: anyone with it can change the list, so give it only to assistants you trust.</p>
</div>
<pre class="code"><span class="c"># Add to a list (the key is on the list's Share screen)</span>
curl -X POST https://functions.openapps.xyz/apps/ee59501e91bae6d2c23a8370/api/list/items \
-H 'x-list-key: YOUR_LIST_KEY' \
-H 'content-type: application/json' \
-d '{"text": "milk and eggs, 2 lb chicken"}'
<span class="c"># Read it back, in store order</span>
curl https://functions.openapps.xyz/apps/ee59501e91bae6d2c23a8370/api/list \
-H 'x-list-key: YOUR_LIST_KEY'
<span class="c"># Make a new list: no key needed</span>
curl -X POST https://functions.openapps.xyz/apps/ee59501e91bae6d2c23a8370/api/lists \
-H 'content-type: application/json' \
-d '{"name": "Groceries", "items": ["bananas", "bread"]}'</pre>
</div>
</section>
<section class="section-tight landing-only" id="faq">
<div class="wrap">
<h2 class="h2">Questions</h2>
<div class="faq" style="margin-top:22px">
<details><summary>Is there a free alternative to AnyList?</summary><div>Yes. Lists is a free shared grocery list app with no ads and no paid tier. You make a list, send the link to your household, and everyone sees items added and checked off live. It sorts items by store aisle and works offline. It does not do recipes or meal planning, which AnyList does.</div></details>
<details><summary>What is a good free shared grocery list app for families?</summary><div>Lists is free, has no ads, and needs no account for anyone in the family: one person makes the list and sends the link, and every phone stays in sync. It works in any browser and installs on the home screen of iPhones and Android phones.</div></details>
<details><summary>Is Lists really free?</summary><div>Yes. There is no paid plan, no trial and no ads, and no limit on lists, items or people. Each change costs a tiny amount to store, and OpenApps pays for it.</div></details>
<details><summary>How do I share a grocery list with my family?</summary><div>Make a list, tap Share and send the link by text or chat. Whoever opens it is on the list right away, with no sign-up. Everything anyone adds or checks off shows on every phone within a second.</div></details>
<details><summary>Does Lists work offline in the store?</summary><div>Yes. Once you have opened a list on your phone, you can check items off and add new ones with no signal. The changes are saved on the phone and sync when you are back online.</div></details>
<details><summary>What happens if two people change the list at the same time?</summary><div>Both changes are kept when they touch different items. When two people change the same item, the change that reaches the server last wins. Two phones adding the same item, even offline, end up with one item, not two. A change to an item someone else already cleared is dropped, and Lists says so.</div></details>
<details><summary>How does Lists sort items by aisle?</summary><div>Lists has a built-in list of common grocery items, so milk goes to Dairy and bananas to Produce. If it gets one wrong, change the aisle once and the list remembers it for next time. You can also put the aisles in the order you walk your store, separately for each list.</div></details>
<details><summary>Is there a grocery list app with no ads?</summary><div>Yes. Lists has no ads anywhere and no paid plan to remove them. OurGroceries and Bring! show ads in their free versions, as reported in 2026.</div></details>
<details><summary>How is Lists different from OurGroceries?</summary><div>OurGroceries is free with ads on some screens, and charges to remove them (about $6 a year, as reported in 2026). Lists has no ads at all, needs no account, and has a public API for AI assistants.</div></details>
<details><summary>Can my AI assistant add items to the list?</summary><div>Yes. Lists has a public API. Give your assistant the list key from the Share screen and it can add items (say, milk and eggs), check things off and read the list back. Assistants can also make a new list without any key. See <a href="/llms.txt">lists-free.openapps.xyz/llms.txt</a>.</div></details>
<details><summary>Can I remove someone from a shared list?</summary><div>Yes. The person who made the list can remove anyone and change the link, so the old link stops working. People already on the list stay. The admin link lets that person do this from any device.</div></details>
</div>
</div>
</section>
<section class="section-tight landing-only">
<div class="wrap">
<h2 class="h2">More free apps</h2>
<ul class="more-apps">
<li><a href="https://split-free.openapps.xyz/"><strong>Split</strong><span>Share house costs, instead of Splitwise</span></a></li>
<li><a href="https://budget-free.openapps.xyz/"><strong>Budget</strong><span>A family budget, instead of YNAB</span></a></li>
<li><a href="https://when-free.openapps.xyz/"><strong>When</strong><span>Find a time, instead of Doodle</span></a></li>
<li><a href="https://openapps.free/apps"><strong>All apps</strong><span>The app store of free alternatives</span></a></li>
</ul>
</div>
</section>
</main>
<footer class="site-foot">
<div class="wrap">
<!-- network:start -->
<nav class="oa-network" aria-label="Free apps from OpenApps">
<p class="oa-network-title"><a href="https://openapps.free/">Free apps from OpenApps</a><span>Free alternatives to the apps you pay for, built for people and their AI assistants.</span></p>
<ul>
<li><a href="https://sign-free.openapps.xyz/">Sign</a><span>instead of DocuSign</span></li>
<li><a href="https://forms-free.openapps.xyz/">Forms</a><span>instead of Typeform</span></li>
<li><a href="https://split-free.openapps.xyz/">Split</a><span>instead of Splitwise</span></li>
<li><a href="https://links-free.openapps.xyz/">Links</a><span>instead of Bitly</span></li>
<li><a href="https://when-free.openapps.xyz/">When</a><span>instead of Doodle</span></li>
<li><a href="https://pdf-free.openapps.xyz/">PDF</a><span>instead of Smallpdf</span></li>
<li><a href="https://invoice-free.openapps.xyz/">Invoice</a><span>instead of FreshBooks</span></li>
<li><a href="https://bio-free.openapps.xyz/">Bio</a><span>instead of Linktree</span></li>
<li><a href="https://book-free.openapps.xyz/">Book</a><span>instead of Calendly</span></li>
<li><a href="https://dictate-free.openapps.xyz/">Dictate</a><span>instead of Wispr Flow</span></li>
<li><a href="https://images-free.openapps.xyz/">Images</a><span>instead of TinyPNG</span></li>
<li><a href="https://resume-free.openapps.xyz/">Resume</a><span>instead of Zety</span></li>
<li><a href="https://sheets-free.openapps.xyz/">Sheets</a><span>instead of SignUpGenius</span></li>
<li><a href="https://paste-free.openapps.xyz/">Paste</a><span>instead of Pastebin</span></li>
<li><a href="https://record-free.openapps.xyz/">Record</a><span>instead of Loom</span></li>
<li><a href="https://lingo-free.openapps.xyz/">Lingo</a><span>instead of Duolingo</span></li>
<li><a href="https://still-free.openapps.xyz/">Still</a><span>instead of Calm</span></li>
<li><a href="https://monitor-free.openapps.xyz/">Monitor</a><span>instead of Baby Monitor 3G</span></li>
<li><a href="https://cards-free.openapps.xyz/">Cards</a><span>instead of Quizlet</span></li>
<li><a href="https://budget-free.openapps.xyz/">Budget</a><span>instead of YNAB</span></li>
<li><a href="https://baby-free.openapps.xyz/">Baby</a><span>instead of Huckleberry</span></li>
<li><a href="https://habits-free.openapps.xyz/">Habits</a><span>instead of Streaks</span></li>
<li><a href="https://polls-free.openapps.xyz/">Polls</a><span>instead of Slido</span></li>
<li><a href="https://meet-free.openapps.xyz/">Meet</a><span>instead of Zoom</span></li>
<li><a href="https://tasks-free.openapps.xyz/">Tasks</a><span>instead of Trello</span></li>
<li><a href="https://status-free.openapps.xyz/">Status</a><span>instead of Atlassian Statuspage</span></li>
<li><a href="https://feedback-free.openapps.xyz/">Feedback</a><span>instead of Canny</span></li>
<li><a href="https://lists-free.openapps.xyz/" aria-current="page">Lists</a><span>instead of AnyList</span></li>
<li><a href="https://time-free.openapps.xyz/">Time</a><span>instead of Toggl Track</span></li>
<li><a href="https://drop-free.openapps.xyz/">Drop</a><span>instead of WeTransfer</span></li>
<li><a href="https://canvas-free.openapps.xyz/">Canvas</a><span>instead of Miro</span></li>
<li><a href="https://santa-free.openapps.xyz/">Santa</a><span>instead of Elfster</span></li>
<li><a href="https://names-free.openapps.xyz/">Names</a><span>instead of Kinder</span></li>
<li><a href="https://subs-free.openapps.xyz/">Subs</a><span>instead of Rocket Money</span></li>
<li><a href="https://lift-free.openapps.xyz/">Lift</a><span>instead of Strong</span></li>
</ul>
<p class="oa-network-more"><a href="https://openapps.free/apps">All free apps</a> · <a href="https://openapps.free/alternatives">Free alternatives A to Z</a> · <a href="https://openapps.free/for-ai">Add every app to your AI assistant</a></p>
</nav>
<!-- network:end -->
<div class="foot-note" style="margin-top:0;border-top:0;padding-top:0">
<span>Lists is an <a href="https://beta.openapps.xyz/a/lists_free" target="_blank" rel="noopener noreferrer">OpenApp</a>: free, with public <a href="https://beta.openapps.xyz/a/lists_free/source" target="_blank" rel="noopener noreferrer">source</a> and its own agent.</span>
<span><a href="https://openapps.free/">OpenApps free apps</a> · <a href="/llms.txt">llms.txt</a> · <a href="/index.md">index.md</a> · <a href="/openapi.json">API</a></span>
</div>
</div>
</footer>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>
Change history
Point OpenApps links to openapps.free
Bind agent address in policy constants
Use OpenApps service URLs and add contribution strip
Bounded source sync
Bounded source sync
Bounded source sync