Seventh Octave

We're Starters. We write about culture, design and the business of software.

We believe software should be beautiful and inspired. Follow us as we build @TechOctave.

Blogcast is a better way to blog TVD Nov 25

10 comments Latest by TVD

I believe in the development community. I believe in our ideals. I believe in our laissez faire approach to life. I believe in the innovation that is second nature to us all.

This belief flows so thick through my veins that I believe we should all give back when our time comes. Call it a right of passage if you must. I call it a duty!

Open Source Rails 3 Blogging app - Blogcast

The Status Quo

Yet, when I started Seventh Octave and started evaluating blogging apps, I found that duty hampered. Hampered by what I can only describe as a lack of understanding about the writing process. As a writer, I need constant feedback and illustration of what my finished product will look like.

With the Status Quo I felt like a prisoner trapped in a claustrophobic cell, pushing preview buttons and waiting - anxiously - for my next meal. A lack of instant feedback hampered my writing and cramped my style.

Then there were the endless menus, features, click-ty-clacks and fancy whizz-bangs. All competing for my attention when I was there to do one thing and one thing only - write!

When I use a blogging app, what I'm primarily there to do is write! Having to click and wait to see how my blog post will look gets in the way of my writing. WYSIWYG Editors get in the way of my writing! Endless features get in the way of my writing!

Blogcast is a better way to blog.

The Status Quo can take a backseat for all I care! I needed a blogging app that encouraged rapid writing iterations - so I wrote one.

I wrote Blogcast for developers and writers because that's what I am and that's who I know best! If you let it, the Status Quo will encourage more writer's block than it does substance.

And that's why I'm releasing Blogcast. I'm releasing Blogcast because I want sharing my development experience to be fun for both me and you! Writing needs to be fun. And, despite the Status Quo, I am convinced there is a better way to blog. That's where Blogcast comes in.

Blogcast's sweet spot is what I call Fluid Stream of Thought. I've practiced Fluid Stream of Thought for the past 10 years. It's based on two simple principles:

  1. Write your first draft like it is your last.
  2. Speak to your audience, not at your audience.

Blogcast stimulates Fluid Stream of Thought through live preview of your writing and a tight reward-feedback loop. What this boils down to is a writing experience that you will enjoy! And of course, if you enjoy the writing experience, you will write more.

Furthermore, if you write in a space that is not cluttered you will certainly gain the desire to write more. That's why I designed Blogcast using Behavioral Driven Development (BDD) and got rid of all the noise and distractions so you could write from a better place. As a developer, you need this. As a writer, you deserve this.

Blogcast is built on six principles:

  1. Live preview makes for better writing.
  2. A post's title makes a fine SEO URL.
  3. Wysiwym Markdown makes writing semantic & accessible.
  4. Comment management can be painless.
  5. A guest should be able to preview his comment.
  6. No crappy-admin-screen syndrome - ever.

Blogcast is Open Source & Built on Rails

Under the hood, I built Blogcast with Ruby and all the Open Source glory of Rails 3. Better yet, Blogcast loves Phusion Passenger for Nginx and it plays well with MySQL and PostgreSQL.

Blogcast uses Rails 3 style unobtrusive JavaScript. I combine Rails 3's HTML5 data attributes with jQuery and Rails.js for cleaner separation of concerns and a more semantic code base.

I believe solutions should be simple, not simplistic. So, top-down, I wrote Blogcast to be simple. Blogcast uses Bundler for systematic & consistent dependency management.

Installing Blogcast

First, go to Blogcast's root directory and install the dependences:

#install dependencies
bundle install

Now just start your Rails development server:

#start rails server
rails s

Fire up your favorite browser and point it to http://localhost:3000. This is the public view of your new Blogcast blog. Have a look around and when you're ready, login to http://localhost:3000/admin; Username => admin, Password => admin.

Welcome to Blogcast. It's going to be a pleasure to get to know you.

Configuring Blogcast

Blogcast has a few configuration items you should know about: Users, Akismet, Google Search, Google Analytics and RSS.

Create your own user

Click on the Users link in the upper right-hand corner of Blogcast. Then click on the Add User button:

#Name
Used as Post author and Draft author

