Skip to main content
Allianza
Projects
Client project · Hospitality

Broz Stays

A homestay company running on WhatsApp threads and a spreadsheet, given the two halves it was missing: a public site guests can actually browse, and an admin panel the team runs the whole catalogue from. We designed both, built both, and put them on a server the client owns.

Client
Broz Stays — handpicked homestays across North Bengal & Sikkim
Scope
Design, public website, admin panel, database, hosting and deployment
Shipped
Live at brozstays.com, run day to day by the Broz Stays team
Shape
One Next.js app serving two sites, split by hostname
The public site

Somewhere to send a guest

Broz Stays sells places most people have never heard of, so the site has to do the convincing a marketplace listing never does — the valley first, then the house, then the room.

  • Property pages that answer everything

    Each stay carries a gallery, rooms and rates, amenities, meals, house policies, FAQs, a map and what is nearby — the questions guests used to ask over WhatsApp, answered on the page.

  • Destinations as places, not filters

    Cities live at their own paths and group into the circuits guests actually book — the Dooars, the Old Silk Route — so a valley can sell before a specific house does.

  • Destination-aware search

    The hero search knows the region, the cities inside it and every property in each, so a half-typed place name still lands somewhere useful.

  • Enquiries, not a checkout

    Hosts confirm their own rooms, so the site captures a numbered enquiry and hands off to WhatsApp rather than pretending to hold inventory it cannot see.

  • Host and career lead capture

    “List your property” and the careers form — CV upload included — drop straight into the panel’s inbox instead of an email account nobody owns.

  • Built to be found

    Per-property SEO fields, structured data on every listing, and image handling that serves modern formats at the size the layout actually needs.

Broz Stays — design prototypeOpen full screen

That is the design the build was signed off from, embedded here because the production site refuses to be framed by another domain. For the real thing, open brozstays.com.

The admin panel

The half the guests never see

Everything on the public site is editable by the people who run it. No CMS licence, no developer in the loop to change a price, and nothing that only works if you remember which spreadsheet tab it lived in.

  • A sectioned property editor

    A property is not one form. It breaks into thirteen sections the team edits independently, so changing a check-out time never risks the gallery.

  • Image manager

    Upload, reorder and pick the cover photo per property and per room. Originals are resized on the server rather than shipped at 3 MB.

  • Enquiry threads

    Every enquiry gets a reference number and keeps its reply history, so any team member can pick up a conversation someone else started.

  • Reviews held for approval

    Guest reviews sit in a pending queue and only reach a property page once someone publishes them.

  • The site’s own menus, editable

    Navigation and footer are a drag-ordered tree in the panel — a new destination goes into the menu without a developer.

  • Its own subdomain, gated

    The panel answers only on admin.brozstays.com, behind a session check that runs at the edge before any page renders. On the public domain it does not exist at all.

admin.brozstays.com — walkthroughOpen full screen

A clickable walkthrough of the panel, with sample data — the real one at admin.brozstays.com is behind the client's sign-in, as it should be.

Everything in the sidebar

Overview

  • Dashboard Greets whoever signed in, and leads with what needs answering today.

Inventory

  • Properties The catalogue, and a sectioned editor per property — see below.
  • Calendar A month grid of available, held and blocked days — the front end for a booking engine that is not wired up yet.
  • Destinations Cities, states and the commercial regions they are sold under.

Guests

  • Inquiries Every enquiry as a numbered thread, with the reply history kept on it.
  • Reviews Guest reviews held for approval before they reach a property page.
  • Leads & applications Host sign-ups and career applications, with the CVs downloadable.

Content

  • Stories & blog Write, schedule and publish the journal.
  • Subscribers The newsletter list, exportable.

Site

  • Menu editor The public site's navigation and footer, edited as a drag-ordered tree.
  • Categories Property types and amenity groups.
  • Social links The handles the footer and share buttons point at.
  • Settings & account Site-wide settings, and the admin's own name, email and password.

One property, thirteen sections

  • Photos & cover
  • Rooms & rates
  • Amenities
  • Highlights
  • Meals
  • Activities
  • Policies
  • FAQs
  • Location & map
  • Nearby attractions
  • Restaurants
  • Experiences
  • SEO

Each saves on its own, so a half-finished listing is never a blocked one.

How it is built

One app, one server, no rented pieces

The site, the panel and the database run on a single VPS the client owns, deployed with one command. Nothing here bills per property, per editor, or per page view.

  • One app, two sites

    Middleware reads the Host header and mounts the panel at the root of the admin subdomain. One build, one process, one deploy — and brozstays.com/admin returns a real 404 rather than a redirect that admits the panel is there.

  • Self-hosted, end to end

    PostgreSQL on the same VPS bound to loopback, the app under PM2, nginx in front with a Let's Encrypt certificate covering all three hostnames. No per-seat SaaS bill sitting under the site.

  • Sessions that hold up

    Passwords hashed with bcrypt, an HS256 token in an httpOnly cookie scoped to the admin host, verified in Edge middleware with Web Crypto — so the check happens before a page renders, not after.

Built with

  • Next.js 14 (App Router)
  • TypeScript
  • Tailwind CSS
  • PostgreSQL
  • Edge middleware
  • JWT + bcrypt auth
  • sharp image pipeline
  • nginx + PM2
  • Let's Encrypt
Page map

Every page we shipped

Paths are on brozstays.com. Each one is a live link — open it and you are on the running site.

PagePathWhat it does
Home/Destination-aware search, featured stays and the current season's pick.
All stays/staysThe full catalogue, filterable by destination, property type and guests.
Property page/stays/sisamara-river-view-forest-villaGallery, rooms and rates, amenities, meals, policies, FAQs, map and what is nearby.
Destinations/destinationsCities grouped into the circuits guests actually book — the Dooars, the Old Silk Route.
Destination page/destination/sikkim/phadamchenOne valley: what it is like, when to go, and every stay we have there.
Experiences/experiencesSafaris, treks and village walks the hosts run themselves.
Gallery/galleryPhotography from across the properties, in one grid.
Journal/journalTravel stories and route guides, written and published from the panel.
List your property/list-your-propertyHost lead form — new properties arrive in the panel's inbox.
Careers/careersOpenings, and an application form that takes a CV upload.
Wishlist/wishlistStays a guest has saved, kept in their own browser.
About/aboutWho Broz Stays are and how the properties are chosen.
Contact/contactEnquiry form, plus a WhatsApp tap-through to the team.

Ready to reclaim your time?

Audit your business and discover exactly where you can automate, save hours, and scale without adding headcount.

No spam. Unsubscribe anytime. We typically respond within 24 hours.

Audit Your Business