Skip to main content

What is EventPalour?

EventPalour is a comprehensive event management platform built for event organizers and attendees. Whether you’re hosting a small meetup or a large conference, EventPalour provides all the tools you need to create, manage, and monetize your events.

Quick Start

Get up and running in minutes with our step-by-step guide

Installation

Set up your local development environment

API Reference

Explore our comprehensive API documentation

Authentication

Learn about OAuth, 2FA, and security features

Key Features

Multi-Workspace Management

Organize your events across multiple workspaces. Each workspace can have its own team, branding, and settings.
// Workspace schema from lib/db/schema/workspace.ts
export const workspace = pgTable("workspace", {
  id: varchar("id", { length: 16 }).primaryKey(),
  name: varchar("name", { length: 255 }).notNull(),
  description: text("description"),
  website: varchar("website", { length: 255 }),
  phone: varchar("phone", { length: 50 }),
  social_x: varchar("social_x", { length: 255 }),
  social_facebook: varchar("social_facebook", { length: 255 }),
  social_linkedin: varchar("social_linkedin", { length: 255 }),
  image_url: text("image_url").notNull(),
  invite_code: text("invite_code").notNull().unique(),
  user_id: varchar("user_id", { length: 16 })
    .notNull()
    .references(() => user.id, { onDelete: "cascade" }),
});

Event Types & Flexibility

Support for physical, online, and hybrid events with comprehensive ticketing options.
// Event types from lib/db/schema/enums.ts
export enum EventType {
  PHYSICAL = "physical",
  ONLINE = "online",
  HYBRID = "hybrid"
}

export enum EventPricing {
  FREE = "free",
  PAID = "paid"
}

Secure Authentication

Built-in support for OAuth (Google), email/password authentication, and two-factor authentication.
// User authentication schema from lib/db/schema/user.ts
export const user = pgTable("user", {
  id: varchar("id", { length: 16 }).primaryKey(),
  email: varchar("email", { length: 255 }).notNull().unique(),
  username: varchar("username", { length: 255 }).notNull(),
  password: text("password"),
  email_verified: boolean("email_verified").notNull().default(false),
  registered_2fa: boolean("registered_2fa").notNull().default(false),
});

Payment Integration

Integrated with Paystack for secure payment processing and ticket sales.
Paid events require KYC verification to ensure compliance and protect both organizers and attendees.

Advanced Ticketing

Create multiple ticket types with flexible pricing, availability windows, and currency support.
// Ticket schema from lib/db/schema/tickets.ts
export const tickets = pgTable("tickets", {
  id: varchar("id", { length: 16 }).primaryKey(),
  event_id: varchar("event_id", { length: 16 }).notNull(),
  ticket_type_id: varchar("ticket_type_id", { length: 16 }).notNull(),
  price: numeric("price", { precision: 10, scale: 2 }).notNull(),
  availability_quantity: integer("availability"), // NULL = unlimited
  currency: currency_enum("currency").notNull().default(CurrencyEnum.KES),
  valid_from: timestamp("valid_from", { withTimezone: true }),
  valid_until: timestamp("valid_until", { withTimezone: true }),
});

Technology Stack

Next.js 16

Built with the latest Next.js features including App Router and Server Actions

TypeScript

Fully typed for better developer experience and code safety

Drizzle ORM

Type-safe database queries with PostgreSQL

Paystack

Secure payment processing for paid events

OAuth 2.0

Google authentication support

Tailwind CSS

Modern, responsive UI design

Use Cases

For Event Organizers

  • Create and manage multiple events across different workspaces
  • Sell tickets with flexible pricing tiers (Early Bird, VIP, Standard)
  • Track attendees and manage check-ins
  • Send announcements and updates to attendees
  • Manage speakers and event partners
  • View analytics and reports

For Attendees

  • Discover events near you
  • Purchase tickets securely
  • Receive event updates and notifications
  • Access virtual event links
  • View event details, speakers, and schedule

Architecture Overview

EventPalour follows a modern SaaS architecture:
1

Database Layer

PostgreSQL database with Drizzle ORM for type-safe queries
2

Backend Layer

Next.js Server Actions and API routes for business logic
3

Authentication Layer

Session-based auth with OAuth support and 2FA
4

Frontend Layer

React Server Components with optimized client components
5

Payment Layer

Paystack integration for secure transactions

Getting Help

Need assistance? Here are some resources:

Documentation

Browse our comprehensive guides and API references

GitHub Issues

Report bugs or request features

Community

Join our community discussions

Support

Contact our support team

Next Steps

Quickstart Guide

Create your first event in under 5 minutes

Local Setup

Set up the development environment

Build docs developers (and LLMs) love