Thinking points for building a web app

I’m involved with a start-up building a web app. The following was my initial outline describing what I thought were some important thinking points in developing a web app.

Key ideas:

  • Workflow is everything
  • Email is the lowest common denominator - every app needs ways to interface using email (get and set data) - the concept extends out to email-via-mobile
  • Distributed platform - a site is just one interface to your platform (others = email, rss, docs, widgets, mobile)
  • Emergent architectures - data is dynamic, architectures need to be dynamic (tagging, faceted browsing)
  • User participation - the web is a read/write platform
  • Publish and subscribe - smart ways to automate read/write (RSS, SOA)
  • User generated content - both explicit (comments) and implicit (user meta data - "People who like this also like")
  • Scalable participation - needs to work for lurkers and power geeks
  • Content generation is a selfish act - a lot of user generated content is created by "implicit creation" - bring user meta data to the surface. Let people pivot around the meta data to get different perspectives (faceted browsing).
  • Mass customisation - tools/services to allow millions of people to customise their product/experience
  • The long tail - a corollary of mass customisation - providing easy access to millions of niche items can be more profitable than focusing on a few big hits - metadata is key to making this happen
  • Programmable web - developers need the ability to build new tools and features via SOA
  • Agile + iterative - func specs can kill, design for adaptation

Other import ideas:

Web as platform

  • The End of Software Upgrades, Fixes, and Security Patches.
  • Software and Data Available Wherever You Go
  • Isolated Software Can’t Compete with Connected Software
  • Deprecation of the Traditional Operating System
  • Software That Is Invisible

Agile design

  • Design the system not the surface
  • Design as evolutionary and user-driven
  • There is no page, only pathways
  • Rapid and iterative over final
  • Simplicity over complexity
  • Collaborative and open design

Game theory

  • Easy to Learn, Lifetime to Master
  • Offer clear and obvious short term and long term goals.
  • Players should be able to succeed in the first 10 minutes or earlier.
  • Support short session times of 10-15 minutes as well as longer.
  • Support multiple player styles such as Bartle’s 4 types: Achievers, Explorers, Socializers, and Player Killers.

Important sites/platforms:

  • amazon - read/write, recommendation system, mass customisation, distributed platform, long tail, open API - progammable web (must read amazoning the news)
  • ebay (trademe) - read/write, distributed platform, marketplace, reputation system
  • paypal - email is the interface, distributed platform
  • wikipedia - read/write, user participation, reputation system, distributed platform, infinite version control
  • flickr - AJAX workflow, read/write, social platform, distributed platform, open API - progammable web, long tail
  • gmail - AJAX workflow, read/write, distributed platform
  • delicious - read/write, distributed platform
  • craigslist - read/write, social platform, long tail
  • cafepress - read/write, mass customisation, distributed platform, marketplace
  • 37better - great web UI thinking, "Getting Real" agile + iterative approach
  • IM, p2p - read/write, distributed platform, always connected, asynchronous
  • typepad - read/write, ASP, social platform
  • firefox - tabbed browsing, extensions (programmable web), standards compliant, open source
  • RSS - distributed platform, read/write, pub-sub, in-box for the web
  • greasemonkey - programmable web
  • last.fm - read/write, implicit creation, social platform, recommendation system, distributed platform
  • zohowriter - read/write, AJAX workflow, infinite version control, distributed platform
  • tivo - workflow, publish and subscribe, recommendation system


Leave a Reply