Google Places Address Lookup
Turn a half-typed address into a structured location the app can rely on.
What it adds
An address autocomplete that fills structured location fields from real places and stays editable by hand.
What your agent is told to do
5
What your agent is told to do
5-
1
Replace free-text address entry on the forms that need a real location with a lookup returning structured components, and keep every component field editable after the lookup returns.
-
2
Group the keystrokes of one lookup into a single billable session and close it when a place is chosen or the field is abandoned. Debounce input and set a minimum query length, because every keystroke that reaches the provider costs money.
-
3
Store the provider's place identifier in its own field, separate from the human-readable address the user sees. The two serve different purposes, and the display text must never be parsed back into structure.
-
4
Route requests through the server, or restrict the client credential by referrer and to the single capability it needs. An unrestricted key in a public page will be scraped and spent by someone else.
-
5
Mapbox Geocoding covers coordinate conversion and reverse lookup. Where both exist, assign one provider per field and say which — do not send the same query to two providers and try to reconcile the answers.
Edge cases it handles
8
Edge cases it handles
8- Suggestions are frequently incomplete for apartments, units, floors, and rural addresses. Always allow manual correction, and never block a save because the provider did not recognise the address.
- Address structure differs by country: postcode position, the presence of a state or province, and street ordering are not universal. Map components generically rather than assuming one national format.
- A business result and an address result are different things. Decide which the field accepts and filter accordingly, or a user picking a shop name saves a location with no street.
- Address queries are personal data. Keep raw lookup queries out of general application logs and put a retention limit on anything that is kept.
- Place identifiers can be retired or replaced over time. Keep the resolved components as well, so a stale identifier does not leave a record with no usable address.
- The provider's terms restrict how long results may be cached and what may be stored. Cache only what is permitted and re-resolve rather than warehousing full responses.
- Quota exhaustion or an outage must leave the plain text field usable so the user can still finish the form.
- Keyboard users must be able to move through suggestions and choose one without a mouse, and the suggestion list must be announced to screen readers.
Definition of done
9
Definition of done
9- Structured address components are captured and every one remains editable by hand.
- Lookups are debounced, grouped into a session, and the session is closed when the field resolves.
- The provider identifier is stored separately from the displayed address text.
- No unrestricted credential is exposed to the browser.
- A user can save a valid address the provider never suggested.
- Raw location queries do not appear in general application logs.
- Provider unavailability leaves manual entry fully working.
- The feature matches the existing design system.
- No existing functionality is broken.
Related features
Contentful Entry Sync
Contentful Entry Sync
Create and update Contentful entries against the connected space, environment, and locale.
What it does
A sync that writes app records into Contentful entries using the connected space's content model and locale configuration.
How it works
- 1 Have the operator select the space, the environment, and the default locale during connection, and store all three, because writing production content into a sandbox environment is an easy and expensive mistake.
- 2 Fetch the content model at connection time and again before each sync run, map app fields to entry fields by their stable identifiers, and validate the value type against the model before attempting the write.
- 3 Write every localized field under an explicit locale rather than relying on whatever the space treats as default, and state clearly which locales the app owns and which it leaves to editors.
Copy the prompt
No account needed
Add this feature to my app:
https://addthisfeature.com/x/contentful-entry-sync
Typesense Index Sync
Typesense Index Sync
Keep a search index in step with your records so results stay current and correctly scoped.
What it does
A one-way sync from the app's records into a Typesense collection, with server-enforced tenant filtering and a rebuild path.
How it works
- 1 Identify every model users search today and declare the indexed shape explicitly: the fields people type into, the fields they filter and sort on, and nothing more. Treat a missing or newly added field as absent rather than letting the document fail validation.
- 2 Reuse the app's existing background-job system to push creates, updates, and deletes. Do not index inside the request cycle; a slow or unreachable search service must never make a save fail or hang.
- 3 Build the tenant, workspace, and permission filter on the server at query time and attach it to every search. Do not accept a filter, collection name, or scope value from a client-supplied parameter, because anything the browser can set the browser can change.
Copy the prompt
No account needed
Add this feature to my app:
https://addthisfeature.com/x/typesense-index-sync
Algolia Index Sync
Algolia Index Sync
Keep the search index matching the database, including who is allowed to see what.
What it does
A sync pipeline that mirrors records into a search index with tenant-scoped filters and scheduled reconciliation.
How it works
- 1 Identify every record type that should be searchable and define one index document per record, keyed by an identifier that never changes for the life of that record.
- 2 Push changes through the app's existing background-job system on create, update, and delete, and make every write idempotent so a replayed job produces the same document rather than a duplicate.
- 3 Put tenant, workspace, and visibility values on each document as filter attributes, and have the server issue short-lived scoped search credentials that pin those filters. The browser must never choose its own filter.
Copy the prompt
No account needed
Add this feature to my app:
https://addthisfeature.com/x/algolia-index-sync
How it works
-
1
Copy the link
Grab the Markdown instruction URL for this feature.
-
2
Give it to your AI
Paste it into Claude Code, Cursor, v0, Lovable — whatever you build with.
-
3
It inspects, then implements
Your agent reads your existing app first, then adds the feature to fit it.
Works with your stack
These instructions are written to adapt. They tell the agent to detect your framework, match your existing design system, and reuse what you already have — rather than assuming a particular stack.
Need it tighter than that? Customize the feature and tell it exactly what you're running.