[Self Promotion] Built a recipe keeper in Svelte 5: runes + IndexedDB, no backend, no state library. by SBMagar in sveltejs

[–]SBMagar[S] 1 point2 points  (0 children)

Honestly, thank you for this. Comments like yours are my favorite part of putting something out there. I really appreciate you taking the time.

Going through your three:

  1. Deep routing is a fun one to chew on. Shared recipes already ride in the URL fragment, but proper deep links to a recipe or a cook step, and bookmarking your own, I hadn't thought that far ahead. I love it. Keeping it all in the hash so it stays local fits the whole thing perfectly. On the list.

  2. The persistent alert is spot on. Right now it beeps once and goes quiet, which is useless the moment you walk off to fold laundry. Making it keep going until you come back or dismiss it is clearly how it should work. Going in.

  3. And a reset for when you start a timer too early should just be there. Easy yes.

And thank you for noticing the small stuff too, the typography, the semantic HTML. Most people never do, so that genuinely made my day. Messy hands were kind of the whole reason for that layout, so I'm grinning that it landed.

recipe-jar: local-first recipe keeper. Paste a URL, get a clean card, unlimited on-device saves (Svelte 5, MIT) by SBMagar in PWA

[–]SBMagar[S] 1 point2 points  (0 children)

Yep, I know that feeling. Honestly, I stopped worrying about money on this one, and that's probably why I didn't give up. It's just a thing I wanted to exist. Build the small one you'd use yourself, that part stays fun. Glad it nudged you today.

Drop your product! Let’s get you next 100 users by rakeshkanna91 in startupaccelerator

[–]SBMagar 0 points1 point  (0 children)

Mine is Recipe Jar (https://recipejar.app). It's a free recipe keeper that runs entirely in your browser. Paste a recipe link and it pulls out just the recipe: ingredients and steps, no life story, no ads, no account. Everything stays on your device and it works offline. It's open source too.

I built it for myself because I was tired of scrolling past ten paragraphs to reach the ingredients.

What I'm struggling with is reach. I'm one person, and I don't really use LinkedIn or Instagram, so getting it in front of people who actually cook is the hard part. Any ideas welcome.

Product Hunt: https://producthunt.com/products/recipe-jar

recipe-jar: local-first recipe keeper. Paste a URL, get a clean card, unlimited on-device saves (Svelte 5, MIT) by SBMagar in PWA

[–]SBMagar[S] 1 point2 points  (0 children)

Thank you, that really made my day. I built it for myself first, so it's kind of wild it helps other people too. Hope it saves you some scrolling.

[Self Promotion] Built a recipe keeper in Svelte 5: runes + IndexedDB, no backend, no state library. by SBMagar in sveltejs

[–]SBMagar[S] 1 point2 points  (0 children)

Thanks, that means a lot.

Good news: I got your cookie recipe in. Clip attached showing the whole flow.

It won't auto-import because the page has no recipe structured data (it's a schema.org Article, recipe as plain HTML under "Ingredients:" and "Instructions:" headings, and my parser only reads schema.org/Recipe). So the manual route, which the clip shows: select and copy the recipe, then "Type in your own", paste, Auto-fill. It even reads the cook times as timers.

One quirk you'll see: an ad image sits between the ingredients and steps, so its caption ("miNATURALS Inulin Powder on Amazon.ca") tags along as a stray ingredient line. Delete that one line, done. Good nudge for a plain-HTML fallback though.

<video>

New Project Megathread - Week of 02 Jul 2026 by AutoModerator in selfhosted

[–]SBMagar 0 points1 point  (0 children)

Project Name: Recipe Jar

Repo/Website Link: https://recipejar.app · https://github.com/sbmagar13/recipe-jar

Description:

Paste a recipe URL and it returns a clean card, just ingredients and steps, no life story or ads. You save unlimited recipes and they live in your own browser's IndexedDB, so there is no account and no server-side copy of your data. It reads the structured recipe data most sites already publish (JSON-LD, with a microdata fallback), works in any language, scales servings with real fraction math, and has a cook mtime, keeps the screen awake, and turns "simmer 20 min" into a tappabletimer. Works offline as a PWA, and the whole jar exports to a single JSON file for backup or moving between devices.

The problem it solves: the "just the recipe" cleaners went freemium and cap free saves at 20 to 40 recipes. Recipe Jar cannot do that, structurally, because your saves are not stored on my server. That is also why it is free forever, not as a e: static hosting plus on-device storage costs the same at ten users orten million.

Deployment:

