Fork me on GitHub

No Fuss Bookmarks

No Fuss Bookmarks is a very simple software and service to store bookmarks especially designed for hackers (that don't need fancy interfaces, but nice API).

The software is a simple RESTful server, written using Flask, providing a CRUD interface to a mongoDB store, plus a very basic Google Chrome extension to submit bookmarks. The code is released under the GPL and available from GitHub.

The service is just an incarnation of such software hosted by heroku and mongolab that you can freely use just submitting your email below to obtain your API key.

If you like this, please consider making a small donation Flattr this

Submit bookmarks

Install the No Fuss Bookmark Chrome extension that will, by default, use this server as a backend.

Attention After installing it, point your Chrome browser at chrome://settings/extensionSettings and, follow the "Option" link of the extension, enter the API key you got submitting your email in the above form.

If you want to use an alternate server (and API key), you must download the extension source code and edit it accordingly, than you can install it following for instance this instructions.

Get bookmarks

Point your browser at http://nofussbm.herokuapp.com/<EMAIL>, where <EMAIL> is your email, to get a list of all your bookmarks as a (tab separated) text file (that you can, for instance, conveniently grep, or sort); moreover you can set an alias if your email is just too long (see the API section for instructions).

You can optionally filter such list by tag and/or title adding to the above URL a (suitably encoded) query string with the field tags having as value a (comma separated list) of tags that will all match, and/or the field title having as value a string that will match as a (case insensitive) substring.

Attention All bookmarks are public, anyone with your email can get your bookmarks. For instance, you can see a list of all my bookmarks, or just the one tagged with Python.

Abandon Delicious

Important You can easily export your bookmarks from the now fussy Delicious and import them here! See the API section for instructions.

Create, Read, Update, Delete

The API are so simple that you can perform all the CRUD operations from the command line, using simple tools such as, for instance, cURL.

Assume that KEY contains your API key (for instance, the one you got submitting your email in the above form), URL contains the API endpoint (that is http://nofussbm.herokuapp.com/api/v1/ if you use this server as a backend), and the bm.json file contains the following JSON representation of a bookmark

[{
  "title": "mapio/nofussbm - GitHub", 
  "url": "https://github.com/mapio/nofussbm",
  "tags": "flask,mongodb,python,bookmarks"
}]

Them, you can create such a bookmark by the following command

curl -X POST -d @bm.json -H "Content-type: application/json" -H "X-Nofussbm-Key: $KEY" $URL

Hence, you can read your bookmarks (and record them in the bms.json file) using

curl -H "Content-type: application/json" -H "X-Nofussbm-Key: $KEY" $URL > bms.json

If the store was initially empty and you added just bm.json, then bms.json will contain

[{
  "date-added": "2011-11-24 21:33:50.290000", 
  "id": "4eceb83e57ae478fc5000000", 
  "tags": "flask,mongodb,python,bookmarks", 
  "title": "mapio/nofussbm - GitHub", 
  "url": "https://github.com/mapio/nofussbm"
}]

If you want, you can edit bms.json and then update (matching bookmarks by id) the store with

curl -X PUT -d @bms.json -H "Content-type: application/json" -H "X-Nofussbm-Key: $KEY" $URL

Finally, you can delete bookmarks (matching the id) in bms.json with

curl -X DELETE -d @bms.json -H "Content-type: application/json" -H "X-Nofussbm-Key: $KEY" $URL

Experimental features

Important You can import your Delicious bookmarks as follows: first, export them from their site and you should get an HTML file (usually named delicious.html) containing a sequence of lines of the form

<DT><A HREF="[url]" ADD_DATE="[timestamp]" PRIVATE="[0|1]" TAGS="[tags]">[title]</A>

Then, import it (preserving all the information except for the PRIVATE field) as simply as

curl -T delicious.html -H "X-Nofussbm-Key: $KEY" ${URL}import

If you feel that your email is too long, or you want to post somewhere the list of your bookmarks without reveailng your identity, you can setup an alias as follows

curl -X POST -H "X-Nofussbm-Key: $KEY" ${URL}setalias/<YOUR_ALIAS>

where <YOUR_ALIAS> is any word of your choice (look at the answer to see if, in case of duplicates, your request wasnt satisfyed).