# Guides

> Complete, runnable code for the geolith geocoding API: autocomplete in React and Vue, reverse geocoding, CSV batch geocoding, a MapLibre store locator and more.

- [How to add address autocomplete to a React app](https://geolith.app/guides/address-autocomplete-react): A complete React component that suggests addresses as the user types, using the geolith autocomplete API with a browser-safe publishable key, debouncing, request cancelling and keyboard support.
- [How to add address autocomplete to a Vue or Nuxt app](https://geolith.app/guides/address-autocomplete-vue-nuxt): A Vue 3 composable and component for address autocomplete with the geolith API, plus the Nuxt runtime config to keep the publishable key out of your source.
- [How to build a geocoder (and why a single static file works)](https://geolith.app/guides/how-to-build-a-geocoder): How a geocoder turns text into coordinates, from tokenising and inverted indexes to ranking, autocomplete prefixes and spatial indexes, with a runnable toy geocoder in JavaScript and how geolith packs it all into one .glx file read with HTTP range requests.
- [Reverse geocoding in JavaScript](https://geolith.app/guides/reverse-geocoding-javascript): Turn latitude and longitude into an address in the browser and in Node.js with the geolith reverse geocoding API, including the user's current location and error handling.
- [Show a place's boundary polygon on a map](https://geolith.app/guides/show-place-boundary-polygon): Search a place with geolith, fetch it by gid with geometry=true, and draw its outline on a MapLibre map, falling back to the bounding box when the place has no outline.
- [Build a store locator with MapLibre and geolith](https://geolith.app/guides/store-locator-maplibre): A complete store locator in one HTML file. Geocode your stores once with a script, then let shoppers search an address, see the nearest stores sorted by distance, and view them on a MapLibre map.
- [Geocode a CSV of addresses (Python and Node.js)](https://geolith.app/guides/geocode-a-csv): Batch-geocode a spreadsheet of addresses with the geolith API in Python or Node.js, with a few parallel workers, retries on HTTP 429, and a quality column so you can review weak matches. Results may be stored permanently.
- [Alternatives to the Nominatim public API for production](https://geolith.app/guides/nominatim-alternatives-production): The public Nominatim API allows at most 1 request per second and forbids autocomplete. Here are the production options (self-host Nominatim, Photon or Pelias, or use a hosted API) and the code to move a Nominatim call to geolith.
