Games are notorious for the amount of DDoS & botting attacks launched against them. Security needs to be considered early on when developing your backend.SupabaseSupabase Database is designed to let developers iterate quickly, but leaves security as an afterthought.A few key points:
Captchas are only available for auth endpoints and cannot be enabled for other sensitive scripts without manually writing this yourself in an Edge Function.
Many developers with mature products on Supabase end up needing to completely rewrite their database logic on the backend to explicitly handle security concerns. Edge Functions are built for this use case, but they’re still maturing. (123)
Open Game BackendOpen Game Backend requires everything to be secure by default:
All logic is forced to be a server-side script. Never trust the client.
Database & scripts are private by default, explicitly specify what’s public.
Granular rate limiting (per account and/or per IP) is provided out of the box.
SupabaseSupabase is built to be a general purpose backend framework. Backend code is not meant to be published as reusable packages or shared across multiple games within a studio.Open Game BackendOpen Game Backend is a combination of two components:
OpenGB Engine Abstracts away backend complexity to make writing modules simple & fast
OpenGB Module Registry Pre-made modules that can be used to get up and running instantly
OpenGB’s modularity lets you use pre-existing modules to get started faster, use modules from the community, and share modules across multiple games. This allows it to be easily customized and extended to fit the needs of a game.
SupabaseSupabase Edge Functions are similar in some ways to Open Game Backend’s scripts. Both are built on Deno, backed by PostgreSQL, and requests are ephemeral + isolated.Supabase Edge Functions are intended to be used for simple serverless functions. Most use cases today are for handling a patchwork of functionality that isn’t provided by Supabase by default (e.g. webhooks, push notifications, Discord API calls). Edge Functions still behave like an experimental pre-release feature.Open Game BackendOpen Game Backend scripts are at the core of the project, so they’re built to be easy to use, flexible, and reliable. They’re used to power core functionality such as tokens, authentication, and rate limiting.
SupabaseSupabase provides core functionality that cannot be modified, such as: authentication, storage, and realtime.Open Game BackendOpen Game Backend instead provides these same features as modules that can be modified & extended as needed. For example: authentication and storage modules. These can be customized easily by running the opengb fork command.For example, this is specifically important for games where authentication with platforms like Steam, consoles, and instant gaming platforms don’t fit well with Supabase’s core authentication features.
SupabaseSupabase has a well built dashboard for managing your database.Open Game BackendWhile Open Game Backend does not have a dashboard for interacting with the database (yet), tools like Beekeeper Studio can be used with OpenGB Postgres databases out of the box.