It is theoretically possible, but I’d not recommend it.
Extracting references from rich text is a PITA.
References are great for adhoc relations where you don’t need to leverage them elsewhere.
As soon as you want to build upon them (formulas, automations, lookups) they become less useful.
Anything you built might get superseded by genuine polymorphism at some point so your work would be wasted.
For the time being, if you must have links to many dbs, it’s probably better to just use multiple relations and optimise the UX/UI with thoughtful relation views and field hiding.
If you can afford to wait a while, that’s probably going to yield the best result
I, too, wonder if the concept of ‘tags’ wouldn’t accomplish a lot here. Creating a new entity type and then associating it with lots of other entity types (if I understand that’s what’s being suggested) seems a little like overkill for many use cases, if a person could just create some tags that can be applied all over the place in Fibery.
Under the hood, ‘highlights’ is a special kind of database which supports what we call ‘multi-relations’, that is the ability to link to a single entity from any of several databases.
So a highlight has a ‘source’ multi-relation and a ‘target’ multi-relation, and the configuration of highlights determines which dbs are available for each of these.
i.e. Source 1:n Highlight n:1 Target
The result is the ability to link (indirectly) from any source-db entities to any target-db entities.
At the moment, the source dbs have to have a rich text field, because the ‘highlight’ is bound to a specific snippet of text.
On the source entity, the highlight shows as a selected piece of text, and on the target it shows as a feed-view like relation field.
In the long-term, the same underlying tech could allow entities to be linked via multi-relations in a less restricted way.
So you could say, that highlights is a v specific (and limited) form of polymorphism, but we do have plans to make it more powerful… just no ETA
This is great to hear. Still have a huge need for this. More recent use case:
Trying to set up a system for tracking traffic to a range of websites of my clients. Would like to list out in a table in a new db types of user actions on this app. Each of the sites in question has a breakdown in Fibery similar to some of the structures I’ve seen you posting about such as:
Site → Experience Area → Master Feature → Feature
For the purpose of quickly adding in the activity types in the table, which are going to relate ultimately to one of those 4 areas on the site hierarchy, it would be great to have a relation that could draw from any of the options in that hierarchy. Then as these fast entries are made in the table, I could simply choose the “site” at the top level, and come back later as the system is developed and change to a Master Feature or Feature. Without polymorphic, I have to have a relation to “site” at the top level so I can at least enter which of the sites these user actions relate to, then as I build them, have a second relation that will relate to the lower level Master Features or Features that are actually in that Site - so I wind up with a redundancy of relations here.
Hope that was useful and really hoping to see Polymorphic soon! Nobody else out there has solved this, although I did realize in my accounting software I can add a category of expense at an unlimited level of subcategory, all from one field - so possibly unknowingly that vendor has implemented a sort of polymorphic set up that is actually very useful!
Since I have used Polymorphic models for decades, I was unable to wait, so I have many junction/join tables (similar to helper databases described here) in the form of subject relation fields and object relation fields, enabling the following:
To connect a subject entity to any object entity, within the same field, i.e. the junction table relation field on the subject entity.
To keep polymorphic relations modelled in the same way, to allow migration to the feature when it is finally launched.
To add Formula fields on the junction table to roll-up a field from across the different objects, to then be used by the Subject entity.
To have multiple subjects sharing the junction table.
I had Claude whip up a quick diagram below with the example junction table Workables, meaning a Taskwould have a Workables relation field, but would mostly use things such as Workables.Sum([Rollup of some data from across objects, e.g. effort, cost, etc.])
According to my friends at Deepseek: “PostgreSQL 19’s SQL/PGQ (still in beta as of mid-2026) removes a major technical barrier to implementing polymorphic relations in Fibery. It provides the right primitives—heterogeneous graphs over existing tables—without requiring a separate graph database or a fundamental rewrite of Fibery’s storage model. The feature is no longer blocked by database limitations; it is now a matter of prioritization, product design, and engineering effort on Fibery’s side”!