shenandoahfarms.orgIn Production

A client website by WIIWID

A mountain community along the river, and the website that serves it.

Shenandoah Farms is two lakes, riverfront common land and neighbors who look after it together, in Warren and Clarke Counties, Virginia, a short drive from Front Royal. WIIWID designed and built the new website for its Property Owners, with what owners come for right up front: dues, documents, meetings and minutes, the calendar and forms.

shenandoahfarms.orgIn Production

The new site is in production and will launch at this address.

Around the Farms

Owner services

Screenshots of the new Shenandoah Farms website, in production. Pick a page to see it.

01What owners get

The four things owners come for, right up front.

Pay Dues, Documents, Meetings and Forms sit in a row just under the home page's headline, and each one opens a page built for that one job. The calendar and Farm News are a click away in the menu.

Pay dues online

Pick what you're paying (the annual assessment, a Community Center rental, decal and gate access, or another balance), enter the amount from your statement, and continue to iPOSpays' hosted, PCI-compliant card page. Card details never touch the site.

iPOSpays hosted payment page

A library you can search

Minutes, agendas, policies and forms brought over from the old site into one document library. Type to search, tap a category, open the PDF.

74 documents · 4 categories

Meetings & minutes

The membership meets monthly at the Community Center. Every meeting is listed with its date and type, and its agenda and approved minutes, once posted, open right from the list.

No need to call the office

A calendar to subscribe to

Upcoming meetings and events, grouped by month with the time and place for each, plus a feed that adds them all to any calendar app.

.ics calendar feed

Forms that reach the office

Community Center Request, Architectural Review Request, and Decal & Gate Access Request: filled out online and emailed to the office, with a Download PDF option beside each for owners who prefer paper.

Online or on paper

Farm News

Announcements and updates from the office, brought over from the old site with their categories (events, meetings, roads, announcements and community), each post on a page of its own.

RSS feed included

Meeting minutes, in the site's own words

“Posted online — no request required.”

Approved minutes are linked from each meeting, and agendas and minutes are filed in the document library, so owners don't need to call or visit the office for them.

02The community

Land held in common.

Shenandoah Farms is owned and run by its property owners. In the site's words, “the lakes, the riverfront, and the shared grounds belong to the members, and the work of caring for them happens in the open, at monthly meetings and in active committees.”

  • The Lakes

    Two lakes at the heart of the community, cared for by the membership.

    Spring Lake · Lake of the Clouds

  • The Riverfront

    Common land along the Shenandoah River with access and quiet places to gather.

    Riverview Boat Landing · Treasure Island

  • Roads & Sanitary District

    Community roads maintained through the Warren County Sanitary District.

    Shenandoah Farms Sanitary District

The home page's three highlights, in its own words. On the site each carries a photo from the community; here they wear the site's ridgeline art.

“Spread over roughly 7,000 acres, Shenandoah Farms is the second largest community in Virginia … the people who live and vacation here cherish the sound of the woods and the views of the mountains and river.”
About the Farms, on the new site
The office & Community Center
  • 6401 Howellsville Road
    Front Royal, VA 22630
  • (540) 837-2068
  • Walk-in hours: Thursdays, 10:00 AM – 2:00 PM

General Membership Meetings are held here every month, and every owner is welcome.

03Governance, in the open

Run by the people who show up.

Owners elect a Board of Directors by district, much of the work happens in committees any owner can join, and the membership meets every month. The site gives each of them a home, and shows owners where they fit.

Board of Directors

Directors listed by voting district, each with their role and a portrait where there is one, and a plain guide to how the community is divided.

Mt. LakeRidgeRiverviewAt-Large

Committee Corner

Seven committees, from Roads and Common Properties to Recreation, Planning, Finance, Public Relations and Nominating, each with what it does and when it meets.

7 committeesVolunteers welcome

Meetings & Minutes

General and executive meetings with links to their approved minutes, plus an agendas page and a minutes page that hold the archive.

AgendasMinutesArchive

And the rest of the site

Sanitary District & Roads

How the roads are funded and maintained through the Warren County district, and how to report a problem.

Capital Improvement Plan

The long-term plan for roads and properties, and how an owner's idea makes its way into it.

Common Properties & Lakes

Spring Lake, Lake of the Clouds, the boat landing, the river parks and the Community Center.

Our History

How a weekend community established in 1970 grew into a place of full-time homes as well as retreats.

Resources

Warren and Clarke County offices, public safety and state services, gathered in one place.

Contact the office

A contact form, the address, phone and walk-in hours, and a map to the Community Center.

