July 28th 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! firstname.lastname@example.org
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.
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.
July 27th 2015
Updated: July 28, 2015 Version: 1.6.1
I wanted a decent framework. I looked everywhere for one. I tried out a bunch. None of them were good enough for me. So I created one. I present to you, a decent framework.
Patches welcome, via email.
Framework comes with a percentage-based grid layout. There are twelve columns. This means you should be able to design layouts that work on different sized screens -- from mobile to desktop.
To install Framework.css...
<link rel="stylesheet" href="/framework.css" />
Make sure the URL is the same as where you've uploaded the file on your server.
And build! Design! Create! Make all of the money!