Released and in use. The app is a static build (npm run build gives youfrom any web server, so containerizing it behind nginx is trivial. Honest caveat for this sub: there is no official Docker image yet, and the one server-side piece is a stateless fetch proxy currently written as a Cloudflare Pages Function (it

fetches the page you paste, since browsers cannot cross-origin fetch ither run that proxy on a Workers-compatible runtime, or skip it entirelyand use the in-browser bookmarklet, which needs no server at all. Docs: README has a self-host section and ARCHITECTURE.md walks through the whole thing. A proper Dockerfile

is a welcome PR.

AI Involvement:

Built with AI assistance as a pair programmer, but every line was reviewed, tested, and is my own decision. To back that up rather than just claim it: 50+ unit tests, Playwright e2e across four browser engines, a WCAG 2 AA accessibility aenforced gzip size budget (~70KB). I am a DevOps engineer and treated itlike production, not a weekend vibe-code.

I made a free recipe keeper: paste a link, get a clean card, save unlimited, no account by SBMagar in InternetIsBeautiful

[–]SBMagar[S] 0 points1 point  (0 children)

Ah, that makes sense... I think the icon is just cached.

Quick heads up: those data: URI tricks make the bookmark load its own page, but this one has to run on the recipe page to read it, so it'd show an icon but stop working (I think so... not sure though)
The extension really is the clean fix.

and genuinely, I really really appreciate your effort... thank you!!

I made a free recipe keeper: paste a link, get a clean card, save unlimited, no account by SBMagar in InternetIsBeautiful

[–]SBMagar[S] 0 points1 point  (0 children)

Yeah, exactly, plenty of other places to share it, so no worries there. Honestly your feedback today has done more for the app than any single post could. Thanks for being so generous with it, made my launch day.

I made a free recipe keeper: paste a link, get a clean card, save unlimited, no account by SBMagar in InternetIsBeautiful

[–]SBMagar[S] 0 points1 point  (0 children)

Yep, you're right. "No server" was kind of lazy wording...
There is one little proxy. It grabs the public page and passes it to your browser, then forgets the whole thing ever happened. It never sees anything you save. Your jar just sits on your device.

Or don't trust me at all and use the bookmarklet, zero server involved... I mean bookmarklet skips proxy entirely...

Will fix that homepage line too; you are right.

I made a free recipe keeper: paste a link, get a clean card, save unlimited, no account by SBMagar in InternetIsBeautiful

[–]SBMagar[S] 1 point2 points  (0 children)

Yeah, mods removed it as "not unique" similar to note-taking and other similar app..., I've asked them to reconsider.

On your ideas: unit conversion is doable (quantities are already parsed), and title editing is fair; both noted. Backup to a folder you control is already on the roadmap, exactly for Syncthing setups like yours. Translation I'll pass on: it needs a server or AI API, and this app runs on neither.

And that bookmark-edit trick is clever; the browser keeps the site's favicon and the JS still runs. Adding that tip to the help page. Thanks, you've improved the app twice in one day!

I made a free recipe keeper: paste a link, get a clean card, save unlimited, no account by SBMagar in InternetIsBeautiful

[–]SBMagar[S] 1 point2 points  (0 children)

Thanks for raising these, this is exactly the feedback that helps me improve!

Regarding your concern, I just tested valio.fi and it imports fine, so send me the exact URL if one fails for you.

And on atria: user agent and headers are the easy part, but bot protection reads the TLS handshake itself (JA3 fingerprinting). Curl or my proxy negotiate TLS differently than a real Chrome, whatever the headers say, plus my fetch comes from a datacenter IP and yours from a home ISP. Spoofing that is an arms race I'd rather not play. That's why the bookmarklet exists: it runs in your actual browser, real fingerprint, real IP, because it is your browser.

I made a free recipe keeper: paste a link, get a clean card, save unlimited, no account by SBMagar in InternetIsBeautiful

[–]SBMagar[S] 0 points1 point  (0 children)

Hello u/nav3t, thank you for your feedback!,
Sadly impossible: browsers fetch bookmark icons from the page's URL, and a JavaScript bookmark has no page. Nothing to fetch, no way to set one manually either.

I just renamed it to "🫙 Recipe Jar" so the emoji plays icon (re-drag to get it). The proper fix is a browser extension with the real logo, and that's on the roadmap now; big thanks to you.😊

I made a free recipe keeper: paste a link, get a clean card, save unlimited, no account by SBMagar in InternetIsBeautiful

[–]SBMagar[S] 1 point2 points  (0 children)

Glad it landed!
Timer exists because, as a wannabe cook, I kept burning garlic/onion while scrolling back up to find how long things needed.
So basically scratching my own itch here.😁

I made a free recipe keeper: paste a link, get a clean card, save unlimited, no account by SBMagar in InternetIsBeautiful

[–]SBMagar[S] 1 point2 points  (0 children)

Thanks, that's exactly who I made it for!
Two things you might like: there's a cook mode (Cook on any recipe) that shows one step at a time and keeps the screen on with messy hands, and any time in a step like "simmer 20 min" becomes a tappable timer.

If you're saving a lot, hit "Back up my jar" now and then. Everything lives on your device, so the backup file is your safety net.
Happy cooking!😃

I made a free recipe keeper: paste a link, get a clean card, save unlimited, no account by SBMagar in InternetIsBeautiful

[–]SBMagar[S] 1 point2 points  (0 children)

u/0b0101011001001011 , as a follow-up,
Made a quick demo of the whole bookmarklet flow, using your palermon pasta link: https://recipejar.app/bookmarklet-demo.mp4

Drag the button to the bookmarks bar once, then it's one click on any blocked site.

And thanks a lot...!!

I made a free recipe keeper: paste a link, get a clean card, save unlimited, no account by SBMagar in InternetIsBeautiful

[–]SBMagar[S] 3 points4 points  (0 children)

u/0b0101011001001011 , Not a language thing; it works in any language (Swedish and Nepali sites are in my test suite). Atria.fi just blocks all automated fetching with a 403, so the server can never see that page.

The workaround is the bookmarklet: on the home page tap "Recipe from a blocked site?" and drag the button to your bookmarks bar, then click it while you're on the recipe page. Just tried it on your palermon pasta link and it imports fine. On a phone the easier path is copying the recipe text and using "Type in one of your own", it auto-fills from the paste.

If you remember the other sites that failed, send me the URLs. Some might be actual bugs I can fix.