Adriaan LigtenbergStill a lot of good lessons we can learn from this. Can you send a copy to me ? Might use it for my course at Keio on entrepeneurship. adriaan@ligtenberg.com2 years ago
Are you sure you want to
Adriaan LigtenbergStill a lot of good lessons we can learn from this. Can you send a copy to me ? Might use it for my course at Keio on entrepeneurship.2 years ago
Lessons from Building world’s largest social music platformPresentation Transcript
Lessons from Building
The World’s Largest
Social Music Platform
Matthew Ogle & Anil Bawa Cavia
FoWA 2007
How does it work?
How does it work?
Listen
- to your own music
- to Last.fm radio
How does it work?
Listen
- to your own music
- to Last.fm radio
Share
-your taste
instead of files
- automatic, via
“scrobbling”
How does it work?
Listen
- to your own music
- to Last.fm radio
Share
Discover -your taste
- via your friends
instead of files
- via people with
- automatic, via
similar taste
“scrobbling”
How does it work?
Listen
- to your own music
- to Last.fm radio
Share
Discover -your taste
- via your friends
instead of files
- via people with
- automatic, via
similar taste
“scrobbling”
15 million tracks scrobbled / day
15 million tracks scrobbled / day
(175 scrobbles per second)
15 million tracks scrobbled / day
(175 scrobbles per second)
Over 6 billion tracks scrobbled since 2003
15 million tracks scrobbled / day
(175 scrobbles per second)
Over 6 billion tracks scrobbled since 2003
10 million artists
15 million tracks scrobbled / day
(175 scrobbles per second)
Over 6 billion tracks scrobbled since 2003
10 million artists
70 million tracks
15 million tracks scrobbled / day
(175 scrobbles per second)
Over 6 billion tracks scrobbled since 2003
10 million artists
70 million tracks
700k tracks streamable on Last.fm radio
15 million tracks scrobbled / day
(175 scrobbles per second)
Over 6 billion tracks scrobbled since 2003
10 million artists
70 million tracks
700k tracks streamable on Last.fm radio
17 million items tagged
15 million tracks scrobbled / day
(175 scrobbles per second)
Over 6 billion tracks scrobbled since 2003
10 million artists
70 million tracks
700k tracks streamable on Last.fm radio
17 million items tagged
145k artist wikis
Last.fm World Domination Headquarters
Whitechapel, London, 2004
Early Growth Lessons
Early Growth Lessons
Don’t overextend – scale with your growth, not before
Early Growth Lessons
Don’t overextend – scale with your growth, not before
Make sure revenue sources scale with increased usage
Early Growth Lessons
Don’t overextend – scale with your growth, not before
Make sure revenue sources scale with increased usage
Google ads
Early Growth Lessons
Don’t overextend – scale with your growth, not before
Make sure revenue sources scale with increased usage
Google ads
User subscriptions
Early Growth Lessons
Don’t overextend – scale with your growth, not before
Make sure revenue sources scale with increased usage
Google ads
User subscriptions
Involve users in your web application’s story
Early Growth Lessons
Don’t overextend – scale with your growth, not before
Make sure revenue sources scale with increased usage
Google ads
User subscriptions
Involve users in your web application’s story
Make growth a selfish aim for existing users
Early Growth Lessons
Don’t overextend – scale with your growth, not before
Make sure revenue sources scale with increased usage
Google ads
User subscriptions
Involve users in your web application’s story
Make growth a selfish aim for existing users
Be as open as you can afford
Audioscrobbler.com homepage, late 2004
Openness and Growth
Openness and Growth
In 2004, we had a cool service, but needed data
Openness and Growth
In 2004, we had a cool service, but needed data
Audioscrobbler Protocol 1.0
Openness and Growth
In 2004, we had a cool service, but needed data
Audioscrobbler Protocol 1.0
Webservices for accessing users’ music profile data
Openness and Growth
In 2004, we had a cool service, but needed data
Audioscrobbler Protocol 1.0
Webservices for accessing users’ music profile data
Together, provided “round trip” incentive for plugin developers
Openness and Growth
In 2004, we had a cool service, but needed data
Audioscrobbler Protocol 1.0
Webservices for accessing users’ music profile data
Together, provided “round trip” incentive for plugin developers
Winamp, iTunes, WMP, Amarok
Openness and Growth
In 2004, we had a cool service, but needed data
Audioscrobbler Protocol 1.0
Webservices for accessing users’ music profile data
Together, provided “round trip” incentive for plugin developers
Winamp, iTunes, WMP, Amarok
Foobar, QCD, mpd, XMMS, mpg321
Openness and Growth
In 2004, we had a cool service, but needed data
Audioscrobbler Protocol 1.0
Webservices for accessing users’ music profile data
Together, provided “round trip” incentive for plugin developers
Winamp, iTunes, WMP, Amarok
Foobar, QCD, mpd, XMMS, mpg321
Noatun, Quod Libet, Jinzora, Ampache
Openness and Growth
In 2004, we had a cool service, but needed data
Audioscrobbler Protocol 1.0
Webservices for accessing users’ music profile data
Together, provided “round trip” incentive for plugin developers
Winamp, iTunes, WMP, Amarok
Foobar, QCD, mpd, XMMS, mpg321
Noatun, Quod Libet, Jinzora, Ampache
(and dozens more)
Openness and Users
Openness and Users
Involve non-technical users as well
Openness and Users
Involve non-technical users as well
Promote a community around your application
Openness and Users
Involve non-technical users as well
Promote a community around your application
Talk to your users (bad news > no news)
Openness and Users
Involve non-technical users as well
Promote a community around your application
Talk to your users (bad news > no news)
More likely to tolerate growing pains…
Moving into the new office
Old Street, London, May 2006
Growing up
Growing up
process
Growing up
process
product
Growing up
process
product
Growing up
•
process 20 to 40+ employees in 6 months
product
Growing up
•
process 20 to 40+ employees in 6 months
• “people trump process”
product
Growing up
•
process 20 to 40+ employees in 6 months
• “people trump process”
product
• simple tools are effective tools
Growing up
•
process 20 to 40+ employees in 6 months
• “people trump process”
product
• simple tools are effective tools
• radiate information across different
channels in the company
Growing up
process excerpt from #last.fm irc channel
Growing up
process excerpt from #last.fm irc channel
irccat: SVN commit by norman (23872) 'randomSplitter: splits data into train and test sets randomly' (changeset: https://admindev.last.fm/
trac/changeset/23872)
Growing up
process excerpt from #last.fm irc channel
irccat: SVN commit by norman (23872) 'randomSplitter: splits data into train and test sets randomly' (changeset: https://admindev.last.fm/
trac/changeset/23872)
3:40 PM
Growing up
process excerpt from #last.fm irc channel
irccat: SVN commit by norman (23872) 'randomSplitter: splits data into train and test sets randomly' (changeset: https://admindev.last.fm/
trac/changeset/23872)
3:40 PM
irccat: *** jonty is refreshing webnodes now: 'Fix for group owners'
Growing up
process excerpt from #last.fm irc channel
irccat: SVN commit by norman (23872) 'randomSplitter: splits data into train and test sets randomly' (changeset: https://admindev.last.fm/
trac/changeset/23872)
3:40 PM
irccat: *** jonty is refreshing webnodes now: 'Fix for group owners'
mischa: jonty: memcache key should be set to: java-playlist-10093 where 10093 ==userid.
Growing up
process excerpt from #last.fm irc channel
irccat: SVN commit by norman (23872) 'randomSplitter: splits data into train and test sets randomly' (changeset: https://admindev.last.fm/
trac/changeset/23872)
3:40 PM
irccat: *** jonty is refreshing webnodes now: 'Fix for group owners'
mischa: jonty: memcache key should be set to: java-playlist-10093 where 10093 ==userid.
irccat: Trac: ticket #1779 (http://support.last.fm/trac/ticket/1779) changed by julian, Comment: Fixed for the next release..
Growing up
process excerpt from #last.fm irc channel
irccat: SVN commit by norman (23872) 'randomSplitter: splits data into train and test sets randomly' (changeset: https://admindev.last.fm/
trac/changeset/23872)
3:40 PM
irccat: *** jonty is refreshing webnodes now: 'Fix for group owners'
mischa: jonty: memcache key should be set to: java-playlist-10093 where 10093 ==userid.
irccat: Trac: ticket #1779 (http://support.last.fm/trac/ticket/1779) changed by julian, Comment: Fixed for the next release..
irccat: number of anon flash streams is 1440, number of registered flash streams is 764
Growing up
process excerpt from #last.fm irc channel
irccat: SVN commit by norman (23872) 'randomSplitter: splits data into train and test sets randomly' (changeset: https://admindev.last.fm/
trac/changeset/23872)
3:40 PM
irccat: *** jonty is refreshing webnodes now: 'Fix for group owners'
mischa: jonty: memcache key should be set to: java-playlist-10093 where 10093 ==userid.
irccat: Trac: ticket #1779 (http://support.last.fm/trac/ticket/1779) changed by julian, Comment: Fixed for the next release..
irccat: number of anon flash streams is 1440, number of registered flash streams is 764
felix: hey abc when did you put the adsense leaderboard on bottom cat pages live?
Growing up
process excerpt from #last.fm irc channel
irccat: SVN commit by norman (23872) 'randomSplitter: splits data into train and test sets randomly' (changeset: https://admindev.last.fm/
trac/changeset/23872)
3:40 PM
irccat: *** jonty is refreshing webnodes now: 'Fix for group owners'
mischa: jonty: memcache key should be set to: java-playlist-10093 where 10093 ==userid.
irccat: Trac: ticket #1779 (http://support.last.fm/trac/ticket/1779) changed by julian, Comment: Fixed for the next release..
irccat: number of anon flash streams is 1440, number of registered flash streams is 764
felix: hey abc when did you put the adsense leaderboard on bottom cat pages live?
abc: friday
Growing up
process excerpt from #last.fm irc channel
irccat: SVN commit by norman (23872) 'randomSplitter: splits data into train and test sets randomly' (changeset: https://admindev.last.fm/
trac/changeset/23872)
3:40 PM
irccat: *** jonty is refreshing webnodes now: 'Fix for group owners'
mischa: jonty: memcache key should be set to: java-playlist-10093 where 10093 ==userid.
irccat: Trac: ticket #1779 (http://support.last.fm/trac/ticket/1779) changed by julian, Comment: Fixed for the next release..
irccat: number of anon flash streams is 1440, number of registered flash streams is 764
felix: hey abc when did you put the adsense leaderboard on bottom cat pages live?
abc: friday
3:45 PM
Growing up
process excerpt from #last.fm irc channel
irccat: SVN commit by norman (23872) 'randomSplitter: splits data into train and test sets randomly' (changeset: https://admindev.last.fm/
trac/changeset/23872)
3:40 PM
irccat: *** jonty is refreshing webnodes now: 'Fix for group owners'
mischa: jonty: memcache key should be set to: java-playlist-10093 where 10093 ==userid.
irccat: Trac: ticket #1779 (http://support.last.fm/trac/ticket/1779) changed by julian, Comment: Fixed for the next release..
irccat: number of anon flash streams is 1440, number of registered flash streams is 764
felix: hey abc when did you put the adsense leaderboard on bottom cat pages live?
abc: friday
3:45 PM
mokele: ? lookup track 11082618
Growing up
process excerpt from #last.fm irc channel
irccat: SVN commit by norman (23872) 'randomSplitter: splits data into train and test sets randomly' (changeset: https://admindev.last.fm/
trac/changeset/23872)
3:40 PM
irccat: *** jonty is refreshing webnodes now: 'Fix for group owners'
mischa: jonty: memcache key should be set to: java-playlist-10093 where 10093 ==userid.
irccat: Trac: ticket #1779 (http://support.last.fm/trac/ticket/1779) changed by julian, Comment: Fixed for the next release..
irccat: number of anon flash streams is 1440, number of registered flash streams is 764
felix: hey abc when did you put the adsense leaderboard on bottom cat pages live?
abc: friday
3:45 PM
mokele: ? lookup track 11082618
irccat: track.id(11082618) Zetan Spore ??? Subspace Distortion http://www.last.fm/music/Zetan+Spore/_/Subspace+Distortion (lastfm=t)
Growing up
process excerpt from #last.fm irc channel
irccat: SVN commit by norman (23872) 'randomSplitter: splits data into train and test sets randomly' (changeset: https://admindev.last.fm/
trac/changeset/23872)
3:40 PM
irccat: *** jonty is refreshing webnodes now: 'Fix for group owners'
mischa: jonty: memcache key should be set to: java-playlist-10093 where 10093 ==userid.
irccat: Trac: ticket #1779 (http://support.last.fm/trac/ticket/1779) changed by julian, Comment: Fixed for the next release..
irccat: number of anon flash streams is 1440, number of registered flash streams is 764
felix: hey abc when did you put the adsense leaderboard on bottom cat pages live?
abc: friday
3:45 PM
mokele: ? lookup track 11082618
irccat: track.id(11082618) Zetan Spore ??? Subspace Distortion http://www.last.fm/music/Zetan+Spore/_/Subspace+Distortion (lastfm=t)
pete_bug: jonty, can you please suspend PP campaign 3670?
Growing up
process excerpt from #last.fm irc channel
irccat: SVN commit by norman (23872) 'randomSplitter: splits data into train and test sets randomly' (changeset: https://admindev.last.fm/
trac/changeset/23872)
3:40 PM
irccat: *** jonty is refreshing webnodes now: 'Fix for group owners'
mischa: jonty: memcache key should be set to: java-playlist-10093 where 10093 ==userid.
irccat: Trac: ticket #1779 (http://support.last.fm/trac/ticket/1779) changed by julian, Comment: Fixed for the next release..
irccat: number of anon flash streams is 1440, number of registered flash streams is 764
felix: hey abc when did you put the adsense leaderboard on bottom cat pages live?
abc: friday
3:45 PM
mokele: ? lookup track 11082618
irccat: track.id(11082618) Zetan Spore ??? Subspace Distortion http://www.last.fm/music/Zetan+Spore/_/Subspace+Distortion (lastfm=t)
pete_bug: jonty, can you please suspend PP campaign 3670?
jonty: pete_bug, sure one sec.
Growing up
process excerpt from #last.fm irc channel
irccat: SVN commit by norman (23872) 'randomSplitter: splits data into train and test sets randomly' (changeset: https://admindev.last.fm/
trac/changeset/23872)
3:40 PM
irccat: *** jonty is refreshing webnodes now: 'Fix for group owners'
mischa: jonty: memcache key should be set to: java-playlist-10093 where 10093 ==userid.
irccat: Trac: ticket #1779 (http://support.last.fm/trac/ticket/1779) changed by julian, Comment: Fixed for the next release..
irccat: number of anon flash streams is 1440, number of registered flash streams is 764
felix: hey abc when did you put the adsense leaderboard on bottom cat pages live?
abc: friday
3:45 PM
mokele: ? lookup track 11082618
irccat: track.id(11082618) Zetan Spore ??? Subspace Distortion http://www.last.fm/music/Zetan+Spore/_/Subspace+Distortion (lastfm=t)
pete_bug: jonty, can you please suspend PP campaign 3670?
jonty: pete_bug, sure one sec.
irccat: Trac: ticket #1526 (http://support.last.fm/trac/ticket/1526) "group recommendations are slow" created by muz.
Growing up
process excerpt from #last.fm irc channel
osmotic communication
Growing up
process
product
Growing up
•
process 15 million unique users a month
product
Growing up
•
process 15 million unique users a month
•
product plan for going global
Growing up
•
process 15 million unique users a month
•
product plan for going global
• affiliations should enhance the user
experience
Growing up
•
process 15 million unique users a month
•
product plan for going global
• affiliations should enhance the user
experience
• harness critical mass
Growing up
•
process 15 million unique users a month
•
product plan for going global
• affiliations should enhance the user
experience
• harness critical mass
• embed your service in others
Growing up
•
process 15 million unique users a month
•
product plan for going global
• affiliations should enhance the user
experience
• harness critical mass
• embed your service in others
• make the transition from service to
platform
Growing up
product harness critical mass
Growing up
product harness critical mass
Growing up
product harness critical mass
user-generated content
Growing up
product harness critical mass
network effects of socialization
user-generated content
Growing up
product harness critical mass
network effects of socialization
affiliate services
user-generated content
Growing up
product harness critical mass
network effects of socialization
user moderation
affiliate services
user-generated content
Growing up
product harness critical mass
user-generated content
drives feature design
Growing up
product
Growing up
product embed your service in others
Growing up
product embed your service in others
quilts
Growing up
product embed your service in others
quilts charts
Growing up
product embed your service in others
quilts charts radio
Growing up
product embed your service in others
allow users to export
Growing up
product
Growing up
product transition from service to platform
Growing up
product transition from service to platform
Growing up
product transition from service to platform
Growing up
product transition from service to platform
Growing up
product transition from service to platform
openness is key to web
platforms
Attention and “Myware”
Attention and “Myware”
Attention and “Myware”
When you pay attention to something (or don’t), data is created
Attention and “Myware”
When you pay attention to something (or don’t), data is created
Myware: spying on yourself
Attention and “Myware”
When you pay attention to something (or don’t), data is created
Myware: spying on yourself
Attention economy alters traditional meaning of “active user”
Attention and “Myware”
When you pay attention to something (or don’t), data is created
Myware: spying on yourself
Attention economy alters traditional meaning of “active user”
Social web + attention aggregators = where the action is
Attention data
Monetizing attention
Attention data
Monetizing attention
1 - Microchunk it - Reduce the content to its simplest form.
Attention data
Monetizing attention
1 - Microchunk it - Reduce the content to its simplest form.
2 - Free it - Put it out there without walls around it or strings on it.
Attention data
Monetizing attention
1 - Microchunk it - Reduce the content to its simplest form.
2 - Free it - Put it out there without walls around it or strings on it.
3 - Syndicate it - Let anyone take it and run with it.
Attention data
Monetizing attention
1 - Microchunk it - Reduce the content to its simplest form.
2 - Free it - Put it out there without walls around it or strings on it.
3 - Syndicate it - Let anyone take it and run with it.
4 - Monetize it - Put the monetization and tracking systems into the
microchunk.
Attention data
Monetizing attention
1 - Microchunk it - Reduce the content to its simplest form.
2 - Free it - Put it out there without walls around it or strings on it.
3 - Syndicate it - Let anyone take it and run with it.
4 - Monetize it - Put the monetization and tracking systems into the
microchunk.
Fred Wilson, The Future of Media, November 2005
Attention data
Monetizing attention
Attention data
Monetizing attention
Powerplay is sponsored airtime
Attention data
Monetizing attention
Powerplay is sponsored airtime
Individualized targeting based on attention history
Attention data
Monetizing attention
Powerplay is sponsored airtime
Individualized targeting based on attention history
New attention metrics for reporting
Attention data
Monetizing attention
Powerplay is sponsored airtime
Individualized targeting based on attention history
New attention metrics for reporting
No more CPMs - the ‘scrobble’ is our attention unit
Attention data
Case study: tag cloud moderation
Attention data
Case study: tag cloud moderation
Paris Hilton tag cloud, October 2006
Attention data
Case study: tag cloud moderation
Paris Hilton tag cloud, October 2006 Paris Hilton tag cloud, February 2007
Attention data
Case study: tag cloud moderation
Attention data
Case study: tag cloud moderation
Censorship is not acceptable in a folksonomy
Attention data
Case study: tag cloud moderation
Censorship is not acceptable in a folksonomy
Attention data does not lie
Attention data
Case study: tag cloud moderation
Censorship is not acceptable in a folksonomy
Attention data does not lie
Weigh user tags by volume of attention user gives
to content
Attention data
Case study: tag cloud moderation
Censorship is not acceptable in a folksonomy
Attention data does not lie
Weigh user tags by volume of attention user gives
to content
Attention earns trust
Future of Last.fm
Future of Last.fm
more
Future of Last.fm
more
less
Future of Last.fm
more
less
Future of Last.fm
•
more more growth
less
Future of Last.fm
•
more more growth
• more streamable music
less
Future of Last.fm
•
more more growth
• more streamable music
less
• more ambient findability
Future of Last.fm
•
more more growth
• more streamable music
less
• more ambient findability
• more personalization /
things you can do with your data
Future of Last.fm
more
less
Future of Last.fm
•
more fewer interfaces
less
Future of Last.fm
•
more fewer interfaces
• fewer barriers to entry
less
Future of Last.fm
•
more fewer interfaces
• fewer barriers to entry
less
• fewer gradients?
Thank-you.
Questions?
matt@last.fm anil@last.fm
Let LinkedIn power your SlideShare experience
+
Let LinkedIn power your SlideShare experience
Customize SlideShare content based on your interests
We will import your LinkedIn profile and you will be visible on SlideShare.
Keep up to date when your LinkedIn contacts post on SlideShare
1–10 of 16 previous next Post a comment
1–10 of 16 previous next