Althomes · 2025 – 2026 Design + Engineering (solo)

Althomes — A Booking Site That Runs Like a Business

Gave a short-stay rental brand a website that runs itself, with live booking availability, owner-editable everything, automated enquiries, and a hosting bill kept near zero. Solo, from content model to deployment.

Company
Althomes
Role
Design + Engineering (solo)
Period
2025 – 2026
Scope
End-to-end product design, full-stack build, infrastructure, and launch
Althomes home page — an illustrated mountain-and-meadow collage with live booking navigation
Althomes · the live booking site · availability pulled from the property-management system
TL;DR

Althomes is a curated short-stay rental brand. They needed a real booking website where guests check live availability, enquiries land in an inbox, and every page is editable without a developer, all at a running cost that made sense for a small business. I designed and built the whole thing solo, from the content model down to the Docker image it ships in.

97
Performance
0.2s first paint, 1.2s largest, zero layout shift. On the live site, not a lab.
98
Accessibility
Readable, navigable, and usable with a keyboard or screen reader.
100
Best Practices
Secure, modern, error-free. Nothing flagged.
100
SEO
Built to be found, with clean metadata and a self-maintaining sitemap.

Built and shipped solo across two environments: product design, full-stack engineering, and infrastructure. AI voice agents are in prototyping now.

01

The Third Option

Small brands get two bad deals. So I built Althomes the right one.

The two bad deals

Pay little for a brochure you can't change without a developer, or pay a lot for a custom site locked to one agency and costly to move. Either way the business loses.

The one I built

A self-running platform Althomes owns outright: real bookings, self-serve content, near-zero hosting. Cheap to run, theirs to keep, nobody's leash.

02

What I Built

A complete, self-running platform, not a page but a working business. The owner assembles every page, photo, listing, blog post, and even the navigation menu from a single dashboard. No developer in the loop for routine changes.

Althomes admin dashboard — content tree on the left, site settings panel with branding, navbar, footer and SEO tabs
The owner's dashboard, with every surface of the site editable in one place
  1. 01 Content tree — Every page, home, and post lives in one editable tree.
  2. 02 Site settings — Branding, navbar, footer, colours, and SEO, all self-serve, no code.
  3. 03 Live fields — Edit a value; the published site reads straight from it.
  4. 04 Publish — Nothing goes live until the owner says so.
Althomes visual editor — the live site preview on the left, an editing panel for the Who We Are page on the right
Live preview

See it before it goes live

The finished page renders side by side with the editor. Reword a headline, swap a hero photo, or restructure a section, and watch it land exactly as a guest will see it, before anything is published.

  • Edits render in the real page, not an abstract form.
  • Mistakes get caught in private, never on the live site.
  • Draft and published states stay cleanly separated.
Althomes visual editing — clicking an element on the page opens its content field directly
Visual editing

Click the page, edit the field

No hunting through a CMS for the right entry. The owner clicks an element on the preview and jumps straight to the field that controls it, so the page itself becomes the editing surface.

Real bookings

Real availability, not a fake form

Guests pick dates and see actual availability, pulled live from the property-management system the business already runs its calendars on. The site tells the truth about what's free because it reads the same source the owner trusts.

  • Availability is read live from the PMS, never a stale copy.
  • A RentalWise link binds each listing to its calendar.
  • No double-bookings, no manual back-and-forth.
03

What It Does

Beyond editing and booking, the platform does the operational work on its own, the parts a guest never sees but always feels.

enquiries@althomes.in
New partner enquiry
NameRiya Mehta
Dates14–17 Aug · 2 guests
MessageIs Morni Hills available…
Delivered to inbox
Email pipeline

Enquiries that just work

Partner and contact messages arrive as clean, formatted emails, landing instantly in the inbox.

  • A form gets filled, an email arrives. Simple on purpose.
  • No spreadsheet, no leads rotting in a database nobody checks.
althomes.in › homes › morni-hills
The Solitude, Morni Hills — Althomes
A curated short-stay tucked into the Morni hills. Check live availability and book your dates…
sitemap.xml · self-updating
SEO built-in

It sells itself on Google

Every page carries the right titles, descriptions, and a self-maintaining sitemap, so search engines understand and rank it.

  • Add homes and articles, and the site stays discoverable on its own.
  • Marketing doesn't decay the moment the developer leaves.
Original upload
11 MB
Served to guest
~54 KB
−99.5% · no visible quality loss
Image pipeline

Fast pages, heavy photos

Property shots are huge and gorgeous, the kind that normally make a site crawl. Every image is auto-shrunk for the web with no visible quality loss.

  • An 11 MB upload becomes ~54 KB on screen.
  • The owner just uploads the nice photo and forgets about it.
one image · drops into any of them · no lock-in
Portable infra

Cheap to run, theirs to keep

Built to run on inexpensive, standard infrastructure and not locked to any one host.

  • Low monthly bill; move providers whenever the business wants.
  • They own the asset, not a lease on it.

None of this is a claim. It’s measured. The live site scores near-perfect across the board, with a largest paint just over a second and zero layout shift.

