npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

datocms-plugin-postcode-picker

v0.1.2

Published

A DatoCMS field extension for selecting multiple postcodes with autocomplete search using GeoNames API

Downloads

183

Readme

DatoCMS Plugin - Postcode Picker

A custom DatoCMS field extension plugin that allows users to select multiple postcodes with an autocomplete search interface. Uses GeoNames API to search for postcodes by postcode or city name.

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)

Installation

  1. Build the plugin:

    npm install
    npm run build
  2. Install the plugin in your DatoCMS project:

    • Go to your DatoCMS project settings
    • Navigate to Plugins
    • Click "Add a plugin" → "Install from URL" or upload the built plugin

Usage

  1. 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
  2. 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
  3. 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
  4. Data format:

    • Selected postcodes are stored as a JSON string: "[{\"postcode\":\"1000\",\"city\":\"Brussels\"},...]"
    • The field stores a stringified JSON array of objects with postcode and city properties

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:

  1. Visit https://www.geonames.org/login
  2. Create a free account
  3. 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 build

Data Format

Selected postcodes are stored as JSON:

[
  { "postcode": "1000", "city": "Brussels" },
  { "postcode": "2000", "city": "Antwerp" }
]

License

MIT