introducing lithium sphere

I am very excited to finally introduce and share with you: Lithium Sphere. There are some really fun functional and design implementations that I had a blast experimenting with and hope you’ll enjoy.

image of lithium sphere content page

Though I would never assert a design or concept is flawless, there are a few philosophies behind some of the, perhaps abnormal, design and feature implementations I feel worth mentioning to justify why it is as it is.

rate

The primary goal of the site is content discovery among a shared interest. The ability to endorse a post is a function to drive that goal. Combined with the size of discussion (and a foreseeable aim to try to weigh the quality of that discussion), the backend uses this measurement to try to push highly endorsed and/or discussed content (and thus, hopefully, more relevant) to the top.

This is not an original concept. However, unlike most sites with similar goals, we intentionally conceal that metric on the frontend. Also, we do not track the sum of endorsed post or comments as any sort of user metric.

The idea here is that we do not want this to be some sort of game. The focus is on the content; not the points. Similarly, with users, I believe publishing similar metrics is misleading and distracting. If Jimbob has 2,000 endorsed comments and Anna has 2, it would seem that Jimbob is somehow more correct or knowledgeable in a system that rewards such.

I envision a site where content is equally shared; where all users can equally weigh in; where the community, through actual participation, will recognize a user for what they have actually contributed. And, where a community member can be uniquely remembered within the individual contexts of their peers personal experience rather than some empty metric that allows you to instantly validate or dismiss someone else’s contribution.

I really hope this will drive more meaningful contributions and strengthen the community; to empower the community rather than distract.

Therefore, post ratings will not be revealed, nor user ratings. Comment ratings are revealed, however, because it provides a clear benefit within the context of a discussion around a single topic.

edit

You will not be able to delete or edit content you submit, nor un-endorse.

I don’t feel it is fair to be able to go back and edit content that could have been the genesis for an entire sub-discussion. If you don’t want it out there: don’t publish it. If you make a typo: we’ll forgive you. If you can’t forgive yourself: post a followup reassuring the internet that you do, in fact, know how to spell reason.

As for un-endorsing a post or comment you mistakenly did? Well, to be frank: who cares? No one can see what you endorsed. More importantly: I don’t feel the benefit of such functionality outweighs the distraction.

search

Admittedly, as of launch the search sucks. It’s a super simple key:value index lookup that is fast, but limited. You can search by date; within time ranges by combining to and from; by author (read: username), and while you can search for an exact instance of a word within the title, without a full-text search the only search key I imagine will be helpful and possibly regularly used are tags.

With the alpha version, the application was using CouchDB for the database paired with Lucene for full-text searches. Combined with some CouchDB views, the search was powerful. However, the complexity in setting up the application, the required server-side components and installing the application (i.e. the views), not to mention the idea of maintaining the complex architecture… it just didn’t add up, and the last 6 months of this basically complete application just collecting dust proves it.

I think we’ll come up with something eventually. I do think that this isn’t a dealbreaker, though. In fact, it’s not even a high priority. Thinking about sites that I regularly visit that present content in a similar fashion (e.g. HN, reddit), I can’t recall using their search more than once in the past 6 months - or in the case of HN, ever.

On the surface, it doesn’t make sense when considering the primary goal is content discovery. But, consider how content discovery occurs in such a system. Typically, these sites become democratic dailies. Users will drop in daily or maybe weekly, checkout what the community has voted the most important - check out the content, scan the discussion and move on. Personally, if I’m looking for more than front page, I’ll drop in to the next couple of pages. If I find something I like I bookmark it.

There are other tools out there to fill the gap, here. Hopefully Google will be indexing the content soon enough. Maybe you prefer something like Instapaper over bookmarks. For now, I hope you’ll agree that it’s not a dealbreaker, and best-case you won’t even notice.

onward

There are a few features missing I really wish I could have implemented for launch. I can only hope by putting the source out there that you, the community this was made for, will give back and help make it better for us all. At best I have provided a starting point: a vision; a functional prototype; and, now I’ve shared some of the core philosophies behind the design and functionality.

If you’re looking for more direction and would like to give back, start here:

  1. Account management: the current user implementation is so bare-bones you can’t even reset your password. This might be a problem. Other details include changing your email, maybe leveraging 3rd party auth (Google, etc.)?
  2. Spam: ability for community to flag and admin to view and delete queue of flagged content.
  3. Customized sorting: currently all results are sorted by rating, then creation date, descending. Maybe it isn’t worth the distraction, I don’t know.
  4. Twitter: it’d be rad if the system twitter account was used to pipe the best content of the day out (maybe tinker with a rating threshold?) - as well as the ability to link a sphere account to a twitter account and post links as direct messages to the system twitter account to create posts on your behalf. Perhaps there is more abstract approach that can work across related apps (e.g. google+, facebook)
  5. Member approval: I’ve entertained the idea of requiring each user be manually verified and approved by an admin. Might be more work than it’s worth. It just seemed like something our developer community could get away with this. Primarily to keep spam out but also to prevent total anonymity (read: mean (and/or willfully ignorant) people suck).
  6. Continued optimizations and testing: Most of the effort put into this application has been simply getting it functional, and the design polished enough. Surely there are better ways to do a lot of what this does.

And I’m sure there are lots of other absolutely fantastic ideas out there just waiting to be revealed. It’s amazing how, many times, much more creativity blooms within the constraints of a defined system versus a blank slate — I’m looking forward to the feedback and the future of Sphere.

Many mahalo to the entire Union of Rad, to you, and a special thanks to Gwoo, and David Coallier for the Lucene implementation last year.

Enjoy.