
Who
I build local sites for operators who already have customers and an Elementor habit. Appalachian Estate Sales is Rene' Rickman Ballard's liquidation and downsizing practice in Waynesville: Haywood through Henderson Counties, phone on the header, Facebook already running the sale calendar.
The audience for the business is families mid-transition: bereavement, assisted living moves, divorce. The audience for this write-up is anyone shipping an Elementor-to-App-Router rebuild who still needs lead capture to work on day two.
What
I rebuilt the marketing site as Next.js 16.1.7 (App Router), React 19, Tailwind v4, Bun, shadcn/ui, under private Hustle-Launch/appestatesales-com. Package.json still names the app web at 0.1.0.

What exists in code and on the live host:
- Seven routes: home, about-rene, estate-sale-services, estate-sales-process, previous-estate-sales, upcoming-estate-sales, contact-us
- Layout stack: Header (logo + porch swing + phone), cyan Sidebar nav, Footer contact form, floating mobile bar
- Design tokens pulled from the Elementor screenshots: cream ground, cyan nav, coral subscribe/CTA
- Markdown under
content/as the copy source of truth - Schema.org LocalBusiness + FAQ JSON-LD (
app/schema.ts) pointing athttps://appestatesales.com - Convex tables
leadsandsubscriberswith email indexes /api/contactand/api/subscribewriting Convex + Resend (notify@uncap.us to AES Gmail + a michaelmonetized lead alias)- Sentry project
appestatesales, PostHog provider slot, Blacksmithship.ymlprebuilt deploy - Estate Sale Liquidator Pros badge on the home article
What is still a stand-in: Previous and Upcoming pages embed the Facebook Page plugin for estate.tag.sales.wnc. There is no Convex-backed sales gallery yet. README migration checklist still marks Convex and Resend as "coming soon" even though both paths are in the tree.

Where
Live: www.appestatesales.com. HTTP 200 on pack day, X-Robots-Tag: index, follow. Apex redirects 307 to www. Vercel alias appestatesalescom.vercel.app serves the same prerender.
vercel.json turns off git auto-deploy for main/master; production moves through Blacksmith + vercel deploy --prebuilt.
Geography in schema and copy: Waynesville NC 28786, serving Haywood, Buncombe, Jackson, Macon, Swain, Henderson. Social sameAs: Facebook + Instagram.
One liquidator's marketing site for Appalachian Estate Sales.
When
2026-03-17. Init (916df66). Same afternoon: images + Resend contact wiring, Convex and Vercel link, test deploy, styling/logo pass, standards.css + shadcn forms, Schema.org LocalBusiness + FAQ. Densest product day.
2026-03-18. viewTransition typing fix, sidebar styles, styling cleanup, Convex wiring cleanup, mobile bar "needs work", polish, Resend audience-id fix, build optimizations.
2026-03-19 10:08 AM ET. 669a106: Facebook embed done. Upcoming/previous now lean on the social feed.
May 13–15. shipprep standards install (twice) then revert (twice). Churn, not product.
2026-05-21. Apply shipprep observability and Blacksmith deploys; harden Sentry runtime (env-driven DSN, no default PII).
2026-08-08 6:54 AM ET. 7a87d72: set X-Robots-Tag to index, follow on Vercel. HEAD. Twenty-four commits on main.

Why
Elementor migrations fail two ways: pixel-perfect CSS with a dead contact form, or a modern stack with a blank homepage. I aimed at the honest middle: familiar cream/cyan layout clients recognize, seven pages of real copy, and lead capture that actually posts to Convex and Resend.
The sales calendar still lives on Facebook. The robots header asks Google to index a site whose previous-sales gallery is an iframe. That gap is the field note.
Engagement Q: If you run estate sales in Western North Carolina, would you trust a Next rebuild that still embeds your Facebook page for the calendar, or do you refuse to ship until Convex owns upcoming and previous sales?
