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.
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.
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.
| Element | Side A — agency | Side 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 |
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.
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.
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>
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>
All optional. Everything defaults to a neutral placeholder, so a wrong or missing parameter never breaks the widget.
| Parameter | Effect | Example |
|---|---|---|
partner | Partner name in the heading, the request panel and the footer.
Defaults to [Partner Name]. | ?partner=The%20Orlando%20Connect |
accent | Accent colour, 6-digit hex, no #. Recolours buttons,
headings and highlights. Defaults to green. | &accent=F26A21 |
cta | Partner'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 |
email | Adds an email button with the service name pre-filled in the subject line. | &email=sales@yoursite.com |
phone | Adds a click-to-call button. | &phone=4075551234 |
intro | Set to 0 to hide the widget's own heading, for a
partner who already has one on the page. | &intro=0 |