Strapi v5 custom field
Link
A universal link field for Strapi v5: internal page, system page, external URL, phone, email or anchor. One field, one stable JSON shape, one frontend resolver.

Strapi v5 has no built-in link field. Every project ends up rolling its own: an enum, five optional relations and a long string field. Painful to author, painful to query, painful to migrate.
This plugin provides a single custom field: authors pick a link kind, fill one input, done. The database stores a stable JSON shape and the frontend gets a resolveLink() helper returning ready-to-use href, label, target and rel.
Features
6 link kinds: internal content (any content type), system page, external URL, phone, email, anchor
Unified picker in the admin: one field, a tabbed UI, a summary of the selected link
Internal references resolved by lookup: they survive renaming the target page's slug
System pages declared in the plugin config and mapped to fixed routes (home, contact), a natural fit for Strapi single types
Framework-agnostic frontend resolver: the link-resolver package works with Next.js, Nuxt, Astro or anything else
Zod-validated server-side before persistence
Admin translations in French and English, strict TypeScript
Compatibility
- Strapi v5 (^5.0.0)
- Node.js 20 or later
- Frontend resolver with no framework dependency
Install
Strapi plugin
npm install @isomorph-agency/strapi-plugin-linkFrontend resolver
npm install @isomorph-agency/link-resolvernpm packages
| Package | Version | Role |
|---|---|---|
| @isomorph-agency/strapi-plugin-link | 0.1.0 | Custom field for the Strapi admin and server |
| @isomorph-agency/link-resolver | 0.1.0 | Frontend resolver: LinkValue to href, label, target, rel |

