Let's Push Things Forward

Maximizing social utility for fun and (modest) profit

Previous Entry Share Next Entry

Soylent Preview

(Without getting too much into the back-story, Soylent is an idea I originally had more than a year and a half ago, fumbled a little, and eventually stalled out. But some months ago (with the encouragement and help of Rob Taylor) I revived it, and am slowly-but-surely building it toward a refined vision.)

Soylent is a "people browser", in the same way that Nautilus is a file browser. Soylent displays your Evolution Data Server contacts by (buddy) icon and full name, allowing you to perform person-based operations, such as starting an IM conversation, video/phone chat, email, editing contact information, etc.

Soylent screenshot - detail view
Our current level of functionality in the main view. We don't support the insensitive widgets yet.

Soylent screenshot - detail view
The contact editor. This mostly all works. But it could use more than a smidgin of love.

We're starting basic, but it seems like we can extend the functionality greatly without making the UI much more complicated. For instance, dragging one or more files onto someone would initiate a file transfer (if they accept it on their end); dragging one person onto another would share their contact information with each other (again, assuming they both allow it). Dragging text onto someone could initiate a conversation (a bare URL could send it to an unobtrusive "Friends' Links" (sub)application, website, or something along those lines).

Soylent screenshot - future mockup
Approximately what Soylent should look like within a few releases. What you see is what you (will probably) get.

Goals and Strategies:
  • Pull together disparate contact information and state into cohesive People objects.
  • Make actions on people as intuitive as possible.
  • Minimize data duplication
    • eg, only store "pointers" like IM names, email addresses, blog URLs; don't store the contents of latest blog posts, emails, etc.
  • Minimize effort duplication (hook into existing libraries and services)
    • Work upstream as much as possible: contribute to those projects as necessary to fix bugs and add naturally-useful functionality. Some of the stack Soylent taps into could use some scrubbing
  • Make Soylent as universal as feasible
    • We use Telepathy instead of libgaim because Telepathy seems like a much better architecture (especially in terms of extendability and general long-term relevance and adoption)
    • We use Evolution Data Server for contact storage right now because it's about as feature-complete as we could expect (the only major area it's missing are per-website usernames for contacts). It's also fairly universal within Gnome (and thus most distros) as the default address book backend.
    • We eventually want to split the basic contact functionality out into its own library, so that we can have consistent, desktop-wide access to people and their metadata.
      • For example, Jono has said that he wants future versions of Jokosher to use Telepathy to allow music/audio collaboration over the Internet. libsoylent would factor out some of the work of exposing People rather than usernames to the Jokosher user. For the actual audio streaming, Jokosher would still use Telepathy. In other words, libsoylent will give applications a user-friendly way to gather the proper URI to initiate communication, not actually carry out the communication. Telepathy already exists, and I'm not a big fan of abstracting other peoples' abstractions :)
      • GTK+ could eventually include a standard "Select Person" dialog based on libsoylent, just as it includes a standard "Open File" dialog now.

Hopefully that gives everyone a decent idea of what Soylent is and will be. I'd love to hear your feedback in the comments!

Edit (2007-05-09 23:47 PDT): I've realized how many times my face has shown up in the last two posts (especially if you factor in the same hackergotchi next to it on p.g.o). I promise to punish everyone with my face a little less in the future :)

  • 1
this should be gimmie's 'People' section.

"this should be gimmie's 'People' section".

I couldn't agree more. Travis, why don't you contact Gimmie devs and work together?


Seems like a waste of time.

Just another "social thingy".

But, you can always dream.

Good luck.

Denny Crane


Cool concept. An idea that I just had is, it would be cool to have F-Spot support. So I can see all photos from one person with a single click.

IM integration


I'm working on Empathy, an IM client using telepathy and Mission Control. The main goal of the project is to integrate IM into the GNOME desktop by providing an API and GTK widgets that can be used in any program.

Merging together EDS information and IM information into one Person object is one of my goal too. For example we should be able to display only one contact per *real* person instead of one for the MSN account, Jabber account, evolution address book, etc. All that information should be merged into one Person entity.

If you are interested by that concept please work with me on empathy ! You can contact us via IRC on #telepathy irc.freenode.net

Have a nice day ;)

Xavier Claessens.


Hi Travis

Just my feeling about your interface: (I have no idea of the Gnome guideline, so forgive me if I don't respect it...)

I don't think the main buttons should be at the top. This "double bar" (actions+new/delete) looks a bit heavy to me. Why not put the actions on the right or at the bottom? Or maybe appearing around the face/icons with some bling bling effects? I like simple interfaces where things appear only when you can really use them.

Did you also think about multi-selection? You select three persons, and you can email them together, or instant message them at the same time with the same message?

Good luck in your development!

Look promising, is the Telepathy integration already done or is it still a TODO ?
Also is the code already avaible so we can test it?


I have to say, Soylent is an awesome name for this project. I haven't seen the movie but I should add it to my Netflix queue..

how about a people selector dialog for starters

I don't so often "browse" people (except on Facebook and Myspace, natch) at least not in the way that I browse documents (on the web) or files (when re-organizing, getting an overview). What I do with contacts all the time, is select them. I select people I want to chat with, people I want to send email to, people I want to talk to or schedule a meeting with.

Aside: is that only because I don't already have a people browser?

A standard people selector dialog (like the toolkit-standard file selector dialog the shows up when I open or save a file in any old application today) would be nice to have. Textual email address completion in the email client is nice, but selection by hackergotchi could be nicer (particularly if you're "not good with names"!). Many IM clients have a buddy list with icons, it'd be nice (familiar, unsurprising) if those all used a standard widget. When I'm tagging photos that include pictures of people in my contact list, and likewise when retrieving photos by tag, if I'm looking for a photo of a person, and I use the person selector widget every other time I "do things with people" then I'll know where to find them quickly.

Blah blah and so on... a minimal, generic "person selector" dialog, just like the file selector, but for people.


  • 1

Log in