6 ms·
I’m working on an open-source social bookmarking site in Elixir that is API compatible with delicious/pinboard. Its named linkhut and it’s currently able to imp
by landhar 4y ago
I’m working on an open-source social bookmarking site in Elixir that is API compatible with delicious/pinboard. Its named linkhut and it’s currently able to import your bookmarks from pinboard and browser exports.
The flagship instance is: https://ln.ht https://ln.ht
The source code is hosted here: https://sr.ht/~mlb/linkhut/ https://sr.ht/~mlb/linkhut/
The documentation: https://docs.linkhut.org/introduction.html https://docs.linkhut.org/introduction.html
Two things that I think are very important in a bookmarking app (and why I‘ve been working on making one of my own on and off for a while): open source and offering an API for other tools to build upon. The current API on linkhut aims to be bug for bug compatible with pinboard while being more OAuth-y.
I’m still working on a snapshotting feature similar to pinboard’s, once that’s ready I think I’ll call 1.0 complete. Perhaps I’ll do a Show HN then.
- wyclif 4y agoIt's weird that this is at least the third iteration of "bookmarks on the web" that I've used. My trajectory has basically been del.icio.us > delicious > pinboard > linkhut (still kicking the tires on the latter though, staying on Pinboard for now but hope it doesn't stop working).
- wyclif 4y ago@landhar Some feedback: the EDIT | DELETE and COPY TO MINE text is too large and overwhelms the bookmark entry, being bigger than the link title.
- test1235 4y agoI just created a new account and migrated my bookmarks from pinboard - worked great!
- l0b0 4y agoInteresting! Got an account, but I wonder how you/we are going to pay for it. Even with just a few million bookmarks you're going to need a non-trivial DB setup, and (according to some napkin maths on my Pinboard account) ~2.5 MB of storage per bookmark for the snapshotting feature.
- dewey 4y ago> ~2.5 MB of storage per bookmark for the snapshotting feature. Could also be "outsourced" to archive.org and submitted there for the user (and to the benefit of others).
- gilbertbw 4y agoI think a feature of these bookmarking services is that you can search through the text on bookmarked pages?
- dabeeeenster 4y agoA docker image would be great to help self-hosters. Looks like a great tool!
- gala8y 4y agoFantastic! Big thanks for developing it in the spirit of open source.
- marceldegraaf 4y agoThis is great. I'm an Elixir engineer myself, and would love to contribute to something I can self-host. Are you open to external contributions? If so, what's a good/useful place to start? EDIT: if I would self-host this, I would want to run it in a Docker container. Is that something where I could help?
- alberth 4y agoI’m a Phoenix fan but curious, why the choice of Elixir here? I could be mistake but isn’t a site like Pinboard largely static.
- gala8y 4y ago> I could be mistake but isn’t a site like Pinboard largely static. Not if you want to make AND operations with tags (which is crucial functionality for bookmarking).
- alberth 4y agoPlaying devils advocate, but couldn't you do that with client side JS calling a Redis cache?
- couchand 4y agoIf viewing a list of basic links requires client-side JS you're doing it wrong.
- alberth 4y agoIt's not about viewing a list of basic links. It's to address the comment about performing AND operations to see only links that match multiple Tags.
- couchand 4y agoOk, I'll amend my statement to read: "if viewing a list of basic links that match a few basic filters requires client-side JS you're doing it wrong" and I stand by it. If you'd like to employ JS to progressively-enhance your user experience, great. If you are architecturally requiring JS for basic functionality? stop.
- alberth 4y agoIf you were to have a static site (note: that was the original question), and want to perform a dynamic tasks (like filtering) - how else would you do it besides using JS?
- wyclif 4y agoImporting as HTML is failing at the moment, heads up.
- wyclif 4y agoEDIT: I got it to work after a few tries.