97 Performance
98 Accessibility
100 Best Practices
100 SEO
First Contentful Paint 0.2 s
Largest Contentful Paint 1.2 s
Cumulative Layout Shift 0

Google PageSpeed Insights · althomes.in · desktop · 18 Jun 2026

04

Under the Hood

The plain-language outcomes above are backed by deliberate engineering. For the technically curious, here’s the stack, the way data moves, and the properties that keep it honest.

Framework
Next.js 16React 19.2
Content
Sanity v5GROQ
Types & style
TypeScriptZod 4Tailwind 4
Delivery
ResendRentalWise
Infra
DockerRailway

Two data paths carry the whole product. One turns editor content into pages at build time; the other answers a guest’s date search, reading the real PMS calendar on the click without ever exposing the vendor credential.

Build time Content becomes pages
Source Sanity CMS 14 docs · 13 modules
Query defineQuery() generates types
Map Dispatcher type → component
Output React page assembled
On search Dates become availability
Guest Picks dates + searches one click
Server only Server action Zod-validated
Cache 120s window keyed by dates + guests
Source of truth RentalWise PMS real calendar

Security by construction

Whole classes of attack are designed out, not filtered out.

  • CMS token is Viewer scope, so the site can read content, never write it.
  • Every form ends at a Resend email; no path writes to the CMS, killing injection.
  • Server actions validate with Zod; origin checks compare hostname, not startsWith.

Portable, theirs to keep

A standalone Next output plus a three-stage Docker build ships server, chunks, and assets, with no full node_modules.

  • Small image, low RAM, runs as non-root.
  • No Vercel-specific API was ever used.
  • Let the project migrate Vercel → Railway purely to cut cost.

Types are the contract

Schema and code can’t silently drift. The generated types flow into every component.

  • Every query uses defineQuery(); a raw groq tag breaks type-gen silently.
  • Remove a field still in use and the build breaks, not production.
05

Built with Agents

A site this self-sufficient took real engineering, and I didn’t write every line of it by hand. The build ran on an agentic platform: a set of specialized agents that plan, build, review, and test, each good at a single job. They don’t work in a line, they work in patterns. A hard feature becomes a small team that fans out and reconverges; a UI gets traded back and forth until it passes; a bug gets cornered and locked shut. Three of those patterns:

01 Design loop
Designer front-end agent Tester renders & checks Ships builds the screen passes fails review → revise

A front-end agent builds the screen; a tester agent renders it and pushes back. They trade revisions until it passes review — then it ships.

02 Feature fan-out
Planner scopes the work Builder implements Test-writer proves it Reviewer signs off main isolated git worktrees · run in parallel

Hard features get a team. A planner scopes the work, a builder and a test-writer run at once — each in its own git worktree — and a reviewer signs off before anything touches main.

03 Bug hunt
Reviewer fresh eyes Builder writes the fix Test-writer regression test flags a bug patches it

A reviewer flags the bug, a builder writes the fix, and a test-writer slams the door behind it with a regression test so it cannot come back.

It’s the same idea that runs through the whole project. Take the repetitive, error-prone work off a person’s plate and let a system handle it well. Here, that person was me.

06

What's Next: A Team That Never Sleeps

The website handles the screen. The next phase handles the phone, with AI voice agents that talk to guests in natural conversation, around the clock, in English and India’s local languages so callers are met in the language they’re comfortable in.

In prototyping
Inbound

Answering the phone, 24/7

  • Availability & booking “Is the Morni Hills home free next weekend?” gets a real answer, then a nudge toward booking.
  • Property questions Check-in times, amenities, location, and policies: the routine questions, answered instantly at any hour.
  • Lead capture When no human is free, the agent takes the caller’s details and logs the enquiry instead of dropping it.
  • Guest support Existing guests get directions, booking tweaks, and on-stay help without waiting for office hours.
Outbound

Reaching out at the right moment

  • Abandoned bookings Someone browsed dates and didn’t finish. A well-timed call brings them back and recovers revenue that would otherwise evaporate.
  • Campaign outreach New homes, seasonal offers, and promotions, delivered by voice to the right guests, turning a marketing idea into conversations.

The thread is the same one running through the whole project: take the repetitive, time-sensitive work off the owner’s plate and let the system handle it. First the website ran itself. Next, so does the front desk.

07

Reflections

Build the business, not the webpage
The brief was "a website." The right deliverable was a system that removes ongoing work and ongoing cost: booking, enquiries, content, SEO, and hosting all running themselves. Software earns its keep by what it stops the owner from having to do.
Own the asset, don't lease it
Choosing portable, standard infrastructure over a convenient lock-in is what let the project migrate hosts purely to cut cost. The constraint, never use a vendor-specific API, is exactly what kept that door open.
Bugs live at the boundaries
Every hard bug sat on a seam between two systems: CMS↔CSS, widget↔framework, build-time↔runtime. Knowing which system owns a symptom is most of the fix.

Built and shipped solo across two environments, on infrastructure chosen to keep the running cost near zero.