I built a site search widget a couple of weeks ago as a way to familiarize myself with React.js. Since the site is static it uses a pre-generated file for the search index. It's ugly, but it works well. I plan on integrating it into the rest of the site soon, but for now I'll just call it a "beta".
The Main Thread is a static site generated with Jekyll. I love a lot of things about this setup but there's too much friction when adding new posts.
The Google Maps API offers an exceptional geocoding service. Its accurate, reliable and well documented. However, on shared hosting environments (such as Google's own AppEngine), rate-limiting can become an issue quickly.