The Challenge
As a developer who has worked remotely from different countries, I experienced firsthand how time-consuming it is to find accommodation suited for remote work. Most booking platforms are designed for tourists — they highlight pools and views, not workspace quality, WiFi speed, or quiet environments. I wanted to build a platform where digital nomads could share and discover places that actually work for working.
The project also served as a deep dive into Remix’s server-first architecture, particularly its approach to progressive enhancement and form handling.
The Solution
Nomad Accommodations is a community-driven database where nomads submit and browse accommodation recommendations. Each listing focuses on the details that matter for remote work: workspace quality, WiFi reliability, noise levels, and nearby coworking options.
Progressive Enhancement
The application is built with Remix’s philosophy of progressive enhancement at its core. Every feature works without JavaScript enabled — forms submit, pages navigate, and data loads using standard HTML. When JavaScript is available, Remix enhances the experience with client-side transitions, optimistic UI updates, and inline form validation.
This approach makes the application fast and reliable on any connection. If a user is on a slow hotel WiFi (a common scenario for nomads), the site still works perfectly.
Full-Stack Form Handling
The main feature is a multi-field accommodation submission form with validation on both client and server:
- Client-side: Real-time field validation using Remix’s
useActionDataanduseTransitionhooks, providing instant feedback without blocking submission. - Server-side: All submissions are validated again on the server using Zod schemas before writing to the database. This ensures data integrity regardless of the client.
Admin Panel
An admin-only section provides CRUD operations for managing submissions — reviewing new entries, editing details, and removing spam. Access is controlled through server-side session authentication.
CI/CD Pipeline
Deployment is automated through GitHub Actions. Every push triggers a pipeline that runs linting, type checking, and tests before deploying to either a staging or production environment on Fly.io. The staging environment allows verification before promoting changes to production.


Technology Stack
- Remix: Full-stack framework providing server-side rendering, progressive enhancement, and nested routing.
- TailwindCSS: Responsive and dark mode UI styling.
- Prisma: Type-safe ORM for database queries and migrations.
- SQLite: Lightweight embedded database, ideal for a single-server deployment on Fly.io.
- GitHub Actions: CI/CD pipeline for automated testing and deployment.
- Fly.io: Edge-deployed application hosting with staging and production environments.