Node project idea - Delicio.us clone

By Ev Bogue - July 29th 2015

I have a big theory that everything that's been built on the Internet can be re-implemented in Node.js. You only need to understand how a program works. The great thing about existing programs is someone programmed them once, so how hard can it be to program them again?

Delicio.us is a good one. Social bookmarking! Because it doesn't really exist anymore. The original program is long gone, lost to seas of time. Pinboard.in is another example of the same program.

This is a a spec. How exactly to re-implement delicious is beyond the realm of this post. I don't know the specifics because I haven't done it.

I'm going to talk about how I think it could be achieved, and what modules to use, and then you get to do the implementing. Unless I'm motivated enough to try it myself before you figure it out. If you do a delicio.us clone, send me the link! ev@evbogue.com

If you need an introduction to Node.js, buy the Node.js book to get your skills up.

If you want to hire me to implement a program in Node.js, or throw a whole bunch of VC money at me to do it, then give me a shout and we'll talk details.

Delicio.us is a three part centralized user-account based program, as I remember it.

  1. The frontend
  2. The backend
  3. The bookmarklet

There's no reason you can't do most of this in Node, except for the bookmarklet. That would need to be done in browser-side JavaScript. The bookmarklet hangs out in your browser's navigation bar and saves a bookmark's name, url, date and any notes you have about the page. Next, it relays it to the backend app for you, so you don't have to manually type any of it in.

The backend would be Node.js. It'd need to take data from the frontend and save it to a database. Let's say Redis, because Redis is fast. But you could just as well use LevelDB, MongoDB, or one of those SQLs. The hardest thing for me would probably be doing the database hookups, because I've never written a database app before. Next I'd use Express or Koa.js as a framework to render routes to receive and display this data. It'd need a /save route that both accepts input from a form and displays output. The app would record an object containing this data. Let's use JSON for that. We'd need /signup and /login routes as well. As well as a /profile page that is editable and a root route / that displays your social bookmarks in chronological order.

If I remember delicio.us, it also had a way to /follow /unfollow and /display all of the bookmarks that your friends have saved as well. While we're at it, we'll need to implement a /search route where you can search your bookmarks for bookmarks you'd saved.

That's it for the backend.

The frontend doesn't need to be anything other than static HTML rendered on the fly for the user session. No need to bring any data to the browser unless you want to do that in a clever way.

That's it folks. Go now and implement! Create a startup and make all of the money. If I missed anything, let me know.

Bare Minimum Metalwork Stack →