← back to Homesonspec
feat(web): HomesOnSpec attribution on builder contact — 'mention you saw it on HomesOnSpec.com'
576365d92aadc676d00e4dcf5636f73a80d43669 · 2026-08-03 07:55:29 -0700 · Steve Abrams
Adds a prompt under the Call button (💬 mention HomesOnSpec.com when you call) and
pre-fills the contact-form message with the same attribution, so every builder
lead — phone or form — tells the builder the referral source. Typecheck clean.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Files touched
M apps/web/src/app/homes/[id]/LeadForm.tsxM apps/web/src/app/homes/[id]/page.tsx
Diff
commit 576365d92aadc676d00e4dcf5636f73a80d43669
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Mon Aug 3 07:55:29 2026 -0700
feat(web): HomesOnSpec attribution on builder contact — 'mention you saw it on HomesOnSpec.com'
Adds a prompt under the Call button (💬 mention HomesOnSpec.com when you call) and
pre-fills the contact-form message with the same attribution, so every builder
lead — phone or form — tells the builder the referral source. Typecheck clean.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---
apps/web/src/app/homes/[id]/LeadForm.tsx | 9 ++++++++-
apps/web/src/app/homes/[id]/page.tsx | 13 +++++++++----
2 files changed, 17 insertions(+), 5 deletions(-)
diff --git a/apps/web/src/app/homes/[id]/LeadForm.tsx b/apps/web/src/app/homes/[id]/LeadForm.tsx
index f30809cc..6f95bb1d 100644
--- a/apps/web/src/app/homes/[id]/LeadForm.tsx
+++ b/apps/web/src/app/homes/[id]/LeadForm.tsx
@@ -11,7 +11,14 @@ export default function LeadForm({
communityId: string;
builderName: string;
}) {
- const [form, setForm] = useState({ name: "", email: "", phone: "", message: "" });
+ // Pre-fill the message with the HomesOnSpec attribution so every inquiry tells
+ // the builder where the lead came from (matches the "mention it when you call" prompt).
+ const [form, setForm] = useState({
+ name: "",
+ email: "",
+ phone: "",
+ message: "I saw this home on HomesOnSpec.com and would like more information.",
+ });
const [state, setState] = useState<"idle" | "sending" | "done" | "error">("idle");
if (state === "done") {
diff --git a/apps/web/src/app/homes/[id]/page.tsx b/apps/web/src/app/homes/[id]/page.tsx
index 3935168d..e4ad3096 100644
--- a/apps/web/src/app/homes/[id]/page.tsx
+++ b/apps/web/src/app/homes/[id]/page.tsx
@@ -299,10 +299,15 @@ export default async function HomeDetailPage({ params }: { params: Promise<{ id:
This builder is actively selling this home — send a note and they’ll follow up. No obligation.
</p>
{home.community.salesPhone ? (
- <a href={`tel:${home.community.salesPhone.replace(/[^0-9+]/g, "")}`}
- className="btn-accent mt-3 w-full justify-center" data-testid="sales-phone">
- 📞 Call {home.community.salesPhone}
- </a>
+ <>
+ <a href={`tel:${home.community.salesPhone.replace(/[^0-9+]/g, "")}`}
+ className="btn-accent mt-3 w-full justify-center" data-testid="sales-phone">
+ 📞 Call {home.community.salesPhone}
+ </a>
+ <p className="mt-2 rounded-lg bg-brand-50 px-3 py-2 text-center text-xs font-medium text-brand-800" data-testid="mention-hos">
+ 💬 When you call, mention you saw it on <span className="font-semibold">HomesOnSpec.com</span>
+ </p>
+ </>
) : null}
<div className="mt-3">
<LeadForm homeId={home.id} communityId={home.communityId} builderName={home.builder.name} />
← 1f01a75d feat(toll): wave-2 QMI home ingestion (adapter v2.0.0) — pla
·
back to Homesonspec
·
feat(toll): raise recurring QMI crawl cap 400->2500 (Steve-a d858b396 →