The process of managing the link roll on the front page of my site (now archived in the links section) is something I’ve changed several times.

On Thursday, the popular social bookmarking application ma.gnolia (designed by Zeldman and the boys at Happy Cog) added an open API to its tool belt. After about an hour of work Friday evening, I’ve switched my link roll system once again, from del.icio.us to ma.gnolia.

I now have ratings and screenshots of each link detail page (and I still have comments, of course). Here’s an example.

For a long time, I used a second blog in Moveable Type for links. I used the “title” field for the name of the link, the “body” field for a short description, and the “excerpt” field for the URL of the link. This worked okay, but having to open the MT admin interface anytime I wanted to add a link was a bit of a pain in the ass. So, several months ago, I switched to using del.icio.us. I would add bookmarks with the bookmarklet and display them on the front page using del.icio.us’ JSON interface. This worked okay, but I lost the ability to let visitors comment on my links.

For the new Djgano-powered version of jeffcroft.com, I found myself knee-deep in open APIs. I was importing items using APIs from Flickr and Last.fm, and I solved the lack-of-comments-problem on my links with the del.icio.us API. Every 10 minutes, a cron job hit up del.icio.us to see if I’d added any new links. If so, it pulled them into my Django database. I was then able to create a template for links, and add Django’s built-in commenting functionality to each one.

So why switch to ma.gnolia? Simple: their new API is better.

First, ma.gnolia stores more metadata about each bookmark than del.icio.us does. Besides title, description, tags, and date added, ma.gnolia also takes a screenshot of each link, allows you to rate links, and includes the date updated.

The inclusion of date updated was huge for me. One issue with my del.icio.us implementation was that while new links got added to my Django database just fine, links that I’d changed (i.e. added a tag, fixed a typo, etc.) did not. If I wanted to be complete, I really needed to make those changes both at del.icio.us and in my Django database. With ma.gnolia, I can simply compare the date updated field for each link in Django with the one in the ma.gnolia API’s XML results, and re-import the link if it’s been updated.

Another way the ma.gnolia API bests del.icio.us’ is that it lets you not only get at your bookmarks, but also other people’s. I’m not yet taking advantage of this functionality, but I have a few ideas on how I could. For example: for each of my blog posts, I could query ma.gnolia and display how many people have bookmarked it, what tags they used, and what rating they gave it.

One other very small feature I like about ma.gnolia is the “Snap Mark” bookmarklet. If you’ve used del.icio.us, you probably know how the bookmarklet works: you stumble across an interesting page, you click the bookmarklet in your browser’s toolbar, you are redirected to a del.icio.us page where you can tag and describe the page, and then you are redirected back to whence you came. Ma.gnolia’s regular bookmarklet works exactly the same way — but they also offer the so-called “Snap Mark.” In the case of a Snap Mark, you forgo tagging, describing, and rating your link. You click the bookmarklet and the bookmark is added to ma.gnolia without you ever leaving the page you’re on. Because my importer now respects updates as well as new links, this means I can quickly bookmark something with a Snap Mark, and then come back to it later for tagging and rating. Handy.

ma.gnolia also makes it quite simple to import links from del.icio.us, which made the switch very painless.

I could do a whole comparative review of the del.icio.us and ma.gnolia websites — and del.icio.us may even win. ma.gnolia is prettier, but I’m not convinced it’s easier to use. But, that’s mostly irrelevant to me, as I virtually never use the ma.gnolia web site (or the del.icio.us site, when I was using their service). I only really use the bookmarklet and the API — and ma.gnolia wins on both counts.

