emitkit Svelte Themes

Emitkit

Simple platform for internal notifications built with SvelteKit and Svelte 5.

EmitKit

Open-source event streaming platform with real-time notifications, webhooks, and integrations. Built with SvelteKit and Svelte 5.

Features

  • Push Notifications: Web Push API with VAPID support for browser notifications
  • Webhooks: Reliable HTTP POST dispatching with HMAC signatures and retry logic
  • Integrations: Slack, Discord, and Email notifications out of the box
  • Type-Safe API: End-to-end TypeScript with Zod validation
  • Production-Ready: Durable side-effect execution with Upstash Workflow
  • Modern UI: shadcn-svelte components with Tailwind CSS
  • Self-Hostable: Deploy to Vercel (more platforms coming soon)

Tech Stack

Quick Start

Prerequisites

  • Node.js 18+ and pnpm
  • PostgreSQL database
  • Tinybird account (for event storage)
  • Redis (optional, for caching)

Installation

  1. Clone the repository:
git clone https://github.com/emitkithq/emitkit.git
cd emitkit
  1. Install dependencies:
pnpm install
  1. Copy the environment example and configure:
cp .env.example .env

Edit .env and add your credentials:

  • Database connection string
  • Better Auth secret
  • Tinybird API token
  • VAPID keys for push notifications (run pnpm run generate:vapid)
  1. Set up the database:
pnpm run db:push
  1. Set up Tinybird:
cd tinybird
tb auth
tb push --force
  1. Start the development server:
pnpm run dev

Visit http://localhost:5173 to see your app.

Available Commands

# Development
pnpm run dev              # Start dev server
pnpm run build            # Build for production
pnpm run preview          # Preview production build

# Database
pnpm run db:studio        # Open Drizzle Studio
pnpm run db:generate      # Generate migrations
pnpm run db:push          # Push schema changes

# Docker
pnpm run docker:up        # Start services (Postgres, Redis)
pnpm run docker:down      # Stop services

# Code Quality (for contributors)
pnpm run check            # TypeScript type checking
pnpm run lint             # ESLint + Prettier
pnpm run format           # Format code with Prettier

Documentation

For Self-Hosting

For Contributors

Configuration

See Configuration Guide for complete environment variable documentation.

Quick Setup

  1. Copy .env.example to .env
  2. Fill in required values (database, auth secret, Tinybird token)
  3. Generate VAPID keys for push notifications: pnpm dlx web-push generate-vapid-keys

For detailed configuration options, see the Configuration Guide.

Deployment

See Deployment Guide for complete production deployment instructions.

Quick Deploy to Vercel

  1. Push your code to GitHub
  2. Import to Vercel
  3. Set environment variables (see Configuration Guide)
  4. Deploy

For detailed deployment steps, troubleshooting, and production best practices, see the Deployment Guide.

Contributing

We welcome contributions! Please see CONTRIBUTING.md for guidelines.

Development Workflow

See CONTRIBUTING.md for detailed contribution guidelines.

Quick steps:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Run pnpm run check (must pass with 0 errors)
  5. Open a Pull Request

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

Support


Made with ❤️ by the EmitKit community

Top categories

Loading Svelte Themes