Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Why are some frameworks (e.g. Flask for Python, Sinatra for Ruby) called microframeworks?

What differentiates them from full-fledged frameworks, like Django or Rails?

share|improve this question
Its not the size of your framework that counts; its what you do with it ;) – Darknight Mar 26 '12 at 10:55
up vote 10 down vote accepted

It's a shorthand for "framework written by someone annoyed by established farmeworks' percieved excessive complexity, which is going to gradually accumulate a similar amount of complexity proportional to its growth in popularity as it's extended to handle more varied requirements."

share|improve this answer
Really? Flask people are making more and more of extensions rather than making it larger. User has the option of not using them. – c0da Mar 26 '12 at 7:58
@c0da: You have the option of not using features of a "monolithic" framework either. The only real difference is that an extension/plugin system reduces the download size of the base system, but that hardly matters for server applications and comes at the cost of additional complexity on the form of extension/plugin management (yay, another opportunity to struggle with version and dependency management!) – Michael Borgwardt Mar 26 '12 at 8:02
Though I agree with you in general. This seems far too opinionated towards the end. Microframeworks are great to allow the apps to be more custom unlike "training wheel" type frameworks. – JGallardo Oct 16 '13 at 22:40

This link should provide you with all the info you need (in terms of Flask)...

Extract from the same link:

The main reason Flask is called a “microframework” is the idea to keep the core simple but extensible. There is no database abstraction layer, no form validation or anything else where different libraries already exist that can handle that.

I hope that makes it clear. :)

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.