Pony Foo begins

As I start writing this post, I set out with a purpose. To write a micro-blogging engine. The language of choice is Node.JS. I chose this language because I want to see how I fare in light of new horizons…

Improve this article
Nicolás Bevacqua
| 3 minute read | 4

Past Lives

Keep in mind this idea springed in my mind just yesterday, but I’ll try to keep my development cycles as lean as possible, in order to entertain myself. In the past most of my self-driven projects lead to nowhere because I kept focusing on non-functional aspects like performance, code-tuning, including but not limited to implementing wild and new sparkly technologies.

That approach often lead to projects where I would spend a whole year implementing and code-tuning an MVC application in ASP.NET 3, which did all the error handling, real-time logging, corner-case handling that you could imagine, but barely consisted of a couple of forms.

This time instead, I’m eager to launch a minimal version of the site online as soon as humanly possible, and then build on it, adding features on the go. This will also give me the feel of how working with Node.JS on a production environment feels like.


I come from a strong C# background, although I consider myself to have a pretty decent front-end skillset as well; I figure this will help immensely as I delve into Node.JS. I already took care of a few fundamental decisions, which I expect to be able to fulfill:

  • Node.JS on the server-side.
  • MongoDB as the database of choice.
  • Javascript on the client-side.
  • Markdown will be used to write and display blog posts.

I decided on Node.JS in the back-end because even though it’s an entirely new language to me, I sense it will feel familiar working with it, given my past front-end inclination. MongoDB felt natural to me, as I find the idea of using JSON across every single layer very appealing.

Javascript on the client-side is therefore a no-brainer, and I’ll drift away from development-crippling practices I leant towards in the past, like progressive enhancement where I’d support even noscript, making development twice as complicated. I’m shifting away from that, in order to be able to maintain the level of leanness I want to achieve here.

Markdown is a simple yet powerful presentation language, and one I feel really comfortable with. Besides there are open-source distributions that make developing around Markdown a breeze.

The mere notion of having JavaScript on the server-side, JavaScript on the client-side, and JavaScript on the database, makes me extremely enthusiastic about this project going forward. Time will tell how wondrous this actually is, if at all.

Where do we go from here?

Right now, I’m writing this post on Notepad++ and I haven’t even begun working on the blog application. Even though I’ve already allocated a public GitHub repository to the task, and I’m code-naming the project NBrut.

Since I want leanness to be a defining characteristic of how I face Pony Foo, I’m using this post as a way to force myself into being able to go live as soon as I’m able to. In order to do that, I have to start by working on implementing Markdown, since it’s probably the part of the application I’m most comfortable coding. I’ll figure out how to solve the rest as I go along.

Pony Foo launched on January 18, 2013.

Liked the article? Subscribe below to get an email when new articles come out! Also, follow @ponyfoo on Twitter and @ponyfoo on Facebook.
One-click unsubscribe, anytime. Learn more.

Comments (4)

Eric Douglas wrote

Nicolas, I’m starting to read your entire blog, and I will write a message in each article that you produced. I really thank to you for this amazing work.

All the best!

Palmer wrote

Today I began to read each one of your posts and I hope to learn a lot Javascript. Thank Eric Douglas by your recommendation.

Johannes Jaeger wrote

Starting today, I aswell will read your entire blog.

And I will build a micro-blogging engine.

I call it the ponyfoo challenge.

You are inspiring, really. Thanks.

Nathan wrote


I’m about to start going through this blog, as well. Thanks for posting such a great resource!

As an aspiring developer who is still in high school, this will really help.