Supabase Express Api

screenshot of Supabase Express Api
express
drizzle-orm
supabase

A starter template for a backend API with Node, Express, TypeScript, Drizzle, PotsgreSQL. Authentication with Supabase with role based permissions. Deployment via DigitalOcean docker registry.

Overview

The Node/Express backend API template is a powerful starting point for developers looking to build robust applications with modern features. With a focus on using TypeScript and essential tools, this template simplifies the setup process while ensuring best practices are embraced. It leverages a range of technologies including JWT authentication, Docker for deployment, and Vitest for testing, creating a seamless and efficient development experience.

This backend template is particularly well-suited for those who prefer using ES modules, as it has been designed to work with ESM Node. By following the provided instructions, you can easily spin up a local development environment and begin building your application with a solid architectural foundation.

Features

  • ESM Node Support: Utilizes ES6 imports for a cleaner syntax and improved modularity in code structure.
  • Automatic Dependency Management: Employs Volta for managing Node versions, ensuring compatibility and reducing setup friction.
  • Unit Testing with Vitest: Built-in testing framework allows easy execution of unit tests, fostering a test-driven development approach.
  • Docker Deployment: Includes a Docker setup to run the application smoothly across various environments by simplifying database access.
  • JWT Authentication: Implements secure authentication using JWT bearer tokens, offering flexibility in user roles and permissions.
  • Database Management: Supports easy database setup with Docker Compose, featuring tools to manage migrations and seeds for data population.
  • Import Aliases Configuration: Facilitates clean code organization with customizable import maps, enhancing code readability and maintenance.
  • Permission Levels: Clearly defined user roles and permission systems ensure robust resource access control, enhancing the security of your API.
express
Express

Express.js is a simple Node.js framework for single, multi-page, and hybrid web applications.

drizzle-orm
Drizzle ORM

Drizzle ORM is a TypeScript ORM for SQL databases designed with maximum type safety in mind. It comes with a drizzle-kit CLI companion for automatic SQL migrations generation. Drizzle ORM is meant to be a library, not a framework. It stays as an opt-in solution all the time at any levels.

supabase
Supabase

Supabase is an open source Firebase alternative. Start your project with a Postgres database, Authentication, instant APIs, Edge Functions, Realtime subscriptions, and Storage.

fullstack
Fullstack

A fullstack boilerplate provides a starter application that includes both frontend and backend. It should include database, auth, payments, user roles and other backend services to build a fully featured saas or webapps.

template
Templates & Themes

A template or theme refers to a pre-designed layout or structure that provides a basic framework for building a specific type of application or website. It typically includes good design, placeholder content and functional features, allowing developers to customize and fill in the details according to their specific needs.

docker
Docker

A website that uses Docker for containerization to streamline development, testing, and deployment workflows. This includes features such as containerization of dependencies, automated builds and deployments, and container orchestration to ensure scalability and availability.

eslint
Eslint

ESLint is a linter for JavaScript that analyzes code to detect and report on potential problems and errors, as well as enforce consistent code style and best practices, helping developers to write cleaner, more maintainable code.

typescript
Typescript

TypeScript is a superset of JavaScript, providing optional static typing, classes, interfaces, and other features that help developers write more maintainable and scalable code. TypeScript's static typing system can catch errors at compile-time, making it easier to build and maintain large applications.

zod
Zod

Zod is a TypeScript-first schema declaration and validation library. It allows you to define schemas that can validate data at runtime while providing excellent TypeScript inference, making it perfect for API validation, form validation, and type-safe data handling.