No description
Find a file
Chneemann ba8bcd6116
All checks were successful
Deploy Waveform to VPS / deploy (push) Successful in 1m6s
docs(readme): add CI/CD deployment status badges and details
2026-09-10 11:24:59 +02:00
.forgejo/workflows feat(ci): add automated SSH deployment workflow 2026-09-08 09:36:42 +02:00
app refactor(members): introduce UserProvider to eliminate prop drilling for member profile popovers 2026-09-10 10:20:41 +02:00
components fix(members): resolve UserProfilePopover not opening from MemberSidebar 2026-09-10 11:20:08 +02:00
db feat(db): add conversations and direct_messages tables with relations 2026-09-04 19:25:14 +02:00
lib refactor(members): introduce UserProvider to eliminate prop drilling for member profile popovers 2026-09-10 10:20:41 +02:00
public feat(app): initial setup with Next.js 16, Tailwind v4 and (app) route group 2026-08-28 12:00:24 +02:00
.gitignore chore(db): setup drizzle orm with postgres driver and drizzle-kit configuration 2026-08-28 15:43:18 +02:00
auth.ts refactor(auth): remove SessionProvider and sync user status on login/logout 2026-08-30 16:25:11 +02:00
Dockerfile feat(ci): add automated SSH deployment workflow 2026-09-08 09:36:42 +02:00
drizzle.config.ts chore(db): setup drizzle orm with postgres driver and drizzle-kit configuration 2026-08-28 15:43:18 +02:00
eslint.config.mjs feat(app): initial setup with Next.js 16, Tailwind v4 and (app) route group 2026-08-28 12:00:24 +02:00
middleware.ts feat(auth): integrate auth.js v5 with credentials provider and bcrypt hashing 2026-08-28 16:49:27 +02:00
next.config.ts feat(app): initial setup with Next.js 16, Tailwind v4 and (app) route group 2026-08-28 12:00:24 +02:00
package-lock.json feat(servers): add server creation modal, API endpoint, and sidebar integration 2026-08-29 19:53:54 +02:00
package.json feat(servers): add server creation modal, API endpoint, and sidebar integration 2026-08-29 19:53:54 +02:00
postcss.config.mjs feat(app): initial setup with Next.js 16, Tailwind v4 and (app) route group 2026-08-28 12:00:24 +02:00
README.md docs(readme): add CI/CD deployment status badges and details 2026-09-10 11:24:59 +02:00
tsconfig.json feat(app): initial setup with Next.js 16, Tailwind v4 and (app) route group 2026-08-28 12:00:24 +02:00

Waveform

A modern, high-performance real-time chat application, designed for seamless communication.

Deployment Status Website Status Next.js React TypeScript Tailwind CSS Auth.js Drizzle ORM PostgreSQL

🛠️ Tech Stack

📂 Architecture & Structure

The project uses Next.js Route Groups without a src/ directory to maintain a clean root layout:

  • app/(app)/ — Application routes (Layout, Home, Components)
  • app/(auth)/ — Public authentication routes (Login, Register)
  • app/api/ — Backend API endpoints & Auth handlers ([...nextauth])
  • components/ — Modular UI components (Chat, Navigation, Sidebars)
  • db/ — Database schema definitions, migrations, and Drizzle configuration (drizzle.config.ts)
  • lib/ — Centralized core logic folder containing:
    • stores/ — State management stores
    • schemas/ — Zod validation schemas
    • types/ — Global TypeScript interfaces and type definitions
    • services/ — Business logic layers and external API integration services
  • public/ — Static assets (images, icons, fonts)

🚀 CI/CD & Deployment

Deployments are fully automated using Forgejo Actions and SSH:

  1. Automated Trigger: Pushes to the main branch trigger the SSH deployment workflow.
  2. Database Schema Sync: Migrations are applied in milliseconds using drizzle-kit push executed directly inside the active waveform-studio container.
  3. Zero-Downtime Container Rebuild: Rebuilds production Docker images (waveform) without disrupting live database volumes.

🎯 Current Status

In Progress — Application scaffold initialized with Next.js 16, React 19, Tailwind CSS v4, and TypeScript. Database layer fully set up with PostgreSQL and Drizzle ORM schemas, full authentication (Auth.js v5). DevOps infrastructure implemented.