Share this project


Share this project

A book of practical advice to help you build professional-grade applications with Flask.
A book of practical advice to help you build professional-grade applications with Flask.
426 backers pledged $8,175 to help bring this project to life.

Funded in just 36 hours!

Wow! We are off to an amazing start. We passed the initial goal of $2,100 after just 36 hours. This is just the beginning though.

Stretch goals

I'll be adding some stretch goals for the remaining 28 days. The first one is $5,000.

  • $2,100 ✓ - With the money from the initial goal I'll be able to pay for an awesome cover design and the miscellaneous expenses associated with publishing (sample prints, ISBNs, etc). Thank you all for getting us here!
  • $5,000 - If we hit this mark, the book will have a strong theme. This means illustrations all throughout the book, in addition to a well designed website, logos, and maybe even some merchandise.

If you have some cool ideas for more stretch goals, let me know in the comments! Don't be afraid to dream big. :)

Behind the scenes

I had a great call with Mahmoud Abdelkader, CTO and Co-founder of Balanced on Monday afternoon. We talked about how they use Flask and what their app looks like. We were able to record the call with Google Plus Hangouts and it's now available on YouTube.


Only backers can post comments. Log In
    1. Robert Picard Creator on June 20, 2013

      @Rod You're awesome.

    2. Rod Montgomery on June 20, 2013

      0:00 Introductions, etc "Flask is the central framework"
      10:43 "How do you structure your app?"
      16:03 Top-level view
      18:06 Web MVC apps really have five things (Controllers, Views, Model, Scopes, Libs)
      19:58 One thing we don't like: form parsing is incomplete
      21:30 Custom request class "payload" to process mime types, decode data
      23:40 Doesn't enforce best practices; no concern about handling after request is received. (Mime types? Data validation?)
      25:30 Form handling, introspection, and auto-documentation
      32:32 Dumb controllers and How we process a request, thrrough validators, thrrough forms, to a controller
      37:28 How a response works, how to represent serialized, self-documenting views (we built custom library "Pez")
      44:42 Views are in the scope of a controller, so they understand the request context and permissions
      47:09 How we specify roles in the permissions model
      48:10 Intend to open source "sterling", a wrapper of conventions for flask
      51:31 Don't use Blueprints, but would like to better understand their potential, need a gallery
      54:20 User management should be a Blueprint, for instance, extensions vs blueprints
      57:15 How we handle configuration
      59:06 The ideal way would be chef, puppet, or some CM system
      1:12:06 Do any A/B testing? Yes, with Dashboard javascript, no flask/python
      1:12:30 Deployment? Fabric/jenkins now, but moving to chef; Ops changes need not modify code
      1:18:05 Translations and i18n? None yet…
      1:18:20 Logging? Elastic search and python logging
      1:20:00 Testing process (See
      1:23:19 Wrap-up, thanks, comparisons to other flask-based apps
      1:25:18 "If I had to start again to build a RESTful API, I'd use Java, definitely not Python or Flask."

    3. Robert Picard Creator on June 20, 2013

      Hopefully in the future that won't be as much of a problem.

    4. Robert Picard Creator on June 20, 2013

      @Soferio, I'd love to say yes, but I've been using Google Hangouts to record and there isn't much room for customization. It's tough to beat how easy it is though. I think the problem here was that Mahmoud had a large screen that had to fit into the little video window.

    5. Missing avatar

      Soferio on June 20, 2013

      Great video, but can you record at a higher resolution? It is impossible to read the text on the screen shots. Cheers.

    6. Robert Picard Creator on June 20, 2013

      @Michael Thanks for the notes. That's a good point about having a T.O.C. for future videos. I've already found myself going back and searching for parts that I wanted to review.

      Seeing the app structure was one of the biggest reasons that I wanted to consult with developers like this. I feel like there's a lack of good examples, and I don't think that I'm the only one who feels that way.

    7. Michael Herman on June 19, 2013

      Great Points - re:

      1) SQLAlchemy - by far, the best ORM
      2) Flask as a design guideline. Everything from Wordpress to Rails to Django are just design guidelines. It just depends on the assumptions that are made. Wordpress, for example, makes huge assumptions about what you are trying to do. Django, Rails, web2py make less assumptions but are still really "heavy" as far as the included batteries. Meanwhile, Flask, bottle, and Sinatra are really lightweight, allowing you to define your app how you want, making very few assumptions.
      3) Blueprints - Blueprints are confusing and poorly documented, yet extremely powerful.
      4) Deployment - love Chef
      5) Growing your app/scalability documentation is fairly lacking - I'd love to see more on that

      Interesting app structure, especially the bank controller.. Document how they and other companies are structure their apps. See how they are utilizing MVC.

      In the future, I would do a table of contents for your videos in the description like this -

      General Intro - 00:21
      How do you structure your app - 10:50

      Check this repo out -

      I'd love to hear about vagrant and chef.