Comments

  1. 001 // dotsara // 05.07.2006 // 1:55 PM

    Neato.

    I’ve resisted ma.gnolia only because…really? I need another place to catalogue links? But that screenshot feature is intriguing. Hmmm.

  2. 002 // Jeff Croft // 05.07.2006 // 2:31 PM

    Yeah, I totally understand that. I definitely don’t really see the point of using more than one at a time. But I’ve pretty much switched completely, so I’m not using del.icio.us anymore.

    Like most things, it’s about using the best tool for the job for you. For me, ma.gnolia works a bit better for what I want to do. :)

  3. 003 // Colly // 05.07.2006 // 4:33 PM

    That’s me convinced. After nearly drowning in this bucket of enthusiasm I pottered off and started playing with Ma.Gnolia. An hour later, my links roll is entirely Ma.Gnolia-powered.

    Good work, Croft…

  4. 004 // Maura // 05.07.2006 // 6:13 PM

    I originally didn’t like Ma.gnolia because it gave you its redirect URLs in the feeds, but what you’ve done with the new API looks great.

  5. 005 // Jeff Croft // 05.07.2006 // 6:17 PM

    Yeah, the URL redirects (which are obviously there for click-tracking) is a bit of an annoyance, but in using the API, I was able to circumvent it by linking to the bookmarked website URL directly, instead of to ma.gnolia’s dispatch URL.

    BTW, Maura, I liked your del.icio.us vs. ma.gnolia entry. I actually read it before I made the switch. :)

  6. 006 // James Bennett // 05.07.2006 // 7:04 PM

    Remind me to bug you tomorrow about what you used for the API stuff. The thing I’ve liked about del.icio.us so far is that pydelicious already did everything I needed, so I didn’t have to write any code.

  7. 007 // j. brotherlove // 05.07.2006 // 7:24 PM

    I still keep everything bookmarked in Firefox but I’ve been trying to get into the social bookmarking thing. I’m not pleased with ma.gnolia’s responsiveness. Is this typical?

    Whenever I search, it takes a bit longer to get to a tag’s page than I think it should. And I don’t always find what I expect. Of course, I tend to search for obscure tags.

    Your solution is prime, of course.

  8. 008 // Jeff Croft // 05.07.2006 // 7:45 PM

    I’m not pleased with ma.gnolia’s responsiveness. Is this typical? Whenever I search, it takes a bit longer to get to a tag’s page than I think it should. And I don’t always find

    I honestly don’t know. Like I said, I’ve pretty much never used the ma.gnolia website. The bookmarklet is quick enough for me, and I use the API. I guess I don’t (yet) use many of the “social” features of it.

  9. 009 // Jeff Croft // 05.07.2006 // 7:49 PM

    Remind me to bug you tomorrow about what you used for the API stuff.

    Sure. I wrote my own (pretty simple) Python script using ElementTree to parse the XML. I stole heavily from the del.icio.us importer that Jacob originally wrote.

    I’m sure you, being much more of a programmer than I, can improve upon my crappy code. :)

  10. 010 // Paul Sturgess // 05.08.2006 // 4:12 AM

    Have to say I like the firefox buttons to add links to del.icio.us. It meant I could do away with a link manager completely for my site.

  11. 011 // Adam Teece // 05.08.2006 // 5:37 AM

    Jeff, thanks for the great content, I must admit seeing all this stuff can be a bit intimidating to someone just starting out in web design such as myself. Do you reccomend any books or classes to learn more. I only know the bare basics. On another note though, I was able to get the latest Django using Subversion installed on my Dream host website and will be posting a HOWTO within the next couple of days.

  12. 012 // Dustin Diaz // 05.10.2006 // 1:19 PM

    Jeff, I don’t think you’ve proven that Magnolia’s API is better than Delicious, but only the fact that it stores more meta info and let’s you comment on links. That really, technically, has nothing to do with the API.

    Comments on links were purposely left out of delicious so that you wouldn’t get the backlash like digg.com (so well known for their lovely comments).

    Also, you should know that by nature, an RSS feed is an API for getting data. In that sense, you’re incorrect in saying that Delicious doesn’t let you get other people’s bookmarks. Heck, you want mine? Here’s my RSS: http://del.icio.us/rss/polvero

    Last but not least, I’m not sure which bookmarker you’re using, but the del.icio.us-firefox extension I have pops up a new window so that you never have to leave the page you’re on.

    I hope some of my comments were useful - and I hope you can understand my backing up del.icio.us - it’s just in my blood.

    Stay Crofty ;)

  13. 013 // Jeff Croft // 05.10.2006 // 1:30 PM

    Dustin…

    Couple of points…

    1. Ma.gnolia doens’t allow comments on links, either. I did the comments on links locally, and I did it with de.licious, too. That’s not at all part of the reason I say ma.gnolia works better for me. I can easily do that wither either service.

    2. Okay, you’re right. I can get your RSS feed. As long as I only want your last 15 links (or however many it is). Not very helpful at all.

    3. I don’t use Firefox, so the extension is irrelevant. :)

    Ma.gnolia’s API exposes more data, period. I totally understand why you’d want to back Yahoo! (as you work for them), but you really can’t deny that Ma.gnolia’s API is more robust.

    Part of the reason it is more robust is that Ma.gnolia stores more metadata. You can say this has nothing to do with the API (and you’re right), but still, that extra data ends up exposed in the API, and therefore makes the API more useful.

    Besides the extra metadata, here are some things that del.icio.us COULD expose in their API, but doesn’t…

    1. Date last updated per bookmark.
    2. Searching by URL for all of the peopel that have bookmarked that URL.
    3. Searching by username for all bookmarks from a user.

    Those are just a few of the things Ma.gnolia offers that del.icio.us doesn’t.

    Sorry, Dustin. I love Yahoo!, but del.icio.us’s API just pales in comparrison to ma.gnolia’s.

  14. 014 // Dustin Diaz // 05.10.2006 // 2:07 PM

    On your second point, you probably didn’t notice that the actual API (not the RSS feed) - del.icio.us allows for a get on “/posts/all” method: http://del.icio.us/help/api/posts

    Also, what’s this “more metadata” you speak of? I haven’t played with it at all myself - but to the looks of the ma.gnolia API page… I see getting stuff by groups and star ratings… nothing that in my own opinion that makes it better. I suppose it’s all in your interest of what you’re looking for. If ma.gnolia is giving you what you need, then that’s what matters. Some don’t need the extra load and that’s what makes del.icio.us work well too.

    Keep in mind that by no means do I think you’re trashing del.icio.us, afterall you’ve used it yourself for quite some time. I just wanted to present some issues that weren’t raised in your post.

    There’s nothing pale about the del.icio.us API when comparing it to something that only has a couple extra bytes of meta information.

    Overall, they’re both good services. :)

  15. 015 // Jeff Croft // 05.10.2006 // 2:14 PM

    Dustin — you’re right, there’s a bit more to the posts/all method than I thought. Still, i don’t see how I can get all of the bookmarks by a particular user.

    Also, what’s this ‘more metadata’ you speak of?”

    • Ratings
    • Screenshots
    • Date last updated per link

    Of course, how useful any individual finds these is up to them — but for me, they’re nice. Especially the date updated thing. How can I tell which links I’ve changed on del.icio.us using the API? I don’t think you can. This is an essential feature to what I’m doing here.

    Another non-API related thing I like about ma.gnolia better than del.icio.us: it doesn’t truncate my description of my link at some abritrary number of characters. If ma.gnolia does truncate, i haven’t had it happen yet. At the very least, it lets me type a LOT more than del.icio.us does before it cuts me off. And, del.icio.us cuts you off with no warning that you’ve reached your character limit. You save your bookmark, and find that only half of what you wrote is there. That’s annoying. :)

    I agree that del.icio.us is a great service. I have nothing aganist it. I just think ma.gnolia offers a little more, and it’s helpful to me.

  16. 016 // Todd Sieling // 05.11.2006 // 6:54 PM

    Hi, all I’m the product manager for Ma.gnolia, and appreciate the conversation you have going here. I wanted to respond to a couple of comments specifically.

    First is about our redirect urls. We do indeed count clicks with that, and will be using that information to the advantage of members by making some basic stats available in the near future (near as in a few weeks to a month or so). Although you may find it a pain to not see the destination url for a bookmark in the status bar (I know that’s where I look sometimes when hovering on a link), I hope that the value of the stats will offset that somewhat.

    Second is to do with search. We’re not shy to say that our search is slower and less accurate than we know it needs to be to be an effective knowledge management tool. We ended up with way more bookmarks than we expected in our first quarter of operation - we hit a million last month, at least two months sooner than expected. The upshot is that search needs some heavy lifting, but that the work has already begun. On Tuesday night we did one update that has given a speed boost to tag searches, so things are starting to turn around on that front.

    There’s been a lot of interest in the API, and Jeff we’re happy that you find it a well though-out offering. Larry, Ma.gnolia’s founder, spent weeks working on the API personally to ensure that it would build on the lessons of other web 2.0 offerings, as well as help us build Ma.gnolia out more towards his vision of what we ultimately hope to become. We’re happy to read feedback both good and bad, and I invite any specific comments that don’t have a home here to be sent to me personally at todd@ma.gnolia.com.

  17. 017 // Sam // 05.14.2006 // 3:41 PM

    Besides, what’s the point of rating? You’re not gonna bookmark something that warrants a low rating in your mind; are you?

  18. 018 // Jeff Croft // 05.14.2006 // 3:54 PM

    Sam-

    See the links on the upper-right of this page? The ones I called “featured” links? Those got a rating of four or five stars.

    That’s the point — for me, anyway.

  19. 019 // Sam // 05.14.2006 // 5:10 PM

    Aaaaah, I see, clever.

    PS. Why won’t it remember my details? :(

  20. 020 // Jeff Croft // 05.14.2006 // 5:13 PM

    Why won’t it remember my details? :( Because I haven’t written a Javascript to make it do so. :)

  21. 021 // Todd Sieling // 05.15.2006 // 10:52 AM

    With resepect to Sam’s comment on the ratings, the comparison I’m fond of using is to one’s music collection. Let’s say we take all the cds you own - all of them are worth having, or you wouldn’t have them. But if we started to compare them to each other, you would probably find some that you like better than others. The star ratings on bookmarks in Ma.gnolia let you make that kind of differentiation with bookmarks: they might all be worth having in the collection, but some offer a little value while others offer much more.

  22. 022 // Sam // 05.15.2006 // 12:45 PM

    @Jeff: Javascript?! Why don’t you just set some cookie’s with Django when a comment is posted?

    @Todd: I see where you’re coming from. If you rate your bookmarks (or music) in relation to each other, so 1 star isn’t exactly bad, but not as exciting as one of your 5 star ratings. However all this is completely subjective and there’s no grounds on what warrants a 1 star or 5 stars, so I can’t see this being a very helpful (for lack of a better word) in such a social place as ma.gnolia.

    Just my $0.02

  23. 023 // Jeff Croft // 05.15.2006 // 12:56 PM

    Sam: Because I don’t know how to do that (yet). :)

  24. 024 // Todd Sieling // 05.15.2006 // 2:05 PM

    Sam - well the decision to bookmark a site at all is subjective in itself. But the model seems to pay off at least in social bookmarking. You’re right that I might not agree that something is worth 3 stars when you think it’s worth 5, but it does make things more useful when I look at my own collection, because I trust my ratings. Moreover, I tend to trust the ratings given by my contacts, so they come in handy there as well.

  25. 025 // Todd Sieling // 05.15.2006 // 5:51 PM

    Sam on re-reading your comment, I don’t think I responded properly. I’m not suggesting that people use stars as content tags. That would be ridiculous. What I am suggesting is that just because one bookmark is worth keeping doesn’t mean it has the same value as another bookmark worth keeping. I might give a poorly written wikipedia article that still has some useful stuff 2 stars. I might give another web page 5 stars because it’s better written or has more content.

  26. 026 // Tony // 05.26.2006 // 12:06 PM

    Any chance you’d be willing to share some of the underlying code?

  27. 027 // Myke // 05.28.2006 // 5:41 PM

    Hmm, I suppose that I will have to look into this. I really like the snap mark feature since I rarely tag my bookmarks until later.

  28. 028 // Todd Sieling // 06.07.2006 // 12:40 AM

    Any chance you’d be willing to share some of the underlying code?

    Not in the near term, Tony. We’ve benefitted from the open source community and have done some sposorship in the Typo and Rails communities, but no code releases are on the radar for as far ahead as we can see at this early point.

  29. 029 // Tony // 06.07.2006 // 12:57 AM

    @Todd, I was actually pointing that question at Jeff. I’m working on a Django blog myself, and wouldn’t mind the headstart on ma.gnolia integration. I only got halfway with integrating it with my PHP site before deciding to go with Django.

  30. 030 // Jeff Croft // 06.07.2006 // 1:07 AM

    Tony…

    I’m a little leery about publicly releasing code for this site, because it’s all written on pre-magic-removal Django and the syntax has changed now. But, I’ll be happy to e-mail it to you personally.

    Check you e-mail in a few. :)

  31. 031 // Ross Poulton // 06.19.2006 // 7:47 PM

    Jeff, Are you interested in sharing your ma.gnolia code around a little? I’d love a copy if possible to base some of my own stuff off of - not having too much luck with something in pymagnolia (but I’m not sure what exactly…). If you could shoot it across to ross at rossp.org, it’d be much appreciated. THanks :)

  32. 032 // Andy // 06.09.2007 // 8:15 AM

    Hmm, I suppose that I will have to look into this. I really like the snap mark feature since I rarely tag my bookmarks until later.

  33. 033 // Tom // 07.26.2007 // 1:31 PM

    Hi Jeff,

    I was wondering if you would publish a “how to” on integrating a Django-powered site with Magnolia? Thanks.

    Tom

  34. 034 // Keir Whitaker // 08.04.2007 // 12:23 PM

    Hi Jeff,

    I have been playing around with a similar implementation in PHP. New links and updates are handled thanks to the create and update dates, however one thing I haven’t got my head round is deleting a link.

    For example if you delete a link in Magnolia how do you handle this in your implementation? Having looked at the API I don’t seem to be able to query on new/updated links since X, x being a timestamp.

    The only way round it I can see is to delete all links and reimport them, which in a way makes the update time a little irrelevant.

    I am probably missing something but would be interested to see if you thought about this at all.

    Thanks, Keir

  35. 035 // Jeff Croft // 08.04.2007 // 12:59 PM

    Hi Kier: I had the same problem and never really solved it. I delete bookmarks so infrequently that it’s really not an issue. If I do have to delete something, I just delete it manually in both places. Definitely not idea, but like I said, it almost never happens.

  36. 036 // Arik Jones // 08.18.2007 // 5:08 PM

    I’ve been using Django over rails exclusively for all my development and have been nothing but happy. Anyway, I took lots of interest in your mention of pulling data from mangnolia’s API into your Django database. Are there any sources, tutorials, etc on how to do this? Thought I’d ask first before googling.

    Thanks Jeff.

  37. 037 // Levi Figueira // 10.12.2007 // 10:40 PM

    Hey Jeff,

    After a few months over at ma.gnolia, what do you think of the speed and service they provide?? I’m pretty tied with del.icio.us, mainly because of the most awesome plugin for Firefox, where I get suggested and popular tags and I usually end up using those, avoiding having to type…

    But if the whole concept behind ma.gnolia is better (I like the “looks” a lot… I’ve had an account with them ever since I remember… just don’t use it actively), I’d be willing to switch and endure the “adaptation” phase…

    Oh, and I got here while searching for Django stuff… Just getting into Python and Django myself… No experience whatsoever with Python… looks great and it sounds like lots of fun! :) I especially liked the search feature here, getting flickr photos, blog posts and links… great stuff!!

    Kudos to you! :) Cheers.

Post your comment