Hotel Vos came to me with a problem that off-the-shelf software wasn't solving cleanly: their check-in process was partly paper-based, partly email, and partly a cobbled-together set of tools that required staff to re-enter information between systems. They wanted one clean web flow that guests could complete before arrival and staff could manage from a single dashboard.
This is the kind of project that agencies quote at 3x the price it should cost, because they charge for overhead and process. As a solo freelancer, I could build it leaner and communicate directly throughout. Here's how it went.
Scoping: The Most Important Part
The initial brief was broad — "a digital check-in system." Before writing a line of code, I spent time narrowing this to a defined scope:
- What does the guest see? (Pre-arrival form, confirmation)
- What does the form collect? ([BISYRI: passport/ID upload, arrival time, special requests, number of guests — whatever Hotel Vos actually needed])
- What does staff see? (Dashboard showing today's arrivals, each guest's submitted information, ability to mark as checked in)
- What integrations were required? (Email confirmation to guests, notification to staff on submission)
- What was explicitly out of scope? (Payment processing, PMS integration, room assignment automation)
Getting explicit agreement on what's out of scope is as important as defining what's in scope. Scope creep on custom software projects is how budgets double and timelines slip.
The Technical Build
[BISYRI: Insert the actual tech stack used — e.g., "The guest-facing form was a multi-step React app hosted on Vercel. Form submissions went to a Supabase database. Staff dashboard was a separate protected route on the same app. Email confirmations via Resend. Document/ID upload via Cloudflare R2."]
I chose tools that were:
- Manageable by a solo developer long-term — no complex infrastructure Hotel Vos would need external help to maintain
- Cost-predictable — serverless/hosted services with clear free tiers and predictable scaling costs at their volume
- Easily hand-offable — if they ever needed another developer to take over, the code and architecture should be understandable without a handover document
The Guest Flow
[BISYRI: Describe the actual guest experience — e.g., "Guests receive an email link 48 hours before arrival. The link opens a mobile-friendly multi-step form: personal details, arrival time estimate, number of guests, any special requests, ID upload. Submission triggers a confirmation email to the guest and a Slack notification to reception."]
The Staff Dashboard
[BISYRI: Describe the staff-facing interface — e.g., "Reception staff see a dashboard filtered to today's arrivals by default. Each row shows the guest's name, arrival time estimate, submission status, and a link to their full record including the uploaded ID. A single click marks a guest as checked in. Completed check-ins move to a separate view."]
What I Got Wrong (and Fixed)
[BISYRI: Insert a real mistake from the project — e.g., "My initial design had the staff dashboard refresh manually. Reception quickly pointed out they needed real-time updates as guests submitted — they didn't want to refresh the page to see new arrivals. I added a polling mechanism (every 30 seconds) as a quick fix while building a proper server-sent events stream for the final version."]
This kind of feedback is why building in short feedback loops matters more on custom software than on any other type of project. The initial spec said "dashboard showing today's arrivals" — real-time wasn't explicit, but it was assumed. Always demo the build early.
The Timeline and Cost
[BISYRI: Insert actual timeline and rough cost range — e.g., "Total build time: 3 weeks (including 1 week of back-and-forth on feedback). The project ran on time and within the agreed budget. Ongoing hosting costs for Hotel Vos: under €30/month."]
What This Kind of Project Looks Like to Clients
Hotels, accommodation providers, and hospitality businesses increasingly need bespoke digital tools — not because off-the-shelf software doesn't exist, but because their operations are specific enough that forcing them into a generic tool creates more friction than it solves.
Custom web apps built by solo freelancers can deliver the right fit at a fraction of the agency cost, with direct communication throughout. The tradeoff is that you need to work with someone who can scope the project correctly from the start — and who understands both the technical build and the operational reality of your business.
If you have a similar problem, get in touch. I scope these projects in a short discovery call and provide a fixed-price estimate before any work begins.