Diivo is a local-first app for design references. Boards are real folders on your disk, a Chrome clipper saves any image or video in one click, and on-device AI finds shots by meaning. Free 30-day trial, no card. Then $29 once - yours forever.
No reviews yetBe the first to leave a review for Diivo
Maker
📌
Hey Product Hunt! 👋
I'm Dima, a product designer. Diivo started as a fix for my own mess: my references lived in Pinterest boards, random screenshot folders and "saved" tabs - and I could never find anything when I actually needed it.
So I built the tool I wanted:
📁 Boards are real folders on your disk. Your files stay yours - delete the app and the library remains. Sync with your own Drive/iCloud.
🖱 A Chrome clipper: hover any image, GIF or video on Dribbble, Behance, anywhere - one click and it lands in the right board.
🔍 On-device AI search: type "dark dashboard with a green chart" and it finds the shot. Plus OCR - text inside screenshots is searchable.
🖼 It previews everything designers hoard: PNG, crisp SVG, video, Lottie, PDF, even font files as glyph sheets.
Why not just Pinterest? Because this is YOUR library: no ads, no algorithm, no compressed images, no dead pins. Works offline.
Being honest: the AI search and auto-tags are helpers today, not the killer feature - I'm actively improving them in the next versions (along with multi-page PDFs and an offline clipper).
Free 30-day trial, no card, no account. Then $29 once - forever, 2 devices, all updates included.
I'd love your feedback: what would the reference library of your dreams do? 🙌
Report
the license covers 2 devices and the pitch mentions syncing via your own Drive/iCloud, which makes me curious about the AI search side specifically. if the same board folder is synced to a second machine, does the on-device index/embeddings rebuild fresh on that machine, or does it try to sync the index too. and if I tag or rename something on device A while device B is mid-index of the same synced folder, is there any chance of the two AI indexes drifting or stepping on each other, or is search fully independent per device regardless of what's synced
Report
Maker
@galdayan Great question - this is exactly the part of the architecture I'm most happy with, so forgive the detail 😄
Each reference has a small per-asset JSON "sidecar" file living next to your library, and that's the source of truth for everything: tags, notes, favorites - and the AI embeddings too. So when the folder syncs to a second machine, the embeddings ride along with it: device B doesn't re-crunch your whole library, it only embeds files that are genuinely new. The heavy lifting happens once.
The searchable index itself (a local SQLite file) is deliberately treated as a disposable cache: each machine builds its own from the synced sidecars, and if sync ever mangles it mid-write, the app just detects that, nukes it and rebuilds. So search always runs fully locally on each device - there's no "shared index" to fight over.
On concurrent edits: since metadata is one small JSON per asset, the only real clash window is editing the same reference on both machines at the same moment - then your sync provider's normal conflict rules kick in (last write wins or a conflict copy), and both indexes converge to whatever the files say. Renaming/tagging on A while B is mid-index is fine: B's watcher picks up the changes and reconciles.
Honest caveat: syncing is your provider's job, by design - so right after a big sync, one machine can briefly search slightly stale data until the files land. It catches up on its own.
Report
The local folders idea is genuinely smart, and the on-device AI search is what convinced me to try it. One thing that would seal the deal for me though is a way to tag boards with project context, like client name or deadline, so I can quickly filter across multiple ongoing projects without digging through nested folders.
Report
Maker
@nuriyepbrr Thanks so much! I’m really glad the local folders and on-device AI search resonated with you.
I’ve actually been thinking about this for a future update. My current idea is to introduce sub-boards (essentially folders inside boards), so you could have a board for a client or project and organize everything inside it however you like.
I really like your idea of adding project metadata like client names or deadlines for filtering across multiple projects too. That’s a great use case, and I’ll definitely keep it in mind as I evolve the organization system. Thanks for the suggestion! 🙌
Report
Love the local-first approach and the one-time price is a huge plus over subscriptions. One thing I'd love to see is a way to tag or annotate clipped images directly in the clipper before they hit the folder, so my collection stays organized from the moment I save something instead of cleaning it up later.
Report
Maker
@celalasravxqhf Thank you! Local-first + one-time price was exactly the hill I picked from day one 😄
Great point on organizing at save time. Two things the clipper already does today: click the chevron next to the save button and you can pick the exact board before the clip lands (it remembers your last choice for one-click saves). And as of this week every clip automatically keeps the source page URL, so there's context for later triage.
Tags and notes right in the clipper popup - noted, adding it to the roadmap. The clipper already talks to the app locally, so it's very doable; the challenge is keeping that hover pill fast and unobtrusive.
Curious: would you want free-form tags at save time, or picking from your existing tags? That choice changes the design quite a bit.
Report
The local folders approach is great for control, but it would be a huge help if the Chrome clipper could capture full-page screenshots instead of just visible images, since so many design references come from long scrolling sites.
Report
Maker
@yeliz950491 Great idea - and the timing is almost funny: this week's update quietly built the exact plumbing this needs (the clipper can now send raw bytes to the app, not just URLs). Full-page capture is "scroll, stitch, ship" on top of that.
Adding it to the roadmap. One honest caveat from having fought this before: long-page capture wrestles with sticky headers and lazy-loaded sections, so v1 would likely be "capture what's rendered" rather than pixel-perfect on every site.
Curious what you'd capture most - full landing pages, or specific sections like pricing tables and hero blocks? A "capture this section" mode might actually ship faster.
Report
the local-first approach with actual folders on disk is such a smart move, makes it feel less like yet another walled garden tool. Also love that the AI search runs on device, no waiting on some server.
Report
Maker
@volkanruhtemiz Thanks! The "delete the app, keep your library" test was my north star - if a tool fails it, it's a walled garden no matter how pretty.
On-device AI was honestly the harder path (the model is ~360 MB and runs locally), but it means your references never leave your disk - and search works on a plane. Worth it.
the license covers 2 devices and the pitch mentions syncing via your own Drive/iCloud, which makes me curious about the AI search side specifically. if the same board folder is synced to a second machine, does the on-device index/embeddings rebuild fresh on that machine, or does it try to sync the index too. and if I tag or rename something on device A while device B is mid-index of the same synced folder, is there any chance of the two AI indexes drifting or stepping on each other, or is search fully independent per device regardless of what's synced
@galdayan Great question - this is exactly the part of the architecture I'm most happy with, so forgive the detail 😄
Each reference has a small per-asset JSON "sidecar" file living next to your library, and that's the source of truth for everything: tags, notes, favorites - and the AI embeddings too. So when the folder syncs to a second machine, the embeddings ride along with it: device B doesn't re-crunch your whole library, it only embeds files that are genuinely new. The heavy lifting happens once.
The searchable index itself (a local SQLite file) is deliberately treated as a disposable cache: each machine builds its own from the synced sidecars, and if sync ever mangles it mid-write, the app just detects that, nukes it and rebuilds. So search always runs fully locally on each device - there's no "shared index" to fight over.
On concurrent edits: since metadata is one small JSON per asset, the only real clash window is editing the same reference on both machines at the same moment - then your sync provider's normal conflict rules kick in (last write wins or a conflict copy), and both indexes converge to whatever the files say. Renaming/tagging on A while B is mid-index is fine: B's watcher picks up the changes and reconciles.
Honest caveat: syncing is your provider's job, by design - so right after a big sync, one machine can briefly search slightly stale data until the files land. It catches up on its own.
The local folders idea is genuinely smart, and the on-device AI search is what convinced me to try it. One thing that would seal the deal for me though is a way to tag boards with project context, like client name or deadline, so I can quickly filter across multiple ongoing projects without digging through nested folders.
@nuriyepbrr Thanks so much! I’m really glad the local folders and on-device AI search resonated with you.
I’ve actually been thinking about this for a future update. My current idea is to introduce sub-boards (essentially folders inside boards), so you could have a board for a client or project and organize everything inside it however you like.
I really like your idea of adding project metadata like client names or deadlines for filtering across multiple projects too. That’s a great use case, and I’ll definitely keep it in mind as I evolve the organization system. Thanks for the suggestion! 🙌
Love the local-first approach and the one-time price is a huge plus over subscriptions. One thing I'd love to see is a way to tag or annotate clipped images directly in the clipper before they hit the folder, so my collection stays organized from the moment I save something instead of cleaning it up later.
@celalasravxqhf Thank you! Local-first + one-time price was exactly the hill I picked from day one 😄
Great point on organizing at save time. Two things the clipper already does today: click the chevron next to the save button and you can pick the exact board before the clip lands (it remembers your last choice for one-click saves). And as of this week every clip automatically keeps the source page URL, so there's context for later triage.
Tags and notes right in the clipper popup - noted, adding it to the roadmap. The clipper already talks to the app locally, so it's very doable; the challenge is keeping that hover pill fast and unobtrusive.
Curious: would you want free-form tags at save time, or picking from your existing tags? That choice changes the design quite a bit.
The local folders approach is great for control, but it would be a huge help if the Chrome clipper could capture full-page screenshots instead of just visible images, since so many design references come from long scrolling sites.
@yeliz950491 Great idea - and the timing is almost funny: this week's update quietly built the exact plumbing this needs (the clipper can now send raw bytes to the app, not just URLs). Full-page capture is "scroll, stitch, ship" on top of that.
Adding it to the roadmap. One honest caveat from having fought this before: long-page capture wrestles with sticky headers and lazy-loaded sections, so v1 would likely be "capture what's rendered" rather than pixel-perfect on every site.
Curious what you'd capture most - full landing pages, or specific sections like pricing tables and hero blocks? A "capture this section" mode might actually ship faster.
the local-first approach with actual folders on disk is such a smart move, makes it feel less like yet another walled garden tool. Also love that the AI search runs on device, no waiting on some server.
@volkanruhtemiz Thanks! The "delete the app, keep your library" test was my north star - if a tool fails it, it's a walled garden no matter how pretty.
On-device AI was honestly the harder path (the model is ~360 MB and runs locally), but it means your references never leave your disk - and search works on a plane. Worth it.