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.

Illustration of a chain link connecting two web pages with a data stream

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-link

Frontend resolver

npm install @isomorph-agency/link-resolver

npm packages

PackageVersionRole
@isomorph-agency/strapi-plugin-link0.1.0Custom field for the Strapi admin and server
@isomorph-agency/link-resolver0.1.0Frontend resolver: LinkValue to href, label, target, rel

Our other plugins