Webstock: Jason Kottke, I Built a Web App (And You Can Too)

This week I’m at Webstock, a lovely conference in New Zealand. I’m doing my best to write little blog posts about the amazing presentations. Please forgive any typos, etc. If you’re here too, come write a haiku at Automattic’s booth.

Jason Kottke is a blogger and a web developer. Kottke.org is a blog he’s been publishing since 1998. Today he’s talking about something else.

1. How do you decide to do something?

When one of his kids was born, lots of friends and family took pictures for tweeting, Flickr’ing, and generally posting on the web. Most interactions with those images came in the form:

  • Facebook: Like
  • Twitter: Favorite (with a star) and Retweet
  • Flickr: Favorite (with a star)
  • Vimeo: Like (with a heart)
  • Tumblr: Like (with a heart)

Three years ago, when Kottke started thinking about this, most companies just tucked the data away. It was/is hard to access again by users. “If you’re favoriting things to save important family memories, this is a problem.”

According to Stephen Johnson, good ideas come in the form of a “slow hunch.” One example: Tim Berners-Lee’s invention of the World Wide Web. After college in 1980, Tim coded a hyperlinked tool for academics to share knowledge. It didn’t really take on. In 1989, he hatched a plan to build a more ambitious version of the first tool. He took a vague notion and iterated on it, over and over.

Kottke’s first slow hunch: blogging software. He started Kottke.org by editing static HTML files. Since the time he switched to MT in 2002, he’s thought about writing his own blogging app.

The second slow hunch: streams. When the web first began, the NCSA logged everything that was new on the web. People would email the NCSA anytime they changed something with their website. And the NCSA would post the newest stuff at the top, and bump the older stuff down.

“It’s weird that we read backwards in time on the web, and forwards in time everywhere else.”

2. Stellar, something he decided to make

Stellar is a web app that collects all of your social media favorites in one place, and follow your friends’ favorites. At this point, 15k users have signed up. 2-3k are active users.

Kottke thinks of it as a lightweight blogging app. Every time you favorite something, it gets blogged to the stream. What’s surprising to him is how useful it is as a tool for finding things you didn’t know you’d be interested in. “The delicious cream off the social media churn.”

Stellar is hosted on two EC2 instances with RDS as the database. Software: Ubuntu Linux, PHP, Memcached, CodeIgniter, jQuery, Typekit, Mercurial, and MySQL (RDS). Everything is free, or very cheap, and way easier than it was five years ago.

3. What he’s learned, and the current status of Stellar

Another important stack: the meat stack. There are plenty of articles on how to get the most out of yourself and collaborators on HackerNews, Stack Overflow, etc. Kottke’s advice:

  • You can do it. When he started, there were many things he didn’t know: how to use an MVC framework, how to memcache, etc. Kottke started making Stellar, and learned along the way.
  • Sit in the chair and do it. Making something involves actually making something.

Design turned out to be harder than programming. One sign of success: if he got sidetracked by some new content while working on a feature, then he must be doing something right.

After two and a half years with 25-30 hours / week towards it, Kottke thinks Stellar is about 20% done. Some work to do:

  • Convert to Twitter’s new API request requirements.
  • There are almost 18 million favorited items in Stellar’s database, which is not insignificant. Database server needs to be upgraded or rethunk and it will be costly.

“How can I build a business on the shifting demands of corporate APIs?” Kottke hasn’t committed to Stellar since July 31st, 2012 because he’s been stuck. He was that guy, super stoked about what he was building, until about eight months ago. Only time will tell what will happen with Stellar.

Leave a Reply