04Built to grow

Content today. An admin tomorrow.

Every page reads its content through one typed interface. Today it is backed by plain content files in the repository. A Supabase schema already mirrors it, so a client-editable admin can take over later without changing a single page.

The content

Typed files under content/

Site settings and navigation, the long-form pages, Farm News, the board and committees, events, meetings, documents, forms, resources and payment types.

site.tsnews.tsdocuments.ts…

The seam

lib/data: one interface, 20 methods

getNews, getDocuments, getUpcomingEvents, getMeetings, getForms and the rest. Nothing in the UI imports content directly.

Today

Static provider

Reads the content files. The default, and what the site runs on now.

Later

Supabase provider

A 15-table schema mirrors the types, with tables for form submissions, payments and redirects too. Its methods are stubbed, ready to fill in.

The switch
// lib/data/index.ts
export const db: DataProvider =
  process.env.DATA_SOURCE === "supabase"
    ? supabaseProvider
    : staticProvider;
The real line that picks the source. Once the Supabase provider is filled in and its tables are seeded, this one variable moves every page onto the database.
Moving in without losing the mail
  • /farm-news/news
  • /farm-news/:slug/news/:slug
  • /calendar-of-events/calendar
  • /committee-corner/committees
  • /contact-posf/contact
  • /category/meeting-minutes/meetings/minutes

Addresses from the old WordPress site answer with a permanent redirect to their new homes, so bookmarks and search results keep working. Six of the nine are shown.

The plumbing

Forms, checked and emailed

Zod checks every submission, a hidden honeypot field turns bots away without a puzzle, and Resend emails it to the office. With no key set, it logs instead, so the site runs anywhere.

Payments, handed off

The iPOSpays hosted-page flow lives in one file: start the payment, send the owner to the secure card page, bring them back to a success or failure page. Until the keys are in, the page points owners to the current payment portal.

Ready for search

Per-page titles, descriptions and share cards; structured data for the association, its events, news and breadcrumbs; a sitemap, robots.txt and a generated share image.

Feeds

An RSS feed for Farm News and an .ics feed for the calendar, both built from the same content as the pages.

Times that stay put

Event times are pinned to Eastern time, so a 10:00 AM meeting reads 10:00 AM wherever the server happens to run.

05The build

Designed and built by WIIWID.

A design system the code calls Refined Naturalist: deep forest green, warm sand, a river-blue accent and a sparing clay. Fraunces for headings, Newsreader for reading, and Libre Franklin for the small working parts.

The Shenandoah Farms sign: a painted mountain valley and river framed in charcoal, reading Welcome to Shenandoah Farms, Est. 1970
The sign. The community's logo, remastered for the new site: the painted valley and river, the ribbon, and Est. 1970.
The palette
  • Forest 900#13241b
  • Forest 700#23402f
  • Forest 500#3a6249
  • Forest 200#aec7b4
  • River 500#3d7183
  • River 200#a8c8d1
  • Sand 50#faf7f0
  • Sand 200#ece0cb
  • Sand 400#cbb488
  • Clay 500#a6633f
The type
  • A mountain community along the river.Fraunces · Headings
  • Two lakes, riverfront common land, and neighbors.Newsreader · Reading
  • Pay Dues · Documents · MeetingsLibre Franklin · Labels & buttons
Ridgeline art, five moods
  • Dawn ridge
  • Lake
  • River
  • Forest
  • Meadow

One drawn landscape in five palettes. The site paints it wherever a photo is missing or fails to load, so a page never shows a broken image.

Little details
  • An announcement strip over the header, set in one settings file
  • A header that turns from clear to solid sand as you scroll
  • A skip-to-content link and river-blue focus rings for keyboard users
  • Motion and smooth scrolling that step aside for Reduce Motion
  • A Download PDF option beside every online form
Under the hood
  • Next.js 16
  • React 19
  • TypeScript
  • Tailwind CSS v4
  • react-markdown
  • Zod
  • Resend
  • iPOSpays
  • Supabase-ready schema
  • Vercel
  • Fraunces · Newsreader · Libre Franklin

Pages render on the server with React Server Components, and the home page and calendar refresh every hour. Long-form pages are written in Markdown. The site needs no settings to run: without keys, forms log to the console and the Pay page shows its fallback.

Welcome to Shenandoah Farms, Est. 1970: the community's sign, with mountains over the river

Two lakes, one river, one place for every owner.

The new site is in production and will launch at shenandoahfarms.org. Want one like it for your community, club or association?

shenandoahfarms.orgIn Production