GitXplorerGitXplorer
j

SupaCMS

public
24 stars
1 forks
0 issues

Commits

List of commits on branch master.
Unverified
9a1b11c5514be799910c67950f09cea5a438d3fe

add roadmap

jjordienr committed 3 years ago
Unverified
bb51e6bd01ff71067c87cc0c9591b4527da6192f

add config file for development

jjordienr committed 3 years ago
Unverified
0adaa53c9dea400778fac32558c026204c48623c

add docs for schema

jjordienr committed 3 years ago
Unverified
cd92aa80b6ed9184a364c674410699f17e66f0a9

fix readme

jjordienr committed 3 years ago
Unverified
50c1315c653759101a1dca8d5fbb7825b08d6bc3

rm original config file

jjordienr committed 3 years ago
Unverified
3a447fc1b6cf150c8b3b2a5ac89342cb68a44f9b

improve readme formatting

jjordienr committed 3 years ago

README

The README file for this repository.

SupaCMS Alpha

DISCLAIMER: SupaCMS is not an active open source project, it's just a prototype. You can play with it but don't expect it to work flawlessly or have all the features you want.

SupaCMS is a schema-based CMS for supabase projects. It aims to make it easy to generate a CMS for your supabase project so you can manage your data like in a regular CMS.

SupaCMS requires that you setup your RLS well in the Supabase Admin Dashboard. Do not leave RLS open or anyone with an account in your project could log into the CMS and manage the data.

Deploying SupaCMS

You can deploy SupaCMS in Vercel or Netlify.

Step 1. Clone repository
Step 2. Fill the SupaCMS schema at ./src/config/supacms.config.ts
Step 3. Try it out with yarn dev --mode production.
Step 4. Push your changes to your cloned repository
Step 5. Deploy the repository to Vercel.

How to fill the Schema

You'll find the config schema at src/config/supacms.config.ts

// Config schema
{
    appName: string; // Name of your app. Will be used as a logo.
    supabaseUrl: string; // URL of your supabase project.
    supabaseAnonKey: string; // Anonymous key of your supabase project. It's perfectly safe to have it in the config file.
    tables: Table[]; // List of tables to be included in the CMS.
    buckets: Bucket[]; // List of buckets to be included in the CMS.
}

// Table
{
    name: string; // Name of the table in Supabase.
    label: string; // Label you want to show in the CMS for this table.
    cols: Column[]; // List of columns to be included in the CMS.
}

// Column
{
  name: string; // Name of the column in Supabase.
  type: ColumnType; // "text" | "image" | "boolean" | "list" | "date" | "markdown"
  label?: string; // Label you want to show in the CMS for this column.
  hideInTable?: boolean; // Hide this column in the table view.
  align?: "left" | "right" | "center"; // Align the column in the table view.
  bucket?: string; // Name of the bucket this column belongs to in case it's a file/image.
}

// Bucket
{
  name: string; // Name of the bucket in Supabase.
  label: string; // Label you want to show in the CMS for this bucket.
}

Roadmap

These features are in development:

  • Support enums
  • Support linked tables
  • CRUD over bucket files
  • Folder navigation in bucket
  • i18n
  • Export as a function
  • Publish on NPM as a function
  • Custom icons in navigation panel