{"slug": "perkeep", "name": "Perkeep", "category": "files", "category_name": "Files, sync and backup", "description": "", "recommenders": 4, "commenters": 12, "warners": 1, "score": 4.195, "rising": 0.02, "first": "2025-11-11", "latest": "2026-08-21", "why": "PS: Checkout Perkeep for a take on aggregating all your data in one place.", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 3, "neutral": 6, "compare": 4, "warn": 1}, "spark": [0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "PS: Checkout Perkeep for a take on aggregating all your data in one place.", "kind": "", "icon": true, "domain": "perkeep.org", "github_repo": null, "official_url": "https://perkeep.org/", "pricing": "", "aliases": ["Perkeep"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 790157216, "item_id": 49384826, "url": "https://news.ycombinator.com/item?id=49384826", "by": "ssivark", "date": "2026-08-21", "version": null, "stance": "recommend", "quote": "PS: Checkout Perkeep for a take on aggregating all your data in one place.", "excerpt": "> We use issue trackers and pull requests to manage work, people write documentation and communicate over email, instant messaging, and in meetings. Keeping all of the information in these channels synchronized and up to date is a full time job. The crux of what OP wants seems to be transparent interfaces to the data store backing each of these services. Version control would be about tracking changes when this data ", "context": "", "use_case": "aggregating personal data", "switched_from": "", "story": "Version Control for Everything"}, {"id": 755459921, "item_id": 47216245, "url": "https://news.ycombinator.com/item?id=47216245", "by": "cachius", "date": "2026-03-02", "version": null, "stance": "recommend", "quote": "Checkout Timelinize and Perkeep!", "excerpt": "Checkout Timelinize and Perkeep! https://timelinize.com/ https://github.com/timelinize/timelinize https://news.ycombinator.com/item?id=45504973 https://perkeep.org/ https://github.com/perkeep/perkeep https://news.ycombinator.com/item?id=45896130 Links are Website, Repo, HN discussion", "context": "", "use_case": "", "switched_from": "", "story": "How to Record and Retrieve Anything You've Ever Had to Look Up Twice"}, {"id": 746747456, "item_id": 46671716, "url": "https://news.ycombinator.com/item?id=46671716", "by": "skeledrew", "date": "2026-01-18", "version": null, "stance": "recommend", "quote": "inspired by PerKeep[0]", "excerpt": "I've been thinking of this for some time, conceptually, but perhaps from a more fundamental angle. I think the idea of \"files\" is pretty dated and can be thrown out. Treat everything as data blobs (inspired by PerKeep[0]) addressed by their hashes and many of the issues described in the article just aren't even a thing. If it really makes sense, or for compatibility sake, relevant blobs can be exposed through a files", "context": "", "use_case": "", "switched_from": "", "story": "A Social Filesystem"}, {"id": 734502226, "item_id": 45906389, "url": "https://news.ycombinator.com/item?id=45906389", "by": "frio", "date": "2025-11-12", "version": null, "stance": "recommend", "quote": "Thanks for building `tsidp` (and Perkeep!)", "excerpt": "I use `tsnet` and `tsidp` heavily to safely expose a bunch of services to my client devices, they've been instrumental for my little self-hosted cloud of services. Thanks for building `tsidp` (and Perkeep!) :).", "context": "", "use_case": "", "switched_from": "", "story": "Perkeep \u2013 Personal storage system for life"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 734345025, "item_id": 45896564, "url": "https://news.ycombinator.com/item?id=45896564", "by": "lynx97", "date": "2025-11-11", "version": null, "stance": "warn", "quote": "this looks like way too much to trust in the long run.", "excerpt": "At first glance, this looks like way too much to trust in the long run. I use git-annex since roughly 10 years to archive files I don't want to loose again. Does everything I want, and is pretty simple for what it gives me. A checksum for every file, replication on a file-basis, does not dictate the underlying filesystem I use. Full syncs are rather slow, but in reality, it doesn't really matter if I have to wait 3 h", "context": "", "use_case": "personal storage", "switched_from": "", "story": "Perkeep \u2013 Personal storage system for life"}]}], "who": [], "tags": [], "use_cases": ["personal storage", "aggregating personal data", "personal data storage", "personal storage system"], "compared": [{"slug": "timelinize", "name": "Timelinize", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=45896130", "title": "Perkeep \u2013 Personal storage system for life", "mentions": 10}, {"url": "https://news.ycombinator.com/item?id=46665839", "title": "A Social Filesystem", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=49336358", "title": "Version Control for Everything", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47729694", "title": "An Introduction to Obsidian", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47213819", "title": "How to Record and Retrieve Anything You've Ever Had to Look Up Twice", "mentions": 1}], "sentiment_by_month": {"2025-11": {"neutral": 5, "compare": 3, "warn": 1}, "2025-12": {}, "2026-01": {"recommend": 1, "neutral": 1}, "2026-02": {}, "2026-03": {"recommend": 1}, "2026-04": {"compare": 1}, "2026-05": {}, "2026-06": {}, "2026-07": {}, "2026-08": {"recommend": 1}, "2026-09": {}, "2026-10": {}}, "versions": [], "version_unnamed": 0, "family_ref": null, "runs_on": null, "lines": [], "quotes": [{"id": 790157216, "item_id": 49384826, "url": "https://news.ycombinator.com/item?id=49384826", "by": "ssivark", "date": "2026-08-21", "version": null, "stance": "recommend", "quote": "PS: Checkout Perkeep for a take on aggregating all your data in one place.", "excerpt": "> We use issue trackers and pull requests to manage work, people write documentation and communicate over email, instant messaging, and in meetings. Keeping all of the information in these channels synchronized and up to date is a full time job. The crux of what OP wants seems to be transparent interfaces to the data store backing each of these services. Version control would be about tracking changes when this data ", "context": "", "use_case": "aggregating personal data", "switched_from": "", "story": "Version Control for Everything"}, {"id": 764151140, "item_id": 47759446, "url": "https://news.ycombinator.com/item?id=47759446", "by": "QuantumNomad_", "date": "2026-04-13", "version": null, "stance": "compare", "quote": "Perhaps something along the lines of Perkeep (formerly Camlistore)", "excerpt": "On the other end of the spectrum you have me, who\u2019s been only vaguely organising my files for years. I am currently collecting my data from across different hard drives I have and running hashdeep as a first step to identify duplicate files. Even though I\u2019m not organising the files themselves well, I do maintain backups. Both in the form of ones that are replicated ZFS snapshots, but also files that I\u2019ve manually cop", "context": "", "use_case": "", "switched_from": "", "story": "An Introduction to Obsidian"}, {"id": 755459921, "item_id": 47216245, "url": "https://news.ycombinator.com/item?id=47216245", "by": "cachius", "date": "2026-03-02", "version": null, "stance": "recommend", "quote": "Checkout Timelinize and Perkeep!", "excerpt": "Checkout Timelinize and Perkeep! https://timelinize.com/ https://github.com/timelinize/timelinize https://news.ycombinator.com/item?id=45504973 https://perkeep.org/ https://github.com/perkeep/perkeep https://news.ycombinator.com/item?id=45896130 Links are Website, Repo, HN discussion", "context": "", "use_case": "", "switched_from": "", "story": "How to Record and Retrieve Anything You've Ever Had to Look Up Twice"}, {"id": 746786003, "item_id": 46674125, "url": "https://news.ycombinator.com/item?id=46674125", "by": "sroerick", "date": "2026-01-18", "version": null, "stance": "neutral", "quote": "Another commenter brought up Perkeep, which I think is very interesting.", "excerpt": "Interesting - I just spent all day on this on an app which I'm using. My architecture is a little different (probably worse). The app lives on a single OpenBSD server. All user data is stored in /srv/app/[user]. Authentication is done by accessing OpenBSD Auth helper functions. Users can access their data through the UI normally. Or they can use a web based filesystem browser to edit their data files. Or, alternately", "context": "", "use_case": "personal data storage", "switched_from": "", "story": "A Social Filesystem"}, {"id": 746747456, "item_id": 46671716, "url": "https://news.ycombinator.com/item?id=46671716", "by": "skeledrew", "date": "2026-01-18", "version": null, "stance": "recommend", "quote": "inspired by PerKeep[0]", "excerpt": "I've been thinking of this for some time, conceptually, but perhaps from a more fundamental angle. I think the idea of \"files\" is pretty dated and can be thrown out. Treat everything as data blobs (inspired by PerKeep[0]) addressed by their hashes and many of the issues described in the article just aren't even a thing. If it really makes sense, or for compatibility sake, relevant blobs can be exposed through a files", "context": "", "use_case": "", "switched_from": "", "story": "A Social Filesystem"}, {"id": 734532369, "item_id": 45908273, "url": "https://news.ycombinator.com/item?id=45908273", "by": "skeledrew", "date": "2025-11-12", "version": null, "stance": "compare", "quote": "PerKeep may make that a complete non-issue, though I'm not 100% certain", "excerpt": "I've been using synching for a few years myself and it's been great. Except for when conflicts occur in my org files, which are the primary things I use it to keep synced. PerKeep may make that a complete non-issue, though I'm not 100% certain. Beyond that though, I'm thinking this would be nice for syncing state for a cross-platform app that features multiple incarnations anywhere being in sync to a decent extent. J", "context": "", "use_case": "", "switched_from": "", "story": "Perkeep \u2013 Personal storage system for life"}, {"id": 734502226, "item_id": 45906389, "url": "https://news.ycombinator.com/item?id=45906389", "by": "frio", "date": "2025-11-12", "version": null, "stance": "recommend", "quote": "Thanks for building `tsidp` (and Perkeep!)", "excerpt": "I use `tsnet` and `tsidp` heavily to safely expose a bunch of services to my client devices, they've been instrumental for my little self-hosted cloud of services. Thanks for building `tsidp` (and Perkeep!) :).", "context": "", "use_case": "", "switched_from": "", "story": "Perkeep \u2013 Personal storage system for life"}, {"id": 734417488, "item_id": 45901093, "url": "https://news.ycombinator.com/item?id=45901093", "by": "cachius", "date": "2025-11-12", "version": null, "stance": "compare", "quote": "Reminds me of Timelinize", "excerpt": "Reminds me of Timelinize https://news.ycombinator.com/item?id=45504973 https://github.com/timelinize/timelinize", "context": "", "use_case": "", "switched_from": "", "story": "Perkeep \u2013 Personal storage system for life"}, {"id": 734376976, "item_id": 45898561, "url": "https://news.ycombinator.com/item?id=45898561", "by": "pscanf", "date": "2025-11-12", "version": null, "stance": "neutral", "quote": "I'm building an app _conceptually similar_, but with an AI on top", "excerpt": "(Sorry for the shameless self-promotion.) I'm building an app _conceptually similar_, but with an AI on top, so you get a chat/assistant with your personal context. https://github.com/superegodev/superego (Warning: still in alpha.)", "context": "", "use_case": "", "switched_from": "", "story": "Perkeep \u2013 Personal storage system for life"}, {"id": 734373536, "item_id": 45898346, "url": "https://news.ycombinator.com/item?id=45898346", "by": "vermilingua", "date": "2025-11-12", "version": null, "stance": "neutral", "quote": "It appears that it does integrate with Tailscale for auth", "excerpt": "It appears that it does integrate with Tailscale for auth (but not using tsidp via OIDC like I expected): https://perkeep.org/doc/server-config#simplemode", "context": "", "use_case": "", "switched_from": "", "story": "Perkeep \u2013 Personal storage system for life"}, {"id": 734362785, "item_id": 45897674, "url": "https://news.ycombinator.com/item?id=45897674", "by": "mickael-kerjean", "date": "2025-11-12", "version": null, "stance": "neutral", "quote": "I just added support for perkeep in Filestash last week", "excerpt": "> There is no community around growing its usage I just added support for perkeep in Filestash last week (https://github.com/mickael-kerjean/filestash)", "context": "", "use_case": "", "switched_from": "", "story": "Perkeep \u2013 Personal storage system for life"}, {"id": 734345025, "item_id": 45896564, "url": "https://news.ycombinator.com/item?id=45896564", "by": "lynx97", "date": "2025-11-11", "version": null, "stance": "warn", "quote": "this looks like way too much to trust in the long run.", "excerpt": "At first glance, this looks like way too much to trust in the long run. I use git-annex since roughly 10 years to archive files I don't want to loose again. Does everything I want, and is pretty simple for what it gives me. A checksum for every file, replication on a file-basis, does not dictate the underlying filesystem I use. Full syncs are rather slow, but in reality, it doesn't really matter if I have to wait 3 h", "context": "", "use_case": "personal storage", "switched_from": "", "story": "Perkeep \u2013 Personal storage system for life"}, {"id": 734342736, "item_id": 45896421, "url": "https://news.ycombinator.com/item?id=45896421", "by": "frio", "date": "2025-11-11", "version": null, "stance": "neutral", "quote": "", "excerpt": "I've been similarly half-interested in it for... more than a decade now. The new release (which is what I assume prompted this post) looks pretty impressive (https://github.com/perkeep/perkeep/releases/tag/v0.12).", "context": "", "use_case": "Personal storage", "switched_from": "", "story": "Perkeep \u2013 Personal storage system for life"}, {"id": 734342464, "item_id": 45896404, "url": "https://news.ycombinator.com/item?id=45896404", "by": "debo_", "date": "2025-11-11", "version": null, "stance": "compare", "quote": "", "excerpt": "The overview is very comprehensive: https://perkeep.org/doc/overview", "context": "", "use_case": "Personal storage system", "switched_from": "", "story": "Perkeep \u2013 Personal storage system for life"}, {"id": 734341808, "item_id": 45896363, "url": "https://news.ycombinator.com/item?id=45896363", "by": "burke", "date": "2025-11-11", "version": null, "stance": "neutral", "quote": "", "excerpt": "I have used perkeep. I still do at least in theory. I love the concept of it but it\u2019s become\u2026 not quite abandonware, but it never gained enough traction to really take on a full life of its own before the primary author moved on. A bit of a tragedy because the basic idea is pretty compelling.", "context": "", "use_case": "personal storage", "switched_from": "", "story": "Perkeep \u2013 Personal storage system for life"}]}