DatoCMS Plugin - Postcode Picker
- DatoCMS
- Plugin
- React
- CMS
A custom DatoCMS field extension plugin that allows users to select multiple postcodes with an autocomplete search interface.
Features
π Autocomplete Search: Type to search for postcodes or city names
π·οΈ Multiple Selection: Select multiple postcodes with an accessible multi-select interface
π Configurable Country: Set the country code in plugin settings (defaults to Belgium)
π GeoNames Username: Optional GeoNames username for higher rate limits
π API-Based: Uses GeoNames API to fetch postcode data (no hardcoded data)
Usage
Configure the plugin:
Go to Settings β Plugins β Postcode Picker
Enter your GeoNames username for higher rate limits (optional)
Set the country code (ISO 3166-1 alpha-2, e.g., BE, NL, FR)
Click "Save"
Get a free GeoNames account at https://www.geonames.org/login
Add the field extension to a field:
Add a new JSON field to your model
In the field settings, scroll to "Field extensions"
Click "Add field extension" and select "Postcode Picker"
Save the field
Use the picker:
When editing records, you'll see the postcode picker interface
Type to search for postcodes or city names
Select multiple postcodes from the dropdown
Selected postcodes are displayed as chips with format "City (Postcode)"
Remove selections by clicking the Γ on each chip
Data format:
Selected postcodes are stored as a JSON string:
"[{\"postcode\":\"1000\",\"city\":\"Brussels\"},...]"The field stores a stringified JSON array of objects with
postcodeandcityproperties
API Configuration
The plugin uses the GeoNames API (free tier). You can configure your GeoNames username in the plugin settings.
To get a GeoNames username:
Create a free account
Enter your username in the plugin settings for higher rate limits
Development
# Install dependencies
npm install
# Start development server
npm run dev
# Build for production
npm run buildData Format
Selected postcodes are stored as JSON:
[
{ "postcode": "1000", "city": "Brussels" },
{ "postcode": "2000", "city": "Antwerp" }
]License
MIT