Magento is a powerful framework for building all sorts of e-commerce web-applications. It’s main advantages include great flexibility and probably most of all scalability.
Magento-powered website can host anything from a small boutique to an enterprise-level wholesaler and anything in-between. The Community Edition is available for free and the community support is quite good, too.
Sounds great… until you want to create a custom theme or module… then better be patient, very patient.
The Good, the Bad and the Slow
The idea behind Magento is grand: let’s create a most flexible framework ever… unfortunately: let’s worry about optimisation later… at some point… oh, just forget about it.
While a well-optimised Magento site can be pretty fast in the front-end, the development part is beyond annoying.
Magento on a shared hosting
Two words, my friend: forget it!
Even if you succeed in deploying a Magento site on a shared hosting, it will be very slow due to limited resources of the server.
The common, cost effective solution for Magento deployment is a virtual private server. There are providers that offer a good VPS which are optimised for Magento, such as DigitalOcean.
Development on localhost
Creating a custom modules or themes for Magento is a very painful job indeed. It requires advanced skills and most of all a pretty decent rig. Anything less than a MacPro or equivalent is probably waste of time.