When it comes to competing against the big guys, small businesses have a few advantages. Large companies are all about making big numbers so individual customers often get the sense (correctly) that their needs aren't all that important in the large firm's scheme of things. Smaller companies can reverse that equation because they're closer to the customers. For example, a local coffee shop might compete against Starbucks by learning what individual customers typically order or by carrying locally-grown food items.
Smaller companies also have more freedom to offer customers unusual items. In big cities, this strategy manifests itself in the boutiques that cater to the wealthy. In small town America, however, it's more likely to take the form of a small shop that carries high-end products that would never be found at local big box store. And while large companies think in terms of serving entire countries or an entire region, smaller firms can position themselves as something uniquely local.