Express Drizzle Postgres Starter

screenshot of Express Drizzle Postgres Starter
express
react
drizzle-orm

A opinionated starter template for building REST APIs with Express, Drizzle ORM and PostgreSQL.

Overview

The Express-Drizzle-PostgreSQL-Starter is a thoughtfully crafted starter template designed for developers looking to build REST APIs with ease. By leveraging the powerful combination of Express, Drizzle ORM, and PostgreSQL, this starter kit simplifies the process of setting up user authentication and administrative functionalities. It is especially beneficial for developers looking to kickstart their projects with a focused approach, as it streamlines common tasks such as user registration, verification, and management.

This template stands out due to its opinionated structure, which guides developers towards best practices while allowing the flexibility to customize it as needed. With built-in routes and a clear API documentation, getting up and running becomes a straightforward task for both novice and experienced developers alike.

Features

  • User Registration: Easily create new user accounts with required fields such as name, email, and password.
  • User Verification via Email: Ensure users verify their accounts through a token sent to their email, adding an extra layer of security.
  • User Deletion: Users can remove their own accounts, while admins have the capability to remove any user.
  • Admin Routes: Special routes for administrators, allowing them to access all users and manage verified and unverified accounts.
  • API Documentation: Clear and concise documentation for API endpoints, making integration simple and intuitive.
  • Authorization Requirement: Routes that require an AUTH_TOKEN ensure that sensitive actions are protected from unauthorized access.
  • TypeScript Support: Written in TypeScript, providing type safety and enhancing code reliability for developers.
  • React Email Integration: Leveraging react-email for efficient email handling, simplifying the process of sending verification and notification emails.
express
Express

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

react
React

React is a widely used JavaScript library for building user interfaces and single-page applications. It follows a component-based architecture and uses a virtual DOM to efficiently update and render UI components

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.

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.

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.