Technology of Technology of the New News the New News
Workflow*Workflow*Roger TheriaultRoger Theriault
True/SlantTrue/Slant
*featuring WordPress MU*featuring WordPress MU
True/SlantTrue/Slant
Contributors - TaibbiContributors - Taibbi
Contributors – Colin Contributors – Colin HorganHorgan
Contributors – Miles Contributors – Miles ObrienObrien
Content surfaces on Content surfaces on main sitemain site
Inbound Inbound TrafficTraffic
>80% of >80% of inbound traffic inbound traffic is to individual is to individual postsposts
We also need to We also need to expose these expose these users to users to True/Slant via True/Slant via the single page the single page templatetemplate
WidgetsWidgets
Related Posts and Related Posts and StreamsStreams
Topic StreamsTopic StreamsHow to combine?How to combine?
Every author has a different way to Every author has a different way to organize categories, and a different organize categories, and a different opinion of what belongsopinion of what belongs
We devised a ½ editorial, ½ We devised a ½ editorial, ½ automated Topicautomated Topic
Fed by designating categories from Fed by designating categories from specific contributorsspecific contributors
Fine tuned by manipulating on a post Fine tuned by manipulating on a post by post basisby post basis
StreamsStreams
StreamsStreams
Editorial Editorial overridesoverrides
Default Default based on based on post post categoriescategories
AJAX of AJAX of coursecourse
FollowingFollowing
FollowingFollowing Simple list of Simple list of
contributor ids contributor ids (and topics) (and topics) stored for each stored for each useruser
AJAX controlsAJAX controls Other modules Other modules
use the follow use the follow data (eg: email data (eg: email alerts, alerts, Facebook)Facebook)
User Activity User Activity FeedFeed
Constant stream of Constant stream of user activity on the user activity on the sitesite
PostsPosts Comments by userComments by user Comments on user’s Comments on user’s
postpost Headline GrabsHeadline Grabs New followsNew follows Etc.Etc.
User Activity User Activity FeedFeed
Master activity tableMaster activity table Multiple unique indexesMultiple unique indexes
Event typeEvent type Acting userActing user Receiving userReceiving user TimestampTimestamp Blog idBlog id Post id or Link idPost id or Link id Comment idComment id
Reciprocal events for Reciprocal events for receiverreceiver
EditorialEditorial
Surface Surface compelling compelling contentcontent
Leverage Leverage existing existing informationinformation
Simple interfaceSimple interface Don’t get in Don’t get in
anyone’s wayanyone’s way
Comment Comment CurationCuration
Surface the best Surface the best commentscomments
But permit the But permit the entire thread to entire thread to be seenbe seen
Show in streams Show in streams and activity feedsand activity feeds
Keeps Keeps conversations conversations civilizedcivilized
CommentComment Curation Curation
Simple AJAX Simple AJAX controls to controls to “Call Out” a “Call Out” a commentcomment
Alerts hook into Alerts hook into it to send user it to send user notificationsnotifications
Rest is Rest is templatestemplates
Comment CurationComment Curation
News NowNews Now
Network HeaderNetwork Header
SearchSearch
Contributor ToolsContributor Tools
Technical ChallengesTechnical Challenges
How to integrate so many blogs?How to integrate so many blogs? Consistent experienceConsistent experience Fast performanceFast performance
Caveat – what we are Caveat – what we are doing is OKdoing is OK
No need to write everything as a No need to write everything as a separate pluginseparate plugin
Need flexibilityNeed flexibility For easy scalability and maintenance, For easy scalability and maintenance,
build hooks and filters inbuild hooks and filters in Be ready to throw a bunch of code Be ready to throw a bunch of code
awayaway Don’t hack core! Copy and change Don’t hack core! Copy and change
functions if needed.functions if needed.
Editorial - AJAXEditorial - AJAX
Editors can’t always remember which tab in Editors can’t always remember which tab in Admin to go to, so we put everything right in Admin to go to, so we put everything right in front of themfront of them
Lots of hover – click elements for editorsLots of hover – click elements for editors Some even for contributors Some even for contributors
Curate CommentsCurate Comments On backend, simple option storage usually is On backend, simple option storage usually is
sufficient for editorial datasufficient for editorial data Consistent UI elements eliminate complexityConsistent UI elements eliminate complexity Conditional loading of editor elements and Conditional loading of editor elements and
scriptsscripts
RSS – noRSS – no
WordPress tablesWordPress tables
PostsTable
WordPress MU tablesWordPress MU tables
PostsTablePosts
Table
PostsTable
WordPress MU tablesWordPress MU tables
PostsTablePostsTablePosts
Table
X 300
?
PostsTable
Shadow tablesShadow tables
PostsTablePostsTablePosts
Table
X 300
MasterPostsTable
Shadow TablesShadow Tables
Topic StreamsTopic Streams SearchSearch Related PostsRelated Posts Activity Feed dataActivity Feed data Stats dataStats data
not individual blog not individual blog postsposts
Thank YouThank You
Roger Theriault Roger Theriault [email protected]@rogertheriault.com
http://trueslant.com/rogertheriault/http://trueslant.com/rogertheriault/
True/SlantTrue/Slant http://trueslant.com/http://trueslant.com/
““News is more than what happens”News is more than what happens”