Event logistics is boring. Let's automate all of them!
EventKit is an event organisation platform. It's a collection of tools and applications that help your team run events, from early planning to the chaotic event days.
EventKit ships with an intuitive webapp for staffs to plan, communicate and improvise in all stages. It's based on the MC/OD philosophy which gives full ownership and autonomy to every staff, which allows the event to be experimental, creative and fun.
EventKit is designed to be API-first and support integrations and programmatic usage in mind, so you can write JS/TS code to automate and manage your events. Repetitive logistics can be fully automated so you can focus on the creative and fun parts. Think of it like Pulumi/CDK but for organising events.
You can get started with EventKit at eventkit.sh, and create a workspace there.
Have an event idea you want to get started right away? You can use the eventkit-cli
and create a new event with a single command. You don't even have to open the browser :D
eventkit new meetup --title "GraphQL Meetup 10.0" --online --livestream=streamyard,youtube --date "19 Aug - 20 Aug" --time "7PM - 9PM"
EventKit exposes a GraphQL API to interact with your workspaces and events.
Our schema has a lot of relations, so a graph representation such as GraphQL makes a lot of sense.
Here's an example query to list all events in your workspaces.
query Events {
currentUser {
workspaces {
events(first: 10) {
staffs {
roles {
title
type
}
tasks {
title
}
user {
email
}
}
days {
duties {
title
}
directors {
user {
email
}
}
}
}
}
}
}
EventKit can be self-hosted within a few minutes. Follow this self-hosting guide to configure the EventKit platform on your servers or cloud instances.
TBD
Here is the non-exhaustive list of technologies we are using for EventKit.
- Language: TypeScript
- Runtime: Node
- Monorepo Framework: Nx
- Package Manager: PNPM
- Foundation: React, Next.js
- State Management: Jotai
- Styling: Tailwind, Emotion, Twin Macro
- Data Layer: GraphQL, Apollo Client
- Deployment: Vercel
- Framework: Nest.js, Fastify
- Data Layer: Prisma, Postgres, Redis
- Query Layer: GraphQL, Apollo Server
- Codegen: Prisma Nest.js GraphQL generates GQL object types from Prisma schema
- Deployment: Cloud Run, Docker
- Airtable Template
- Notion Template
- Venue Booking
- Team Gathering
- Discord Channel Setup
- StreamYard Live Setup
- MC/OD setup & webapp integration
- Meetup.com Integration
- Auto-generate Graphics
- Catering (Food & Drinks) setup
- EventKit CLI
- EventKit Discord Bot