[object Object]

← 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

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&rsquo;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 →