Supamode 0.2.0: Relationship Views, Markdown Editing, and the Road to v1

Supamode 0.2.0 adds many-to-many and one-to-many relationship views, raw markdown editing, and brings the Supabase CMS closer to v1.

Supamode 0.2.0 is here, and it brings one of the most requested features: the ability to view and manage related records directly from a record's page.

What's new: Supamode 0.2.0 automatically detects many-to-many and one-to-many relationships in your PostgreSQL schema and displays related records inline. You can view tags on a blog post, comments on an article, or any junction table relationship without leaving the current page. The release also adds raw markdown editing as an alternative to the rich text editor.

This release adds:

  • Many-to-many relationship detection for junction tables
  • One-to-many relationship views as embedded tables
  • Raw markdown/HTML editing alongside the rich text editor

These improvements make Supamode a more complete CMS for Supabase, allowing you to explore and manage relational data in ways that weren't possible before.

Many-to-Many Relationships

Supamode Relationships Many-to-Many

Consider a blog schema where posts connect to tags through a junction table. Here's the pattern Supamode detects:

-- Posts table
create table posts (
id uuid primary key default gen_random_uuid(),
title text not null,
content text
);
-- Tags table
create table tags (
id uuid primary key default gen_random_uuid(),
name text not null
);
-- Junction table (Supamode detects this pattern)
create table post_tags (
post_id uuid references posts(id) on delete cascade,
tag_id uuid references tags(id) on delete cascade,
primary key (post_id, tag_id)
);

Previously, you'd need to query the junction table separately to see which tags belong to a post. Supamode now detects these relationships automatically. When viewing a blog post, you'll see its tags listed directly on the page, even though the posts table has no direct reference to tags.

From this view, you can:

  • View all related records without leaving the page
  • Open related records in a new tab with their full table view for advanced filtering
  • Unlink records by removing the junction table entry, disconnecting the relationship without deleting the actual record

This works for any junction table pattern: users to roles, products to categories, or any other many-to-many relationship in your schema.

Creating a Record in a Relationship

Supamode Relationships Adding Record

You can create a record in a relationship by clicking the "Create" button in the relationship view.

  • Create: Create a new record in the relationship.
  • Remove: Remove a record from the relationship.

One-to-Many Relationships

Supamode Relationships One-to-Many

The same principle applies to one-to-many relationships. If a category has many posts, navigating to that category's page now shows all associated posts in an embedded table.

-- One-to-many: posts belong to a category
create table categories (
id uuid primary key default gen_random_uuid(),
name text not null
);
create table posts (
id uuid primary key default gen_random_uuid(),
title text not null,
category_id uuid references categories(id)
);

You can:

  • Browse related records directly in the parent record's page
  • Add new related records on-the-fly
  • Navigate to individual records with a single click

Take a blog post with comments as another example: the comments now appear as a table within the post's page, giving you a complete view of all activity without switching contexts.

Configuring Relationship Views

Supamode Relationships Settings

You can configure the visibility of the relationship views and the name of the relationship view in the table settings.

  • Enabled: The relationship view is enabled.
  • Name: The name of the relationship view.

Raw vs Rich Text Editing

Some developers prefer markdown over WYSIWYG editors. Supamode now supports both modes:

  • Rich text editing for visual content creation
  • Raw markdown/HTML editing for those who prefer writing markup directly

You can switch between modes for both reading and editing, making it easier to work with content the way you're most comfortable.

When to use which:

  • Use the rich text editor when non-technical team members need to update content
  • Use raw markdown when you need precise control over formatting or are pasting content from other sources

When you are editing a record, you can switch between the rich text editor and the raw markdown/HTML editor by clicking the "Markdown" button in the toolbar.

Below are some screenshots of the rich text editor and the raw markdown/HTML editor.

Rich text editor:

Supamode Markdown Editing

Raw markdown/HTML editor:

Supamode Markdown Editing

Raw markdown/HTML viewer:

Supamode Markdown Editing

Things to Know

A few notes on the relationship detection:

  • Junction tables need two foreign keys: Supamode identifies many-to-many relationships by detecting tables with exactly two foreign key references. Tables with additional columns work fine, but the two FKs are required for detection.
  • Large relationships: For tables with thousands of related records, the embedded view shows a paginated subset. Use the "Open in new tab" feature for full filtering and search on large datasets.

The Road to v1

Supamode is getting closer to v1 with each release. The goal remains the same: provide the best possible editing experience as a CMS built specifically for Supabase.

Since introducing Supamode, we've added Custom Dashboards, improved the Data Explorer, and now relationship views. The next major milestone is replacing Radix UI with Base UI. We've already made this transition in our SaaS kits and know it delivers a faster, smoother experience.

If you haven't tried Supamode yet, check out the Supamode documentation to get started. For those already using it, 0.2.0 is available now.

Frequently Asked Questions

How does Supamode detect many-to-many relationships?
Supamode identifies junction tables by detecting tables with exactly two foreign key references. When you view a record, it automatically queries the junction table to show related records from the other side of the relationship.
Can I customize which relationships appear?
Yes, you can configure the visibility of the relationship views and the name of the relationship view in the table settings.
When is Supamode v1 releasing?
We're working toward v1 with each release. The next major milestone is the Base UI migration, followed by additional polish and feature completeness. No specific date yet, but v1 is the active focus.