Skip to content

FL-1: refresh website copy and positioning - #1

Open
svc-finitelabs[bot] wants to merge 3 commits into
mainfrom
agent/FL-1-refresh-copy-positioning
Open

FL-1: refresh website copy and positioning#1
svc-finitelabs[bot] wants to merge 3 commits into
mainfrom
agent/FL-1-refresh-copy-positioning

Conversation

@svc-finitelabs

Copy link
Copy Markdown

Fixes FL-1\n\nRewrites the homepage/site copy to make the positioning more specific, human, and credible.

@derek-miller

Copy link
Copy Markdown
Contributor

This is terrible

@svc-finitelabs

Copy link
Copy Markdown
Author

Fair. The first pass was still trying too hard.

I pushed a tighter rewrite that is a lot more plainspoken and specific:

  • simpler hero and positioning
  • less agency/marketing language
  • cleaner About and contact copy
  • product blurbs rewritten to sound more concrete

Latest commit: 6cb5f91

Take another look. If it is still off, I can keep cutting until it sounds like the company instead of copywriting.

@derek-miller derek-miller left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The rewrite is a real improvement — the old copy leaned on "cutting-edge / innovative / push the boundaries", and the replacement is concrete about what the shop actually does. The Control4 card in particular ("when Control4 needs to talk to modern APIs, custom hardware, or systems it was never built to understand") is the most useful sentence on the page.

I checked the mechanics and they're sound:

  • The hero CTA repoint from #about to #products is wired correctly — showTab('products') matches <div id="products" class="tab-content">, and all five showTab() targets still resolve to real tab ids.
  • The new <p class="mb-0"> in the Email block renders fine: .contact-info is display: flex; align-items: flex-start with .contact-details { flex: 1 }, so the extra line stacks under the address inside the details column rather than fighting the icon.

One blocking issue

The meta description ends with "not generic agency copy."

content="Finite Labs builds custom software, integrations, and Control4 solutions for projects that need real engineering, not generic agency copy."

That clause is meta-commentary about the copywriting brief, aimed at whoever was rewriting the page — it isn't addressed to a prospective client. It's also the one string on the site most likely to be read out of context: it's what Google renders under the result, so the pitch becomes a swipe at other agencies. Length is fine (138 chars); it's the last six words that need to go. Something like:

content="Finite Labs builds custom software, integrations, and Control4 drivers for teams that need work which holds up in production."

Two nits, non-blocking

  • "When to Reach Out" now heads a card that is still Email / LinkedIn / GitHub — i.e. where, not when. The one added line under Email carries the "when", but the other two entries don't. Either keep the heading honest ("Contact Information", "Reach Out") or move the fit line up to the card level.
  • Line 602 still reads "Expand your smart home capabilities with affordable DIY components" after the home card was renamed from "Smart Home" to "Automation Systems". Defensible as-is since it's describing DIY gear, but it's the one surviving instance of the term the PR otherwise retired.

- meta description: drop the 'not generic agency copy' clause, which was
  meta-commentary on the rewrite brief rather than a pitch, and is the string
  Google renders under the search result
- move the fit line from inside the Email entry up to the card level, so the
  'When to Reach Out' heading is answered by the card rather than by one of
  three where-to-reach-us entries
- retire the last 'smart home' instance in the ESPHome bullet list
@svc-finitelabs

svc-finitelabs Bot commented Aug 1, 2026

Copy link
Copy Markdown
Author

Addressed all three in 75b4bb9.

Blocking: meta description. Took your replacement verbatim:

content="Finite Labs builds custom software, integrations, and Control4 drivers for teams that need work which holds up in production."

125 chars, so comfortably inside the ~155 char SERP truncation.

Nit 1: "When to Reach Out". Went with moving the fit line up rather than renaming the heading. The card now reads: heading, then "A good fit for custom software, integrations, automation systems, and Control4 work.", then the three channels. That makes the heading honest without giving up the "when" framing, and it stops the fit line from reading as if it only applies to email.

The <p class="mb-0"> is gone, so the Email entry's markup is back to exactly what is on main. That also matters for spacing: LinkedIn and GitHub use a plain <p>, so leaving mb-0 on Email alone would have made that one row tighter than the other two.

Nit 2: line 602. Now "Expand your automation system with affordable DIY components". Keeps the DIY gear meaning and matches the renamed card. Zero instances of "smart home" left on the page.

What I checked. The document parses with no unclosed or mismatched tags. All six showTab() targets resolve, including home, which a grep for class="tab-content" misses because it is class="tab-content active". .card.h-100 is display: flex; flex-direction: column, so the new card level <p> stacks between the <h3> and the first .contact-info with normal margins.

What I did not check. I could not render the page: file: URLs, localhost, and the host browser are all blocked in this sandbox, so the contact card layout is reasoned from the CSS rather than seen. Worth a glance next time you have the preview open, though it is a plain block level <p> in a column flex container.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant