๐Ÿ“… Monday, September 28, 2026  |  ๐ŸŒค๏ธ Central Florida: 84ยฐF Sunny  |  ๐Ÿ“ก 26 Local Communities Connected
Two sides · one catalog

Agency view vs. Customer view

The same twenty-one services, the same prices, shown twice. Side A is what an agency or media partner reads while deciding whether to resell — it necessarily shows the partner-share structure. Side B is the embeddable widget that partner drops onto their own website for their own customers: retail prices only, no share structure of any kind, and their name on it instead of ours. Both are live right now — scroll inside either panel.

Side A · agency only

Partner rate sheet

Audience: an agency deciding whether to resell. Shows the partner-share tiers and the commercial terms. This must never be shown to an end customer.

Already live · unchanged · earlier standalone build (the fuller one is login-gated, so it cannot be framed) Open standalone ↗  ·  Native version on this site →
Side B · customer-facing

Embeddable widget

Audience: the partner's own end customers. Retail prices only. Zero commission language. Partner name and accent colour set by URL parameter. This is the iframe.

New · built 28 Sep 2026 Open standalone ↗
ElementSide A — agencySide B — customer
Service prices 27 services, list price Identical — same 27 prices, not one number changed
Partner share tiers Shown (base tier + volume ladder) Absent — no percentage of any kind appears on the page
Commercial terms Six-clause partner agreement summary Absent — replaced by a customer-facing quote note
Rate basis / catalog total Per-delivered-hour basis and full-book total shown Absent
How partners are paid Three partner classes compared Absent
Internal price-status labels “held pending scope rebuild”, “provisional”, invoice references Absent — rewritten as customer-facing scope notes
Branding NeedAWebNow, primary Partner name, primary — “Powered by needaweb” as a small footer credit only
Page chrome Full standalone page with masthead None — no nav, no shell, drops into a content area

Side B, embedded for real

This is not a screenshot and not a mockup — it is the actual widget, loaded from preview.needawebnow.com into this WordPress page through the exact <iframe> snippet below, auto-sizing its own height. Any partner's site can do the same.

ⓘ Live iframe — partner name set to “The Orlando Connect”, accent colour set to the Orlando Connect orange, both by URL parameter. Nothing on it is hardcoded.

The embed snippet

Hand this to a partner. It is plain HTML — it works in WordPress, Squarespace, Wix, Shopify, Webflow or a hand-written page. No account, no script tag, no build step.

1 · Basic — works everywhere, fixed height, widget scrolls internally

The safe default. Paste it and it works.

<!-- Digital services catalog -->
<iframe
  src="https://preview.needawebnow.com/wl-catalog/embed/?partner=Your%20Company%20Name"
  title="Digital Services"
  width="100%" height="2400"
  style="border:0;display:block;width:100%;"
  loading="lazy"></iframe>

2 · Auto-height — no inner scrollbar, grows with the content

The widget posts its own height to the parent page. Use this where you can add a <script> tag. It is the version running on this page.

<iframe id="nwn-services"
  src="https://preview.needawebnow.com/wl-catalog/embed/?partner=Your%20Company%20Name"
  title="Digital Services"
  style="border:0;display:block;width:100%;min-height:900px;"
  loading="lazy"></iframe>

<script>
window.addEventListener('message', function (e) {
  if (e.origin !== 'https://preview.needawebnow.com') return;
  if (!e.data || e.data.type !== 'nwn-embed-height') return;
  var f = document.getElementById('nwn-services');
  if (f) f.style.height = (e.data.height + 24) + 'px';
});
</script>

3 · URL parameters — how a partner white-labels it

All optional. Everything defaults to a neutral placeholder, so a wrong or missing parameter never breaks the widget.

ParameterEffectExample
partnerPartner name in the heading, the request panel and the footer. Defaults to [Partner Name].?partner=The%20Orlando%20Connect
accentAccent colour, 6-digit hex, no #. Recolours buttons, headings and highlights. Defaults to green.&accent=F26A21
ctaPartner's own quote/contact page. Buttons link straight to it, with ?service= appended so they know which service was clicked. &cta=https://yoursite.com/contact
emailAdds an email button with the service name pre-filled in the subject line.&email=sales@yoursite.com
phoneAdds a click-to-call button.&phone=4075551234
introSet to 0 to hide the widget's own heading, for a partner who already has one on the page.&intro=0
Ordering is not wired yet. Side B's buttons capture which service the customer clicked and hand them to the partner's own contact route — a link, an email or a phone call. Taking payment inside the widget is a separate build, and nothing on this page pretends otherwise.