2024Apps
Qortr
Back

Qortr

Modern room booking platform for businesses with instant booking, team management, and smart analytics.

Preview

Book spaces, not headaches — the landing page that started it all

Browse rooms with filters for capacity, amenities, and location

Clean authentication — 2,400+ teams trust Qortr

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:

  1. 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.
  1. "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

Next.jsPostgreSQLPrismaWebSocketsREST APIOAuth 2.0

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.

BookingAPI.tstypescript
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}

Discussion

💬 Be nice, or be funny. Preferably both.