digitalocean/sea-notes-saas-starter-kit

TypeScript

Open original ↗

Captured source

source ↗

digitalocean/sea-notes-saas-starter-kit

Description: A production-ready Next.js SaaS notes starter kit on DigitalOcean App Platform — includes GradientAI, Stripe payments, Resend email, and Spaces storage.

Language: TypeScript

License: MIT

Stars: 139

Forks: 117

Open issues: 25

Created: 2025-06-27T15:32:45Z

Pushed: 2026-02-11T17:19:25Z

Default branch: main

Fork: no

Archived: no

README:

SeaNotes – SaaS Starter Kit built with DigitalOcean

![alt text](docs/images/starter_kit_integrations.png)

SeaNotes is a SaaS Starter Kit — a simple, production-ready notes app built with modern tools and fully integrated with DigitalOcean services.

This repository gives you everything you need to build and launch a real SaaS app on DigitalOcean App Platform. It’s designed to help you get started fast — whether you’re developing locally or deploying to the cloud. SeaNotes includes a complete implementation of a notes app to show how common SaaS features like auth, billing, and storage come together using DO’s infrastructure.

SeaNotes comes pre-integrated with:

  • Stripe for subscription billing and payments
  • Resend for transactional emails
  • DigitalOcean Spaces for file storage
  • PostgreSQL for database
  • One-click deployment to DigitalOcean App Platform

You can use SeaNotes in two ways: 1. As a starter kit to build your own SaaS application by replacing the notes functionality with your business logic 2. As a reference app by pointing your LLMs (like ChatGPT or Claude) to this codebase to understand how to implement similar features in your own projects

![alt text](docs/images/application-preview.png)

Quick Deploy

Want to try it out right away? Deploy SeaNotes to DigitalOcean App Platform in one click:

![Deploy to DigitalOcean](https://cloud.digitalocean.com/apps/new?repo=https://github.com/digitalocean/sea-notes-saas-starter-kit/tree/main)

What's Included

This is a production-ready SaaS Starter Kit for developers who want to build and launch real products quickly. It includes:

  • ✅ Built-in login/auth with NextAuth
  • ✅ Forgot password + magic link login
  • ✅ Email notifications via Resend.com (with PDF invoice attachments)
  • ✅ Stripe billing (upgrade/cancel plan)
  • ✅ File uploads to DigitalOcean Spaces
  • ✅ PostgreSQL via Prisma ORM
  • ✅ Next.js + Material UI frontend
  • ✅ DigitalOcean GradientAI Serverless Inference API
  • ✅ Admin dashboard for managing users and subscriptions
  • ✅ One-click deploy to DO App Platform

SeaNotes is both a clean, flexible starting point for your own SaaS and a real-world example of best practices, and how all the core pieces fit together on DigitalOcean.

The included notes app functionality serves as a practical example of how to build business logic on top of this foundation. It also works really well with tools like ChatGPT or Claude. You can literally point your LLM at this repo and say:

> "Build me something like this, but for [my idea]"

....and it'll scaffold your app using similar patterns — auth, billing, storage, GradientAI Serverless Inference API, etc., all running on DigitalOcean.

Technical Stack

![Architecture Diagram](./docs/images/do-architecture-diagram.drawio.png)

  • Frontend: Next.js, React, Material UI
  • Backend: Next.js API routes
  • Database: PostgreSQL (via Prisma ORM)
  • Authentication: Next-Auth
  • Email: Resend.com
  • File Storage: DigitalOcean Spaces
  • Payments: Stripe
  • AI: DigitalOcean GradientAI Serverless Inference API
  • Deployment: DigitalOcean App Platform

Who It's For

  • Indie hackers
  • Solo devs
  • Early-stage startup teams
  • Developers validating an idea
  • Anyone looking to build fast with best practices baked in

Get Started

SeaNotes can be run [locally](#quick-start-local-development) or on [DigitalOcean App Platform](#part-5-deploy-to-digitalocean-app-platform). Follow the steps for each case below.

> Important: The app works out of the box with basic authentication and signup. However, to enable full functionality: > > - Email features (verification emails, password reset, magic links) require [Resend configuration](#part-2-set-up-email-provider-resend) > - File uploads require [DigitalOcean Spaces setup](#part-3-set-up-file-storage-digitalocean-spaces) > - Subscription features require [Stripe configuration](#part-4-set-up-stripe-for-billing-and-subscriptions)

Quick Start (Local Development)

Step 1: Get the Code

We recommend forking this repository to your own GitHub account before cloning, so your changes are saved in your own repo and you can still pull updates from the upstream project later.

# 1. Fork the repo to your GitHub account (button in the top right on GitHub)
# 2. Clone your fork locally:
git clone https://github.com//sea-notes-saas-starter-kit.git

cd sea-notes-saas-starter-kit/application
npm install

Step 2: Create Your Environment File

Copy the example environment file to create your own configuration:

cp env-example .env

The .env file contains all the configuration settings for your application. The default values will work for basic local development, but you'll need to update them for additional features like email, file storage, and payments.

Step 3: Set Up Your Database

Option A: Use Docker for PostgreSQL (Recommended for Development)

If you prefer using Docker for your database, follow these steps:

1. Install Docker

  • If you don't already have Docker installed, download and install Docker Desktop
  • Make sure Docker is running on your system before proceeding

2. Start the PostgreSQL Container

From the project root, run:

cd application
docker-compose up -d

This will start a PostgreSQL container with the default configuration:

  • Database name: saas_kit_db
  • Username: postgres
  • Password: postgres
  • Port: 5432

The Docker Compose configuration already includes these sensible defaults, so no changes are needed to the database configuration in your .env file for basic setup.

![alt text](docs/images/docker_desktop_containers_view.png)

Option B: Use an Existing Cloud Database (e.g., DigitalOcean)

If you already have a PostgreSQL database hosted in the cloud, you can use that instead:

1. Update Your Database Connection

Edit your .env file and update the DATABASE_URL to your cloud database…

Excerpt shown — open the source for the full document.

Notability

notability 3.0/10

Routine starter kit repo, moderate stars