I have been working on a small project for a Community Interest Company who deliver Fi-Wi and who want to display the coverage area of their wifi. They want to show the coverage as bands for their speed of connection: 10Mb, 20Mb, 30Mb etc. They cover a number of areas across the country, especially rural areas. I needed to display a polygon over an OSM map. Their website already has a map on it, using Cloudmade tiles, but with no coverage area on it yet. I took a look at GeoJSON as a way to handle description of polygons and looked at the way OpenLayers handles it. I created a GeoJSON feature collection by hand and tried to display it with OpenLayers. After a frustrating couple of hours I hadn't persuaded it to display my polygons, so I turned to Leaflet. In a few minutes, starting from scratch, I had a map with my polygon on it.
I needed to manage many polygons so I created an AJaX feed to send a GeoJSON feature collection for a bounds box. That way when a map is displayed any of the polygons that should appear on it get sent for that map. The coverage polygons are stored in a database with their maximum extents for north, south, east and west which can them be used to decide which polygons are served for the current bounds box of the displayed map. As usual AJaX is quick and effective. Debugging is fairly easy too since a call to the AJaX server returns a GeoJSON file which is easy to read.
The remaining job was to create a polygon editor so the guys who manage the website can manage the shape of the polygons easily as well as adding new ones as their business expands. This was more intricate, though I'm not sure that I have yet done as much as I would like.
I've enjoyed working with this problem, I hope it helps the company. It has also convinced me that Leaflet is a much more pleasant way to display maps with overlays than wrangling OpenLayers, which may be powerful and very flexible but it always causes me problems.