One of the cool things about the way I designed FeedLand internally is that there are various levels of feed stuff. If you want to start over at any level, you can, and today I'm doing exactly that. But first here's the stack:
- At the lowest level is the reallysimple package, which reads any feed and returns a consistent JavaScript object, so the database code only ever sees one kind of feed. All the differences between RSS and Atom are flattened, and features from the source namespace are included, where they are present.
- Above that level is the feedlanddatabase package, which has a Node API that does all the stuff with the SQL database that FeedLand runs off. So if all you want to do is add feeds, subscribe to them, add a user, subscribe to a reading list, build a river, all that stuff is at this level. This is the level at which I'm going to start building today.
- Next level up is the feedland package, which implements the REST interface, and handles all the runtime stuff that the FeedLand client needs.
- And the final level is the one the user interacts with, it runs in the browser, and makes the REST calls to the feedland server. All the rendering of the objects coming out of the database via the REST interface happens here.
In an application I'm working on, I found myself reimplementing features of FeedLand, and I stopped myself and said, nooooo use the API that's already there. The advantages are many, including I will be able to use FeedLand to manage the data structures. So that's what I'm doing. Wish me luck.