#Initials
Used as Comment author

At that point, either remove the admin user or update its password to something of your own choosing.

config/application.rb

#Akismet
config.rakismet.key  = '0000X000000X'
config.rakismet.url  = 'http://domain.com/blog'
config.rakismet.host = 'rest.akismet.com'

You will need to register for Akismet and get your own API key. Also, change config.rakismet.url to your blog location - can be localhost in development.

app/views/layouts/_sidebar.html.erb

<!--Google Search-->
<input name="sitesearch" value="http://domain.com/blog" type="hidden"/>

Replace http://domain.com/blog with your blog location.

app/views/layouts/application.html.erb

/*Google Analytics*/
_gaq.push(['_setAccount', 'UA-XXXXXXXX-X']);

Replace UA-XXXXXXXX-X with your Google Analytics account.

app/views/posts/index.rss.builder

xml.title "Blogcast"
xml.description "Blogcast is a better way to blog."

Replace the title and description with your blog's title and description.

Blogcast is for developers who are ready to share their passions with the world. Are you ready? I believe in the development community and I believe Blogcast is a better way to blog. It's time we step up!

Download Blogcast and Get Started. Take care Beloved!

Migrating from Wordpress to Blogcast is easy! Blogcast 1.0.5

If you enjoyed this post, subscribe for updates (it's free).

Email Address:

10 comments so far

xamicks 25 Nov 10

Very cool project! Just two questions. a) Will it work on JRuby? b) Will it work on the Google App Engine?

Emerson Lackey 26 Nov 10

This form needs some front-end work. You should make it so that when I focus on the form field, it removes the default "helper" text so that I can start typing right away. With regards to this post and my comment, I am really excited to give this application a try. I have my own blogging platform. It's dead simple, but that's kinda what I like about it. Simple == Good

supremedfm 26 Nov 10

Hey! Thanks again for creating this. If you wanna see your work in the wild look no further. I downloaded it, opened it in textmate, started messing around and all of a sudden its on my server running at http://supreme.dfm.asia running with nginx and passenger3. Keep up the good work!

BillSaysThis 26 Nov 10

Importers? Kind of important since few people would be starting from scratch. WordPress and Blogger probably the two highest value IMO. Multiple blogs from a single install? I don't see a blog model or controller, or that a post belongs to any higher level construct.

Jo 27 Nov 10

I like the way you look at the things. Thanks for sharing. It would be even better with i18n baked right in.

TVD 27 Nov 10

Interested in being a Blogcast Core Team Developer? For efficiency, better we talk Core Team details offline. So, drop me a note with: - Your Name (Real name - that goes for you Mr. Anderson). - Whether you consider yourself a Designer, Developer or Sweeper. - A little background on yourself & ambition - think you in your own words! - Example of Blogcast running in the Wild (Bonus)! @Emerson Simple is Good. Let me know how Blogcast works out for you. And welcome to 1440. @supremedfm I'd say awesome, but that would be a gross understatement. Great job man! I'm really digging the design too. @BillSaysThis An importer would be very useful indeed.

Jon Atack 27 Nov 10

Very nice, great job! Any plans to convert it to Rails 3 style non-obtrusive javascript?

TVD 27 Nov 10

@Jon Thanks! Blogcast already uses Rails 3 style unobtrusive JavaScript. I combine Rails 3's HTML5 data attributes with jQuery and Rails.js to accomplish the task.

BillSaysThis 27 Nov 10

I would think something like this (https://github.com/skanev/blag/blob/567ccfef551aadb423e4a534cb073d6c3d6a239a/lib/word_press_import.rb) from Stefan Kanev's Blag would do as a starting point for the WordPress (at least) import.

TVD 29 Nov 10

@BillSaysThis I took a quick look at ../lib/word_press_import.rb. It does look like a good start, but the project appears stalled. Contact Stefan, make sure he's Ok with another project leveraging his code. Also, gather any lessons learned that can be leveraged. Email me your findings. Couple questions I have (you may have more): Did Stefan use ActiveRecord or another ORM to ensure the import is database agnostic (SQLite, MySQL, PostgreSQL, etc.)? Did he run into any issues importing large datasets?

Comments are closed