Qortr
Modern room booking platform for businesses with instant booking, team management, and smart analytics.
Preview
Key Features
Instant Booking
See availability in real-time. Book with one tap. No waiting, no approval workflows, no conflicts.
Smart Filters
Filter by capacity, amenities, location. Find the perfect room for your 20-person presentation or 2-person 1:1.
Team Management
Invite your team, manage permissions, share spaces seamlessly across your organization.
Verified & Secure
All spaces are verified. SOC 2 compliant. GDPR ready. Your data stays yours.
REST API
Full API with webhooks, OAuth 2.0, rate limiting. Build integrations, automate workflows.
100% Free
No premium tiers. No per-seat pricing. No hidden fees. Actually, genuinely free.
You know what's absolutely wild? In 2024, people are still using spreadsheets to book meeting rooms. SPREADSHEETS. Like it's 1997 and we just discovered Excel.
I watched a coworker spend 15 minutes trying to figure out if "Conference Room B" was available at 2pm. She had three browser tabs open, was cross-referencing a Google Sheet, and eventually just walked to the room to check if anyone was in it. That's when I knew something had to change.
The Problem That Drove Me Insane
Every room booking solution I found fell into one of two categories:
- Enterprise behemoths that charge per seat, per room, per month, per square foot, per breath you take in the building. Want to add a new meeting room? That's a sales call. Want to integrate with your calendar? That's the premium tier. Want to NOT want to throw your laptop out the window? Sorry, that's the enterprise plan.
- "Free" solutions that are actually just Google Sheets with a prettier font. They work until two people book the same room at the same time, and then it's Thunderdome.
I wanted something in between. Something that was actually free (not "free trial" free, not "free for up to 3 users" free — actually free), but also didn't suck.
So I built it.
The Journey: From Frustration to 2,400+ Teams
The first version of Qortr was embarrassingly simple. A list of rooms. A calendar. A "Book" button. I built it in a weekend using Next.js because I was already neck-deep in React at work and didn't want to ...
Built With
Impact
Daily Bookings
1,000+
Teams
2,400+
Uptime SLA
99.9%
Price
Free
Under the Hood
A peek at the implementation — the kind of code that powers Qortr.
1// The booking endpoint that handles 1000+ requests/day
2// Optimistic locking prevents double-bookings
3
4async function createBooking(req: BookingRequest): Promise<Booking> {
5 return await prisma.$transaction(async (tx) => {
6 // Check for conflicts with row-level locking
7 const conflicts = await tx.booking.findFirst({
8 where: {
9 roomId: req.roomId,
10 status: 'confirmed',
11 OR: [
12 { startTime: { lt: req.endTime }, endTime: { gt: req.startTime } }
13 ]
14 },
15 lock: { mode: 'forUpdate' }
16 });
17
18 if (conflicts) {
19 throw new ConflictError('Room is no longer available');
20 }
21
22 // Create the booking
23 const booking = await tx.booking.create({
24 data: {
25 ...req,
26 status: 'confirmed',
27 confirmationCode: generateCode()
28 }
29 });
30
31 // Notify via websocket (the fun part)
32 await broadcastRoomUpdate(req.roomId);
33
34 return booking;
35 });
36}