ThoughtStreams is a publishing platform focused on capturing your thoughts, observations, ideas and experiments. It's for those things that are bigger (and less ephemeral) than a tweet but not necessarily as well thought out as a blog post.

Although the idea had been around for a while, the actual time from creating the git repo to launching the revenue-generating site took just 30 hours.

Pinax Account Project

Our rapid development always starts with Pinax. In this case, we used the pinax-project-account Django project template which gives us a standard project layout, templates using Twitter Bootstrap CSS and, most importantly django-user-accounts.


django-user-accounts takes care of sign up, log in, password management, email confirmation, timezone and language settings, and account deletion. With templates provided by pinax-theme-bootstrap-account, which builds on pinax-theme-bootstrap, all aspects of user account management are ready to go out of the box. django-user-accounts is highly customizable in terms of alternative sign up flows, extra settings, etc. but we didn't need to take advantage of any of that for the ThoughtStreams launch.


The Gondor hosting solution is a crucial part of our development process. We started hosting the first prototype of ThoughtStreams on Gondor within the first couple of hours and we continue to host the production site there.


nashvegas provides lightweight management of SQL and Python migrations. It's the Django migration solution we use on pretty much all our projects.


metron is a simple app for adding analytics snippets to your base template. Amongst other things, it includes snippets for Google Analytics and, both of which we use on ThoughtStreams.


eventlog logs events and user activity to the database and optionally can use Pusher for a live-stream of activity.


We use for feedback and communication with users and django-intercom-io to integrate into our Django sites.


We use Sentry on our sites for error aggregation and monitoring and Raven as the client to talk to Sentry.


We decided that ThoughtStreams would not have a lengthy private beta. Instead we announced the site with paid subscriptions on day one. django-stripe-payments enabled us to easily integrate with Stripe.


The core functionality of the site makes extensive use of bootstrap-ajax for ajax-based CRUD operations.


ThoughtStreams uses Markdown for marking up thoughts and we use Python-Markdown and django-markitup.


Here are the services and open-source components we used to launch ThoughtStreams:


Open-Source Components

Of course, none of this would be possible without Django itself.

Since launch, we've continued to improve ThoughtStreams and have lots more planned. Getting to launch quickly was vital in gauging genuine interest and starting to build a community of paying users that will help drive the future of the site.

Track Site Emails with SendGrid Upgrades to Likes and Referrals