Guide

Get Started

This guide is designed to be a helping hand if you have any questions about how to upload a template to Supabase Templates. Whether you're sharing a setup with others or reusing your own configurations, this guide walks you through the process in a clear and straightforward way.

In the following sections, you'll find tips and practical steps on how to structure your template, prepare your data, and make it available for others to use in their own Supabase projects. There's no single “right way” to do it - this guide simply helps ensure you've got everything in place for your template to be useful and reusable.

Upload template

To upload a template, you need to have an account and be logged in to Supabase Templates. Once you're logged in, go to Your Templates in the navbar dropdownand click the Create Template button to get started.

There are no rules for what a template must include—quite the opposite. This platform is built on community contributions, and we gladly welcome everything from single tables or RLS policies to complete database setups. No template is too small, and every contribution helps others build faster.

The most important thing is that you’ve tested your template and the SQL scripts yourself, to make sure they run without syntax errors in Supabase. This helps others in the community avoid issues and makes your template easier to reuse.

Title and description

When uploading a template, both a title and a description are required. These fields are essential to help other users understand what your template contains and how it can be used.

They also form the basis for how templates are indexed and found through search. To increase the visibility and usability of your template, it’s important to include relevant keywords and clear information in both fields.

The title should be concise, descriptive, and specific. It should clearly reflect what the template offers without being overly broad or vague. For example:

  • RLS Setup for Multi-Tenant Apps
  • Basic Product Inventory Table
  • Blog Schema with Comments and Likes

The description should provide a detailed explanation of what the template includes and how it is intended to be used. This can cover:

  • The components included in the template (e.g. tables, views, policies)
  • The intended use case
  • Any dependencies or setup instructions
  • Supabase features used (if applicable)

Add images

You have the option to upload images to your template. While not required, images can be helpful in illustrating the structure or purpose of your template—for example, visualizing a table schema, dataset layout, or access policies.

Supabase includes a built-in feature for exporting visual representations of your database schema. In the Schema Visualizer (found under Database → Schema Visualizer), you can use the control buttons in the top-right corner. By selecting Auto-layout followed by Download Current View, you can export the current database structure as an SVG or PNG file. This can be a useful complement to your template, especially for more complex setups.

Of course you can also upload print screens and other relevant images for the template.

Categories

Categories help users discover your template more easily and allow the platform to organize content in a structured and accessible way. Adding categories is optional, but recommended - especially if your template is intended for broader use. You can assign multiple categories to a single template. This helps ensure it appears in relevant sections and is easier to find through filtering and search.

  • Product - For templates that are related to a specific product type (e.g. SaaS, AI, CMS, etc.)
  • Integration - For templates that are related to a specific integration (e.g. Stripe, PayPal, etc.)
  • Content - To describe what sort of content the template consist of (e.g. RLS, Tables, Views, etc.)
  • Skill level - To describe the skill level of the template (e.g. Beginner, Intermediate, Advanced)

Scripts

The scripts are the cornerstone of your template and are mandatory. They define the actual logic and structure that will be applied when the template is used. Scripts are divided into the following types:

  • SQL - For table creation, insertions, updates and deletions etc.
  • Policy - For defining Row Level Security (RLS) policies
  • Trigger - For creating database triggers that respond to specific events.
  • Function - For stored procedures and reusable database functions.
  • Seed - For inserting example or starter data into tables.
  • View - For defining database views.
  • Migration - For applying versioned schema changes over time.
  • Index - For creating database indexes to improve performance.
  • Readme - For including documentation, instructions, or usage notes related to the template.
  • Other - For any other scripts, such as JavaScript, TypeScript, or configuration files.

Each script type helps structure your template for clarity and reusability. Including only the types you need is perfectly fine.

Content

We use cookies to improve your experience on our website. By continuing, you accept our use of cookies. Learn more about our cookie policy