A while ago, when I started blogging and I did what everyone does: I installed wordpress. While Wordpress was good enough for a time, it became tedious to write in it. The editor was particularly painful. Switching from the focus mode to the normal one would destroy all the formatting my blog had. It was just hard for me to keep going with it.
So I looked at different alternatives. By the time I started looking, Ghost had just started its Kickstarter campaign and it looked very promising. It was a fresh start. But it wasn't available, yet.
Knowing Ruby on Rails, I thought that I could just create a very small Rails project hosting my blog and I would type my post in HTML. That is until Ghost goes public and I can then transfer everything to Ghost.
However, as I was building my blog, I came to realize a few things that I never thought of before. Rails was actually a great foundation for a blog software. Where software like Wordpress, Ghost and the like built their own framework and paradigm, Ecrire was already using a proven and stable foundation, it was not starting from scratch.
Also, as a web developer, I thought that the options available were not on the same level as the frameworks for building web applications. MVC pattern, assets management, active record pattern for ORM, view partials and layouts, etc. were non-existent. I knew the value of those features and this really made me worry about anything I'd use.
Moreover, I felt that there was no separation of concern between the themes and the more sensitive administration panel. You install a blog and you get a theme mixed with the administration panel right in the same folder with no clear guidance as to where I should edit my code. More than once I decided against modifying one thing on my blog because I just didn't know if the change would break everything. And I write code for a living. There must be a better way...
Lastly, I thought that too often the editor where I write my post were just too crowded. Tags, titles, options, custom fields, etc. I wanted a clean editor with no buttons so you can focus on writing. No distraction. Just your words on a blank screen.
With all those requirements, I built Ecrire. Even though I have used it on my blog for the last 5 months, Ecrire is still an alpha. It has rough edges and ugly buttons but it works nicely. I wrote this post on it and I loved it. I am writing this today because I think Ecrire is ready for others to play with and see what it is and the potential it has to make writing much easier.
What is exactly is Ecrire? It's a turbo on top of Rails. If you already know Rails, you know Ecrire. But where it becomes Ecrire is where things get interesting. Here's the foundation features that I believe makes Ecrire truly unique and makes it so fun to publish with.
When you build a new blog with Ecrire, you actually build a new theme. Everything in your blog's folder is for you to change. The administration lives inside the gem so you don't have to worry about screwing your admin up.
The controller, views, assets are all there for you to customize to your need. You can create new static pages, new routes with new controllers like you would in a normal project.
Writing is not always easy and when I write, I cannot have any distraction. That's why I decided to move everything out of the way in the editor. If you've used iA Writer before, you will find a lot of similarities between the two.
The markdown syntax is very useful to keep me focus. By using simple character to structure my text, I never need to leave my keyboard. I think that whenever I need to leave my keyboard to change anything on my post, it breaks my flow. Markdown avoids that for me.
SEO friendly titles
Once a post is published, Google and other search engines picks up your article and index it. People refers to your article with that title and you never want to change it. However, I sometimes want to change the title and repost my article either for A/B Testing or just because I believe that my first launch didn't work well.
Ecrire keeps all titles in its system so your article is reachable by every title you ever used. It sounds complicated but it's actually very simple. You just update your title and Ecrire will send 301(Moved Permanently) response to any browser that request the old URL and title. That way, you never lose your hard earned ranking on search engines.
Responsive CSS from the get go
The default template already comes with a structure CSS and all the media rules set so you can offer different layout for tablets, mobile and desktop. Using @import rules and Rails' assets pipeline, I can use the shared folder to share most of my CSS rules to every devices and still write some resolution dependant code when needed.
By default, the theme come loaded with Bourbon, a CSS mixing library that I use to avoid writing prefix-css.
In some cases, I wanted to build static page in HTML. A showcase page or an About Us page that I didn't want to write in Markdown because either it was going to be heavily customized or just because I knew that page wouldn't change much and thought it would make more sense to have it that way. Whatever your reason, Ecrire supports static pages out of the box.
Just create a new file in the static view's folder and Ecrire will serve it.
Free hosting with Heroku
First time you want to blog, or you just want to test Ecrire? You can push your blog into production using Heroku's free hosting service.
git add . git commit -m "Pushing to Heroku" git push heroku master
If you are already a Rails developer, you know of the benefit of using Heroku. It makes managing your project so much easier. Add a feature locally, push it with Git to Heroku and Baaam! it's live.
If you're not, it may be a good opportunity for you to try it out and see how managing production application is easy with Heroku.
It's open source
I've been using Ecrire for the last 6 months and now, I'm looking for other people to try it out! It's still an alpha and there are still missing pieces that needs to be added. Documentation needs to be written, bugs need to be fixed and design need to be improved. I can't do all that by myself. If you were looking for a project to get started, Ecrire is young enough for you to have a big impact on its future.