Technology Stack

Document: 02-tech-stack.md
Version: 1.0.0


Purpose

This document defines the official technology stack used by Rundown for all web development projects.

Standardizing the technology stack allows projects to remain consistent, reduces onboarding time, simplifies maintenance, and enables reusable solutions across multiple client projects.

Unless a project has specific technical requirements that justify an exception, every website developed by Rundown should follow the standards defined in this document.


Design Principles

The selected technology stack is based on the following priorities:


Frontend

Framework

Next.js

Why We Use It

Alternatives Considered

Next.js is selected because it provides the best balance between flexibility, performance, and ecosystem maturity for the majority of client projects.


Language

TypeScript

Why We Use It

JavaScript may be acceptable for prototypes or experiments, but production projects should use TypeScript.


Styling

Tailwind CSS

Why We Use It


UI Components

shadcn/ui

Why We Use It


Animation

Animations should enhance usability rather than distract from content.

Standard Libraries

GSAP

Used for:


Framer Motion

Used for:


Lenis

Used for:


React Three Fiber

Used only when projects require interactive 3D experiences.


Content Management System

Payload CMS

Payload CMS is the official CMS for Rundown projects.

Why We Use It

Payload should be used whenever clients require content management capabilities.


Database

PostgreSQL

Why We Use It

Each client project should use its own database within a shared PostgreSQL server whenever appropriate.


File Storage

Cloudflare R2

Media files should be stored in Cloudflare R2 rather than on the application server.

Benefits

Only metadata and file references should be stored inside PostgreSQL.


Authentication

Authentication should be handled through Payload CMS whenever possible.

Role-based access should be implemented for:


Email

Preferred providers:

Email should be used for:


Payments

Supported payment providers:

The selected provider should be based on project requirements and client preferences.


Search

Default projects should rely on Payload CMS.

Projects requiring advanced search capabilities should implement:

Meilisearch


Analytics

Every project should include:

Additional analytics tools may be introduced based on project requirements.


Deployment

Applications should be containerized using Docker.

Deployment should be managed through Coolify.

Hosting should be provided using a Linux VPS unless project requirements justify alternative infrastructure.


Hosting

Preferred infrastructure:

Cloudflare should be used for DNS, SSL, CDN, and caching whenever practical.


Version Control

All projects must use Git.

Repositories should be hosted on GitHub.

Every project should maintain:

Detailed branching strategies are documented separately.


Recommended Project Architecture

Frontend

Next.js

Payload CMS

PostgreSQL

Cloudflare R2

Cloudflare CDN


Guiding Principle

The official technology stack should remain stable.

New technologies should only be introduced when they provide measurable improvements in performance, maintainability, developer experience, or operational efficiency.

Technology should be adopted deliberately rather than in response to trends.