Introducing Yummy! — A self hosted Delicious

After having quickly written DeliciousBackup I couldn’t resist myself into adding a wee bit more functionality to it. The result is a project called Yummy!. It’s goal: to become a self hosted Delicious.

New and improved

One of the new features in Yummy! which immediately stands out is that it’s been styled in a true Delicious-style, making it more attractive. Other visible features include the pagination and tags list.

With this version, private links are also hidden unless one is logged in. What’s also possible is something called tag plussing: you can filter out links having multiple tags (click on a related tag from the related tags list and you’re there).

In the back, most of the queries have been rewritten to support the mentioned tag plussing. Along with that I’ve also wiped out that one ugly (and slow) subquery which sported DeliciousBackup 🙂

Finally, Yummy! also sports nice urls and comes with a simple installer.

Plonk

Codewise, Yummy! is now OO driven and based upon a little PHP library called Plonk, which I developed to use in the PHP courses I’m teaching. Plonk itself partially inspired upon Spoon Library, which is the library of my choice (Since Yummy! isn’t that big I found Plonk to be more than sufficient).

I’m quite sure you’ll find some suggestions for Plonk, feel free to send them over. Please do note that I’ve deliberately kept some stuff in Plonk low-tech to not discourage my students when learning it — Spoon’s Template class for example is a few 100 times more powerful than Plonk’s 😉

Download and installing Yummy!

Yummy’s source code can be found over at GitHub. Installation instructions are provided in the attached readme.md file.

Download Yummy! from GitHub

The Future, Feature Requests & Bugs

For now, Yummy! only lets you browse your imported links. Planned features of course are the ability add and edit links. Providing an RSS feed is also on the menu. If you’ve got some features or have found a bug, feel free to suggest/mention them via Yummy’s issues page on GitHub, or Fork off and do a pull request after you’ve implemented/fixed it 😉

Join the Conversation

12 Comments

  1. Bram, this has the potential to make my day a brighter one! I’ve got hours of careful data gleaning concentrated in delicious and I can’t really find a decent alternative.
    I refuse to use diigo, I have before and they were “adding” links to my own and it made it look like I was condoning them and the parasite urls would end up in my diigo’s rss stream, so f that.
    Google doesn’t import the notes and priv/pub data attached to the links so no cigar there either.
    I would PAY for a bookmarklet and android “share” pluging.

    Happy holidays and thanks again for the hard work!

    ps: salted rss feed for each tag plz 🙂

  2. Hey Bram, thank you so much for this application.

    I’m having difficulty installing it on my server. I followed the instructions in README.md, but when i access the index.php file, I am just redirected to /browse with a 404 error. any ideas?

    best,
    Matt

  3. @Matt: it looks like the included .htaccess file (which Windows and Mac OS X tend to hide by default) wasn’t uploaded to your server. Create on manually on your server and set the contents to the one you see in the .htaccess located on GitHub.

  4. No, the .htaccess file is there, and I made sure that .htaccess files function properly in that directory. It runs index.php, but always redirects to /browse which shows a 404

  5. @Matt: it’s index.php which redirects to /browse. From there on .htaccess should translate /browse to be handled by index.php.

    If you’re getting a 404 on /browse, then I’m convinced that the .htaccess file isn’t working for you. Are you sure the mod_rewrite module is enabled on the server you’re uploading to?

  6. I’m trying to write a visualization tool to look at how my tags have developed over time.

    What SQL would I need to get a list of a unique tags with their respective totals within a particular date range?

  7. … Not to worry – I worked it out. In case any one wants to know:

    SELECT tag, Count(*) AS count
    FROM (links_tags INNER JOIN links ON links.id = links_tags.link_id)
    WHERE links.added between [datetime] AND [datetime]
    GROUP BY tag

Leave a comment

Leave a Reply to david b Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.