This Blog has gone through several incarnations. When I started blogging I used subtext. Then I decided it was time to reinvent wheels and rolled my own, hodge-podge, blogging solution. It worked ok, but I found I had extreme difficulty engaging with the community. People would leave replies and I had no idea if they ever got my response. Further more creating content was becoming a huge pain.

I ended up using the Discourse editor for some posts and then pasting the body of the post here. Crazytown.

So I had this idea, what if I could have Discourse turtles all the way down.

I took some time to extend out plugin story and using the magic of Rails engines managed to host my blog inside Discourse.

You can see the full source code of this blog as a Discourse plugin at: GitHub - SamSaffron/blog: blog plugin for Discourse

I am hosted on Digital Ocean (a 2GB instance).

I am also experimenting with some less traditional Discourse configs:

  • I am running Rails 4
  • I am running unicorn, with Rack Hijack to handle long polling
  • I am running no bluepill, I tricked unicorn into demonizing sidekiq and use an upstart job. Let’s see how it goes.

All of this and more deserves a much more detailed blog post.

Before any of this, let me address the elephant in the room. Commenting on this blog just became way more complicated. I plan to address that, in a future update, this is a temporary state. I want to bring back the traditional commenting box.

That said, I have email integration set up, so now when I respond to you, you will get an email you can respond to. You will not even need to visit this site to spam my blog :slight_smile:

Overall, I am super excited about this. It pushes the limits of what can be done with Discourse and leaves breadcrumbs for others to follow.

More to come, now that blogging became so much easier.


Dan Taylor over 10 years ago
Dan Taylor

Awesome! Because I’ve been considering exactly the same thing - I need to add a blog to my current discourse installation and this looks like an excellent way of doing it.

As always, brilliant work!

Sam Saffron over 10 years ago
Sam Saffron

Thanks, there is so much to write about, will try to keep it up. I forgot to mention that is totally invisible to Google, keeping all the Google juice on, might make sense to override canonicals though.

F. Randall Farmer over 10 years ago
F.  Randall Farmer

So - the blog format is just a view over a topic? If so - the circle is complete as the Blog was just a Forum with the threads all created by the owner, and a different display template. So forum -> blog -> forum(blog)!

Very nice. Perhaps it would be great to track the features that you “miss” from traditional blogging software as you go along. (I’m having problems imagining what those features would be…)

Sam Saffron over 10 years ago
Sam Saffron

Yes, exactly.

My main pain points have been extensibility points. For example: each blog post has a summary, so I needed to figure out

  1. Where to store it?
  2. How to attach it to a post from the UI?

Still figuring this out, even though I have a ghetto solution that involves absolutely no forking of core.

I really don’t miss much from traditional blogging software, I can easily adapt discourse to do quite a few fancy things.

For example, I store my drafts in a “visible only to me” drafts category.

Biggest feature I am missing at the moment is “directly comment” from the main site, but working on it.

Doug Warren over 10 years ago
Doug Warren

Ironic though based on this and your work with spidering old pages that pages served out of your RSS feed now return a 404 IE: RSS version of Ultimate web performance tools and resources as opposed to the current location of it

Sam Saffron over 10 years ago
Sam Saffron

Thanks Doug, I’ll get it fixed, oops :frowning:

Sam Saffron over 10 years ago
Sam Saffron

aha, that was a day 0 bug, I got it fixed quick smart, but unfortunately external proxies and such tend to cache rss quite heavily.

Dave Jensen over 10 years ago
Dave Jensen

What if you want to not be totally invisible?

I guess you could pass the Google juice along to the forums instead of the blog by using a canonical tag.

Sam Saffron over 10 years ago
Sam Saffron

Yeah I decided to keep all the google juice on, I don’t even index discuss. and should add canonicals.

jht over 10 years ago

Cool, looks good. Thx for doing this.

Jani Hirvinen about 8 years ago
Jani Hirvinen

@sam how do you call your plugin from the blog area?
What I am looking is a Discourse plugin that is called from outside website and embeds last XX post from for example Blogs category. Along post it self it would create to have amount of comments, reply to, read more etc links but those are a lot easier to arrange.
Your blog plugin does not work this way does it?

comments powered by Discourse