Made some decisions and moved towards the sales-funnelification of the site
This commit is contained in:
parent
9e42a8c049
commit
691d727136
11 changed files with 321 additions and 125 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
|
@ -2,3 +2,6 @@
|
||||||
.DS_Store
|
.DS_Store
|
||||||
Thumbs.db
|
Thumbs.db
|
||||||
*.swp
|
*.swp
|
||||||
|
|
||||||
|
# Local screenshot scratch (see .shots/shoot.sh); never part of the site
|
||||||
|
.shots/
|
||||||
|
|
|
||||||
15
contact.html
15
contact.html
|
|
@ -87,8 +87,19 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
<label for="contactSubject" class="form-label">Subject <span class="text-muted fw-normal">(optional)</span></label>
|
<label for="contactSubject" class="form-label">What do you want to talk about?
|
||||||
<input type="text" class="form-control" id="contactSubject" name="subject">
|
<span class="text-brand" aria-hidden="true">*</span></label>
|
||||||
|
<select class="form-select" id="contactSubject" name="subject" required>
|
||||||
|
<option value="" selected disabled>Choose one</option>
|
||||||
|
<option value="Book a Project Clarity Session">Book a Project Clarity Session</option>
|
||||||
|
<option value="Start a website project">Start a website project</option>
|
||||||
|
<option value="Logo or brand identity">Logo or brand identity</option>
|
||||||
|
<option value="Print design">Print design</option>
|
||||||
|
<option value="3D modeling">3D modeling</option>
|
||||||
|
<option value="Writing, copy, or editing">Writing, copy, or editing</option>
|
||||||
|
<option value="Something else">Something else</option>
|
||||||
|
</select>
|
||||||
|
<div class="invalid-feedback">Please choose a topic.</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="mb-3">
|
<div class="mb-3">
|
||||||
|
|
|
||||||
|
|
@ -227,6 +227,27 @@ a { text-decoration-thickness: 1px; text-underline-offset: 2px; }
|
||||||
}
|
}
|
||||||
.card-service:hover { box-shadow: 0 0.5rem 1rem rgba(var(--brand-green-rgb), 0.2); }
|
.card-service:hover { box-shadow: 0 0.5rem 1rem rgba(var(--brand-green-rgb), 0.2); }
|
||||||
|
|
||||||
|
/* --- Offer (services.html): fact pills and the terms block --------------- */
|
||||||
|
.pill {
|
||||||
|
display: inline-block;
|
||||||
|
padding: 0.3rem 0.85rem;
|
||||||
|
border-radius: 999px;
|
||||||
|
background-color: var(--brand-soft);
|
||||||
|
color: var(--brand-green-deep);
|
||||||
|
font-weight: 600;
|
||||||
|
font-size: 0.9rem;
|
||||||
|
}
|
||||||
|
.pill--ink {
|
||||||
|
background-color: rgba(var(--brand-cream-rgb), 0.12);
|
||||||
|
color: var(--brand-cream);
|
||||||
|
}
|
||||||
|
.offer-terms {
|
||||||
|
margin-top: 2.5rem;
|
||||||
|
padding-top: 2rem;
|
||||||
|
border-top: 1px solid rgba(0, 0, 0, 0.08);
|
||||||
|
}
|
||||||
|
.eyebrow-cream { color: var(--brand-green) !important; }
|
||||||
|
|
||||||
.gallery-caption {
|
.gallery-caption {
|
||||||
font-size: 0.9rem;
|
font-size: 0.9rem;
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
|
|
|
||||||
|
|
@ -82,7 +82,7 @@
|
||||||
form.classList.remove("was-validated");
|
form.classList.remove("was-validated");
|
||||||
showStatus("Thanks, your message is on its way. We'll get back to you soon.", "success");
|
showStatus("Thanks, your message is on its way. We'll get back to you soon.", "success");
|
||||||
} else {
|
} else {
|
||||||
showStatus(data.message || "Something went wrong. Please try again, or email us directly.", "danger");
|
showStatus(data.message || "Something went wrong and your message did not send. Please try again in a moment.", "danger");
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(function () {
|
.catch(function () {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
# Active Context - 2RE03 Portfolio Site
|
# Active Context - 2RE03 Portfolio Site
|
||||||
|
|
||||||
> Current focus, recent changes, next steps, and active decisions.
|
> Current focus, recent changes, next steps, and active decisions.
|
||||||
> Last updated: 2026-09-22.
|
> Last updated: 2026-10-01.
|
||||||
|
|
||||||
## Working Agreements (read first)
|
## Working Agreements (read first)
|
||||||
- **Do not edit files outside the project folder.**
|
- **Do not edit files outside the project folder.**
|
||||||
|
|
@ -10,9 +10,15 @@
|
||||||
- Until approval, leave finished work in the working tree as uncommitted changes, and say plainly what is sitting there waiting.
|
- Until approval, leave finished work in the working tree as uncommitted changes, and say plainly what is sitting there waiting.
|
||||||
|
|
||||||
## Current Work Focus
|
## Current Work Focus
|
||||||
**Everything to date is live, and the sales funnel is now in planning.** A working static site on a locally vendored Bootstrap 5.3.3, with custom CSS/JS and a live Web3Forms contact page, a **Collins-inspired Case Studies feature** (typographic index + 10 detail pages), the first copy pass out of `memory-bank/todo.md` (homepage closing CTA, a **Workflow** band on `services.html`, the work-page hook), the favicon and social card, and captions on all 26 `work.html` gallery figures - re-worded on 2026-09-22 to the scope the user confirmed, which also moved the Urban Moto earplug article and the YLEM Journal cover into the **Words** gallery. All of it shipped in **`8a7c3ea`** and was verified live. The live work is therefore done; what is in progress is the **sales-funnel redesign**, now planned in `memory-bank/sales-funnel-plan.md` and blocked on the user defining the offer before any Funnel copy is written. Still open around it: user sign-off on the live copy, confirmation of the caption names read off the artwork, and captions for the case-study grids.
|
**Everything to date is live, and the sales funnel is now in planning.** A working static site on a locally vendored Bootstrap 5.3.3, with custom CSS/JS and a live Web3Forms contact page, a **Collins-inspired Case Studies feature** (typographic index + 10 detail pages), the first copy pass out of `memory-bank/todo.md` (homepage closing CTA, a **Workflow** band on `services.html`, the work-page hook), the favicon and social card, and captions on all 26 `work.html` gallery figures - re-worded on 2026-09-22 to the scope the user confirmed, which also moved the Urban Moto earplug article and the YLEM Journal cover into the **Words** gallery. All of it shipped in **`8a7c3ea`** and was verified live. The live work is therefore done; what is in progress is the **sales-funnel redesign**, now planned in `memory-bank/sales-funnel-plan.md`. The offer blocker is **cleared**: the user answered the offer sheet on 2026-10-01 (name, promise, inclusions, duration, price band, what the client supplies, revision rounds, ownership, the paid diagnostic, the floor, the after-the-form flow and one outcome line per case study) and `memory-bank/offer-draft.md` has been reconciled against those answers, so the funnel copy can now be drafted and then built. The last offer-sheet question was answered on 2026-10-01: **deposits and milestones are both stated** (item 9), so nothing about the commercial terms is left open. Still open around it: user sign-off on the live copy, confirmation of the caption names read off the artwork, and captions for the case-study grids. The published-proof question (offer-sheet item 5) was settled on 2026-10-01 as **none yet**: no client has agreed to a name, quote, logo or identifiable number, so the proof stage ships as named case studies plus the transformation outcome lines only, adding nothing new client-attributable. **The `services.html` red pen came back on 2026-10-01 and is applied:** the web-craft paragraph was cut from the offer block (the meta rewrite stayed), and `contact.html`'s free-text subject field is now a required topic dropdown whose selection is the email subject line. **`index.html` is the next page to build**; `contact.html`'s Block D is unblocked (the payment terms are settled) and there is **no scheduling link**: a written enquiry is enough, the form is the only path, and the site publishes no email address.
|
||||||
|
|
||||||
## Recent Changes
|
## Recent Changes
|
||||||
|
- **2026-10-01** - **Five funnel answers closed the offer, dropped the scheduling link, and removed a promise the site could not keep.** The user answered: (1) **deposits and milestones are both stated** (offer-sheet item 9, the last open offer question), so the commercial terms can be written and `contact.html`'s Block D is unblocked; (2) the secondary path is **not a booking link** (a written enquiry is enough), so the **scheduling link is dropped** from `offer-draft.md`, `sales-funnel-plan.md` and `todo.md`, and the form's `Book a Project Clarity Session` option is the booking path instead (`services.html`'s `Book a Clarity Session` button already pointed at `contact.html`, so nothing needed rewiring); (3) **Umami will be self-hosted**, which the user is setting up, so the snippet and the conversion event stay pending rather than dropped; (4) the topic dropdown's options and phrasing are **approved as built**; and (5) **no email address is published** - "just make it contact us directly and use the form" - which changed one production line, because `js/main.js`'s submit-failure fallback offered to "email us directly" when the site has no address to offer. It now reads "Something went wrong and your message did not send. Please try again in a moment." That is the only string changed, and `js/main.js` parses clean under gjs (SpiderMonkey). Note for the harness: `node` is **not** installed on this machine, so the `node --check` wording in older entries no longer applies; see `techContext.md` -> Tool Usage Patterns for the gjs substitute. Still deferred by the user for a later session: proof permissions, case-study name confirmations, images (Urban Moto hero, grid captions, logo, IKEHU video, homepage proof-strip photos) and outcome numbers. Also new this session: a tested screenshot harness at `.shots/shoot.sh` plus `.shots/trim.py`, living in the untracked `.shots/` scratch folder and documented in `techContext.md`. **Uncommitted.**
|
||||||
|
|
||||||
|
- **2026-10-01** - **The `services.html` red pen came back, both edits landed, and the contact form's subject field became a routing dropdown.** Three answers and two production changes: (1) the web-craft paragraph was **cut** from the offer block rather than kept folded in, so the offer column now runs eyebrow -> h2 -> promise -> three fact pills -> `Start a project` / `Not ready for a project?`; (2) the meta and `og:description` rewrite **stayed** as drafted; and (3) `contact.html`'s free-text `Subject (optional)` input became a **required `<select name="subject">` labelled "What do you want to talk about?"**, whose selected value becomes the Web3Forms email subject line. The seven options are `Book a Project Clarity Session`, `Start a website project`, `Logo or brand identity`, `Print design`, `3D modeling`, `Writing, copy, or editing` and `Something else`, behind a disabled `Choose one` placeholder, with an `invalid-feedback` line matching the other required fields. This needed **no JavaScript change**: `js/main.js` already posts `new FormData(form)`, and per the Web3Forms docs ("Email Subject line") the field must be `name="subject"` and may be user-filled rather than a hidden input, so a `<select>` qualifies. Two consequences to keep in view: the topic is consumed as the subject line, so if it should also appear in the message body a second (duplicated) field would be needed, and the field is now **required**, which is a small friction the user did not explicitly ask for and can be reverted by dropping `required`. Verified: tag balance clean across all 16 pages, every reference resolves, no em/en dashes or curly quotes in our files, and headless-Firefox screenshots of `contact.html` at 1280px and 390px plus `services.html` at 1280px. `services.html`, `contact.html` and `css/style.css` are uncommitted.
|
||||||
|
- **2026-10-01** - **`services.html` was rebuilt around the offer, the first funnel page to ship, and is waiting on the user's red pen.** Funnel Blocks A and B landed: the "Web Design" section became **The 2RE03 Website Launch** (the promise, the six inclusions, three fact pills, what you supply, what you own, `Start a project` plus `Not ready for a project?`), and **The Project Clarity Session** sits below it as a dark card ($250, 60 to 90 minutes, `Book a Clarity Session`, credited in full within 30 days). The web-craft detail (hand-coding, WordPress, hosting, domain, maintenance) was folded into the offer's supporting paragraph rather than dropped, the capability grid stayed as "Also on the bench", the Process, Workflow and closing CTA bands were left alone, and the meta and `og:description` now name the offer and the price band. New CSS in `css/style.css`: `.pill`, `.pill--ink`, `.offer-terms`, `.eyebrow-cream`. Verified the same way as the caption passes: tag balance clean, no em dashes in our files, every reference resolves across the 16 pages, and full-page screenshots at 1280px and 390px. `index.html`, `contact.html`, the case-study outcome lines, `thank-you.html`, the scheduling link and the Umami snippet are all untouched; `services.html` and `css/style.css` are uncommitted.
|
||||||
|
- **2026-10-01** - **The last proof question was settled as `none yet`, which makes the proof stage buildable without inventing anything.** Asked whether any client had agreed to be named, quoted, shown or given a logo, the user answered **not yet**. The permission *rule* therefore stands (ask first, publish nothing client-attributable without a yes), and **no testimonial, client logo, metric or new identifiable detail goes on any page**; the proof stage ships as **the named case studies plus the transformation outcome lines only**, and the client names the case studies already publish simply stay. A clearance can be added later if one arrives. This leaves **deposits/milestones (offer-sheet item 9) as the only open question** before the offer copy ships. No production file was touched; the edits stay in the memory bank.
|
||||||
|
- **2026-10-01** - **The offer sheet was answered and the offer draft reconciled, so the funnel is unblocked.** The user answered all nine offer-sheet questions in `memory-bank/sales-funnel-plan.md` and the follow-up decisions in the same exchange: the secondary low-commitment path is a **scheduling link** alongside the form; the reply voice is **team voice** ("we"), not a named individual; the reply-time promise stays as the live copy has it; there are **no industries or project types to turn down**; all pages must stay consistent with one another; and **Umami** analytics is being set up by the user and will be added later. The settled offer is **The 2RE03 Website Launch** ("We build distinctive websites that make your business easier to understand, trust, and act on."), 4 to 6 weeks, from $3,500 with most projects $4,500 to $7,500, 2 revision rounds, aimed at a 30-minute Project Fit Call, in front of a $250 **Project Clarity Session** credited in full within 30 days. `memory-bank/offer-draft.md` was then **reconciled**: the slot table now reads answered for every slot, the revision count moved 3 -> 2, "Site Assessment" became the **Project Clarity Session**, the price band and floor filled in, and the ten `[[TODO]]` case-study prompts were replaced by the ten transformation outcome lines (honest, because no hard numbers exist). Two items stay open: individual client clearances for published proof (item 5) and whether deposits or milestones are stated (item 9). **No production file was touched**; the only edits are `sales-funnel-plan.md` and `offer-draft.md`, both uncommitted.
|
||||||
- **2026-09-22** - **Deploy verified from the outside, and everything to date is now public.** The user committed the staged batch as **`8a7c3ea`** ("reworked some verbiage and added captions"), pushed it to `origin/main` and uploaded the repo root by hand, so the icon set, the social card, the full `og:*`/`twitter:*` set, copy pass 1, the 26 captions and the re-voiced blurbs are live for the first time. Verified by probe rather than assumed: all 16 pages return 200 with exactly one `og:image` and two `rel="icon"` links each; `img/favicon.svg` (2.1 KB, `image/svg+xml`), `img/favicon.ico` (15 KB), `img/apple-touch-icon.png` (3 KB) and `img/og-image.png` (176 KB) all return 200 with the right MIME types; `/work.html` serves 26 figures and 26 captions, every re-voiced string, and none of the replaced ones; `/services.html` serves the Workflow band and the food-cart copy; and a crawl of all 61 unique local asset paths the pages reference (images, CSS, JS, fonts) found no 404s. Working tree clean, `HEAD` == `origin/main`. The only caveat is that social scrapers may serve a cached preview of the domain until their caches turn over.
|
- **2026-09-22** - **Deploy verified from the outside, and everything to date is now public.** The user committed the staged batch as **`8a7c3ea`** ("reworked some verbiage and added captions"), pushed it to `origin/main` and uploaded the repo root by hand, so the icon set, the social card, the full `og:*`/`twitter:*` set, copy pass 1, the 26 captions and the re-voiced blurbs are live for the first time. Verified by probe rather than assumed: all 16 pages return 200 with exactly one `og:image` and two `rel="icon"` links each; `img/favicon.svg` (2.1 KB, `image/svg+xml`), `img/favicon.ico` (15 KB), `img/apple-touch-icon.png` (3 KB) and `img/og-image.png` (176 KB) all return 200 with the right MIME types; `/work.html` serves 26 figures and 26 captions, every re-voiced string, and none of the replaced ones; `/services.html` serves the Workflow band and the food-cart copy; and a crawl of all 61 unique local asset paths the pages reference (images, CSS, JS, fonts) found no 404s. Working tree clean, `HEAD` == `origin/main`. The only caveat is that social scrapers may serve a cached preview of the domain until their caches turn over.
|
||||||
- **2026-09-22** - **Section copy brought in line with the captions, and the last naming questions settled.** Four `work.html` blurbs were re-voiced so nothing contradicts the caption above it: the **Words** intro ("Editorial, documentation, and sales copy: we write it, we edit it, and we lay it out."), the **App Design** blurb (some pieces were "coded end to end", the rest "built to look real long before they ship"), the **Print** blurb (leads with the ads the gallery shows, keeps flyers, postcards, business cards, letterhead and product design as capability) and the **Logos** intro (", and the occasional title slide", so the Dat Art slide reads as deliberate). The Dat Art caption became "Presentation for Motion Labs" with a matching alt; "a pretzel stand" became **"a food cart"** in `work.html` and `services.html`, matching the render (labelled "Gourmet Pasteles and Churros") and the Upscale Food Cart case study. The user confirmed **YLEM stays in both galleries** and that **`2plus5times3.webp` keeps its name** with the caption `(10 + 2) x 5` authoritative. Verified: all seven new strings render and all five old ones are gone, 26 figures over 26 distinct images with one caption each, tags balance and every reference resolves across all 16 pages, no em dashes, galleries re-measured in headless Chrome (Print and App Design `overflow=0` with both arrows disabled, Words 292px with only "next" enabled) and screenshot-checked at 1280px and 390px. **Staged, awaiting the user's commit.**
|
- **2026-09-22** - **Section copy brought in line with the captions, and the last naming questions settled.** Four `work.html` blurbs were re-voiced so nothing contradicts the caption above it: the **Words** intro ("Editorial, documentation, and sales copy: we write it, we edit it, and we lay it out."), the **App Design** blurb (some pieces were "coded end to end", the rest "built to look real long before they ship"), the **Print** blurb (leads with the ads the gallery shows, keeps flyers, postcards, business cards, letterhead and product design as capability) and the **Logos** intro (", and the occasional title slide", so the Dat Art slide reads as deliberate). The Dat Art caption became "Presentation for Motion Labs" with a matching alt; "a pretzel stand" became **"a food cart"** in `work.html` and `services.html`, matching the render (labelled "Gourmet Pasteles and Churros") and the Upscale Food Cart case study. The user confirmed **YLEM stays in both galleries** and that **`2plus5times3.webp` keeps its name** with the caption `(10 + 2) x 5` authoritative. Verified: all seven new strings render and all five old ones are gone, 26 figures over 26 distinct images with one caption each, tags balance and every reference resolves across all 16 pages, no em dashes, galleries re-measured in headless Chrome (Print and App Design `overflow=0` with both arrows disabled, Words 292px with only "next" enabled) and screenshot-checked at 1280px and 390px. **Staged, awaiting the user's commit.**
|
||||||
- **2026-09-22** - **Captions re-worded to the scope the user confirmed, and two pieces moved to Words.** The user read the captions back against the archive and corrected the scope on six of them: **Back That Ass Up** is not a plain identity but the mark for a **political campaign art show** (which is why it is in US-flag colours), **Mehavior** was **UX and UI**, **(10 + 2) x 5** was **designed and coded** end to end, and the three ads - Loren Kincaid, Macchiarini Metalworks, K.C. Engineering - are all plainly **Print Ad** (capital A, as specified in the brief). **Sam's Rules of Money** is "Book editing and illustrations", which the old "Book cover" hid (the user edited the book *and* its illustrations). Two pieces moved into the **Words** gallery, on the rule that a piece belongs to the category of its deliverable, not of the paper it landed on: `writtenearplugs.webp` ("Article, Urban Moto, February 2007") and `printylemcover.webp` ("Editing and cover design" - the user edited the whole magazine, cover included). Print now holds 3 items, all print ads; Words holds 4, ordered book, magazine, article, guide. Nothing else references those two files, so both galleries were the only edits. Verified: 26 figures over 26 distinct images, one caption each, exactly two references to the moved files (both in Words), tags balance and every reference resolves across the 16 pages, no em dashes, and the carousels were measured in a headless browser - Print is now `scrollWidth == clientWidth` with both arrows disabled (matching App Design, so 3 items leaves no dead control) while Words overflows by 292px with only "next" enabled - plus screenshot checks of the Print and Words bands at 1280px and 390px. Build intermediates in `.tmp-captions/` were deleted. **Uncommitted.**
|
- **2026-09-22** - **Captions re-worded to the scope the user confirmed, and two pieces moved to Words.** The user read the captions back against the archive and corrected the scope on six of them: **Back That Ass Up** is not a plain identity but the mark for a **political campaign art show** (which is why it is in US-flag colours), **Mehavior** was **UX and UI**, **(10 + 2) x 5** was **designed and coded** end to end, and the three ads - Loren Kincaid, Macchiarini Metalworks, K.C. Engineering - are all plainly **Print Ad** (capital A, as specified in the brief). **Sam's Rules of Money** is "Book editing and illustrations", which the old "Book cover" hid (the user edited the book *and* its illustrations). Two pieces moved into the **Words** gallery, on the rule that a piece belongs to the category of its deliverable, not of the paper it landed on: `writtenearplugs.webp` ("Article, Urban Moto, February 2007") and `printylemcover.webp` ("Editing and cover design" - the user edited the whole magazine, cover included). Print now holds 3 items, all print ads; Words holds 4, ordered book, magazine, article, guide. Nothing else references those two files, so both galleries were the only edits. Verified: 26 figures over 26 distinct images, one caption each, exactly two references to the moved files (both in Words), tags balance and every reference resolves across the 16 pages, no em dashes, and the carousels were measured in a headless browser - Print is now `scrollWidth == clientWidth` with both arrows disabled (matching App Design, so 3 items leaves no dead control) while Words overflows by 292px with only "next" enabled - plus screenshot checks of the Print and Words bands at 1280px and 390px. Build intermediates in `.tmp-captions/` were deleted. **Uncommitted.**
|
||||||
|
|
@ -130,7 +136,9 @@
|
||||||
2. **Case-study grid captions** - the main remaining content item. 9 of the 10 detail pages hold a single `figure.card-work` beside the copy and Urban Moto holds a 3-up grid of ads, none of them captioned, and `.card-work` has no caption style yet.
|
2. **Case-study grid captions** - the main remaining content item. 9 of the 10 detail pages hold a single `figure.card-work` beside the copy and Urban Moto holds a 3-up grid of ads, none of them captioned, and `.card-work` has no caption style yet.
|
||||||
3. Confirm the caption names that were read off the artwork (Argent, Drinking About..., D.R.I.V.E., 50 Shades of 2048, '78 Williams, `3dabandoned`, and the unnamed "Sales page").
|
3. Confirm the caption names that were read off the artwork (Argent, Drinking About..., D.R.I.V.E., 50 Shades of 2048, '78 Williams, `3dabandoned`, and the unnamed "Sales page").
|
||||||
4. Assets: a real 2RE03 logo, if one exists (the icon set and social card are done **and live** as of 2026-09-22), and more or real gallery work items, which need artwork nobody has supplied yet.
|
4. Assets: a real 2RE03 logo, if one exists (the icon set and social card are done **and live** as of 2026-09-22), and more or real gallery work items, which need artwork nobody has supplied yet.
|
||||||
5. **Sales-funnel redesign: shape decided, blocked on the offer facts** (2026-09-22). The diagnosis (10 leaks in the current site), the Land -> Recognise -> Believe -> Offer -> Risk reversal -> Convert -> Measure structure, the page-by-page draft and Cline's recommendation are in `memory-bank/sales-funnel-plan.md`; the user accepted the recommendation, so the Offer stage is **one primary offer with a published price band plus a fixed-price diagnostic as the entry step** (decision 34). The fill-in-the-blank copy for `services.html`, `index.html` and `contact.html`, with every remaining `[[slot]]` in one table, is in `memory-bank/offer-draft.md`; as of 2026-09-22 Cline has drafted proposals for all 19 open slots (three offer-name options, a promise, scope bullets derived from `about.html`'s own claims, a "Site Assessment" entry offer, the risk-reversal lines, and ten case-study-specific outcome prompts), leaving six numbers and ten outcome lines bracketed `[[TODO]]` for the user. The next move is the user editing that draft, not code. The remaining Polish items are the low-resolution Urban Moto hero and a possible motion/video section (the IKEHU video is not on this machine).
|
5. **Sales-funnel redesign: the offer is answered and the draft is reconciled, so the next move is copy, then build** (2026-10-01). The diagnosis (10 leaks in the current site), the Land -> Recognise -> Believe -> Offer -> Risk reversal -> Convert -> Measure structure, the page-by-page draft and Cline's recommendation are in `memory-bank/sales-funnel-plan.md`; the Offer stage is **one primary offer with a published price band plus a fixed-price diagnostic as the entry step** (decision 34), now fully specified as **The 2RE03 Website Launch** (4 to 6 weeks, from $3,500, most $4,500 to $7,500, 2 revision rounds) with the **Project Clarity Session** ($250, 60 to 90 minutes, credited in full within 30 days) in front of a 30-minute Project Fit Call (decisions 35 and 36). `memory-bank/offer-draft.md` holds the reconciled slot table and the draft copy for `services.html`, `index.html` and `contact.html`. Next: work through the staged build order (pages first, then `thank-you.html`, the scheduling link and the Umami snippet), with the one remaining open item (deposits/milestones) settled before copy ships (the proof-clearance question is settled as none yet). **Step 1 is done: `services.html` (Blocks A and B) was built on 2026-10-01 and red-penned the same day, and `contact.html`'s subject field became a required topic dropdown** (so the Block D pass on that page is partly underway, though its risk-reversal copy still waits on the deposits/milestones answer and the scheduling link); `index.html` is next. The remaining Polish items are the low-resolution Urban Moto hero and a possible motion/video section (the IKEHU video is not on this machine).
|
||||||
|
|
||||||
|
6. **Two inputs are still needed from the user before the funnel copy is complete:** the deposit percentage and the milestone split (so the payments line can carry a figure), and the deferred proof answers (client permissions, case-study name confirmations, images, outcome numbers), which the user is coming back to in a later session.
|
||||||
|
|
||||||
## Active Decisions & Considerations
|
## Active Decisions & Considerations
|
||||||
|
|
||||||
|
|
@ -170,7 +178,10 @@
|
||||||
| 31 | A section blurb may claim only what the gallery under it actually shows; wider capability lists live on the service cards, not above a gallery | ✅ Done |
|
| 31 | A section blurb may claim only what the gallery under it actually shows; wider capability lists live on the service cards, not above a gallery | ✅ Done |
|
||||||
| 32 | `2plus5times3.webp` keeps its file name; the caption **(10 + 2) x 5** is treated as authoritative, and neither is treated as a typo | ✅ Done |
|
| 32 | `2plus5times3.webp` keeps its file name; the caption **(10 + 2) x 5** is treated as authoritative, and neither is treated as a typo | ✅ Done |
|
||||||
| 33 | The sales-funnel redesign starts from the **offer**, not the layout: the user opted to define what is sold before any funnel copy or structure is written, so the diagnosis, the stage structure and a 9-item offer sheet live in `memory-bank/sales-funnel-plan.md`, and nothing gets built until the offer facts are supplied | ✅ Done (shape settled, see #34) |
|
| 33 | The sales-funnel redesign starts from the **offer**, not the layout: the user opted to define what is sold before any funnel copy or structure is written, so the diagnosis, the stage structure and a 9-item offer sheet live in `memory-bank/sales-funnel-plan.md`, and nothing gets built until the offer facts are supplied | ✅ Done (shape settled, see #34) |
|
||||||
| 34 | The Offer stage is **one primary offer with a published price band, plus a fixed-price diagnostic as the entry step**, with all other capability left as bench depth. Cline recommended this (reasoning in `memory-bank/sales-funnel-plan.md`); the user accepted it on 2026-09-22. Packages (two to four engagements) and consultative/no-price selling are deferred to later stages rather than rejected. The fill-in-the-blank copy lives in `memory-bank/offer-draft.md` | ✅ Decided; awaiting the numbers |
|
| 34 | The Offer stage is **one primary offer with a published price band, plus a fixed-price diagnostic as the entry step**, with all other capability left as bench depth. Cline recommended this (reasoning in `memory-bank/sales-funnel-plan.md`); the user accepted it on 2026-09-22. Packages (two to four engagements) and consultative/no-price selling are deferred to later stages rather than rejected. The copy lives in `memory-bank/offer-draft.md` | ✅ Done; offer facts supplied 2026-10-01 |
|
||||||
|
| 35 | The offer is **The 2RE03 Website Launch**: "We build distinctive websites that make your business easier to understand, trust, and act on.", 4 to 6 weeks, from $3,500 with most projects $4,500 to $7,500, 2 revision rounds, and the client owning the finished work on final payment. The paid entry step is the **Project Clarity Session** ($250, 60 to 90 minutes, credited in full toward a project within 30 days), aimed at a 30-minute Project Fit Call. Full answers in the offer-sheet table in `memory-bank/sales-funnel-plan.md` and the slot table in `memory-bank/offer-draft.md` | ✅ Done 2026-10-01 |
|
||||||
|
| 36 | Funnel specifics settled 2026-10-01, amended the same day: the **secondary path is a written enquiry, not a booking link** (revised from "a scheduling link" when the user answered that a plain email was enough; the topic dropdown is the booking path and no email address is published anywhere on the site); **team voice** ("we") on `contact.html`, not a named individual; the reply-time promise kept as the live copy states it; **no industries or project types turned down**; every page kept consistent with the others; **Umami** analytics chosen, **self-hosted** (the user is setting it up and adding it later). Proof clearances settled 2026-10-01 as **none yet** (no client name, quote, logo, photograph or identifiable number beyond the names already published), so the proof stage ships as named case studies plus the outcome lines only. Nothing about the offer is left open (2026-10-01) | ✅ Done |
|
||||||
|
| 37 | **Both deposits and milestones are stated on the offer** (offer-sheet item 9, answered 2026-10-01), which was the last open offer question. The copy says a project starts on a deposit, payments fall due as agreed milestones are met, and the balance is due on delivery; the deposit percentage and the milestone split are still to be supplied, so no figure goes on a page yet. Client ownership stays tied to "paid in full" | ✅ Done, figures pending |
|
||||||
|
|
||||||
### Open Questions (remaining)
|
### Open Questions (remaining)
|
||||||
1. **Real logo:** the favicon and the Open Graph image were both built on 2026-09-22, but does a real 2RE03 logo file exist anywhere? Nothing has turned up in the repo or the asset backup.
|
1. **Real logo:** the favicon and the Open Graph image were both built on 2026-09-22, but does a real 2RE03 logo file exist anywhere? Nothing has turned up in the repo or the asset backup.
|
||||||
|
|
@ -178,6 +189,8 @@
|
||||||
3. **Gallery content:** more work items, plus captions for the case-study grids? The `work.html` galleries were captioned on 2026-09-22, but several of those names were read off the artwork and need confirming (Argent, Drinking About..., D.R.I.V.E., 50 Shades of 2048, '78 Williams, `3dabandoned`, and the unnamed "Sales page"). The Dat Art filing is settled: the title slide stays in **Logos**, captioned as a presentation rather than a mark.
|
3. **Gallery content:** more work items, plus captions for the case-study grids? The `work.html` galleries were captioned on 2026-09-22, but several of those names were read off the artwork and need confirming (Argent, Drinking About..., D.R.I.V.E., 50 Shades of 2048, '78 Williams, `3dabandoned`, and the unnamed "Sales page"). The Dat Art filing is settled: the title slide stays in **Logos**, captioned as a presentation rather than a mark.
|
||||||
4. **Live URL:** answered, **https://2re03.com/** (recorded 2026-09-22; the host serves `.html` URLs).
|
4. **Live URL:** answered, **https://2re03.com/** (recorded 2026-09-22; the host serves `.html` URLs).
|
||||||
5. **Deploy cadence:** should the new icons and social card go live now, and is deploying a manual upload?
|
5. **Deploy cadence:** should the new icons and social card go live now, and is deploying a manual upload?
|
||||||
|
6. **Published proof:** answered 2026-10-01, **none yet** (see decision 36). No client has agreed to a name, company, testimonial, photograph, logo or identifiable number, and the case studies already publish the client names, so the proof stage ships as named case studies plus the transformation outcome lines only. The permission *rule* stands (ask first): if a clearance arrives later, add it then.
|
||||||
|
7. **Commercial terms:** answered 2026-10-01 (decision 37), **both** are stated. The copy says a deposit starts the project, payments fall due as agreed milestones are met, and the balance is due on delivery. Still to supply: the deposit percentage and the milestone split, so no figure goes on a page until they arrive.
|
||||||
|
|
||||||
## Important Patterns & Preferences
|
## Important Patterns & Preferences
|
||||||
- **Git is user-gated:** never `git commit` or `git push` without explicit approval
|
- **Git is user-gated:** never `git commit` or `git push` without explicit approval
|
||||||
|
|
|
||||||
|
|
@ -1,33 +1,33 @@
|
||||||
# Offer Draft - 2RE03
|
# Offer Draft - 2RE03
|
||||||
|
|
||||||
> Fill-in-the-blank copy for the **Offer** stage of `memory-bank/sales-funnel-plan.md`.
|
> The page-copy draft for the **Offer** stage of `memory-bank/sales-funnel-plan.md`. The shape is settled (user-confirmed 2026-09-22): **one primary offer with a published price band, plus a fixed-price diagnostic as the entry step**, with every other capability left as bench depth. **Offer facts answered 2026-10-01:** the user supplied the name, promise, inclusions, duration, price band, what the client supplies, revision rounds, ownership, the diagnostic (name, price, duration, deliverable and credit), the floor, the after-the-form flow, and all ten outcome lines, so every `[[slot]]` below is now filled. **No slot may be filled with an invented number, duration, claim or result** (Ways of Working 3); the outcome lines are honest transformation lines, not metrics, because no hard numbers exist. This is now usable copy for `services.html`, `index.html` and `contact.html`, pending the user's red pen. Two things stay open: which individual clients have actually agreed to be named, quoted or shown (the permission *rule* is set), and the deposit percentage plus the milestone split, now that the user has decided on 2026-10-01 that **both deposits and milestones are stated** on the offer. **Conventions:** `✅` means the user confirmed it; **Proposed** means Cline drafted the wording and the user should edit it freely; `[[TODO: ...]]` now appears only where a fact is genuinely still unconfirmed, and nothing in brackets is final or deployable.
|
||||||
> The shape is settled (user-confirmed 2026-09-22): **one primary offer with a published price band, plus a fixed-price diagnostic as the entry step**, with every other capability left as bench depth. What is missing is facts, which only the user has, so every gap below is written as a visible slot in `[[double brackets]]`. **No slot may be filled with an invented number, duration, claim or result** (Ways of Working 3). Nothing here is production copy yet: once the slots are answered, this becomes the copy for `services.html`, `index.html` and `contact.html`. **Progress (2026-09-22): 2 of 21 slots answered, proposals drafted for the other 19.** Six numbers and ten outcome lines are still bracketed, because only the user has them. **Conventions:** `✅` means the user confirmed it; **Proposed** means Cline drafted the wording and the user should edit it freely; `[[TODO: ...]]` marks a fact only the user can supply, and nothing in brackets is final or deployable.
|
|
||||||
|
|
||||||
## Slots to answer
|
## Slots to answer
|
||||||
|
|
||||||
| Slot | Feeds | Answer |
|
| Slot | Feeds | Answer |
|
||||||
|---|---|---|
|
|---|---|---|
|
||||||
| `[[primary offer name]]` | `services.html` h2, homepage teaser | **Proposed** in Block A, three options |
|
| `[[primary offer name]]` | `services.html` h2, homepage teaser | ✅ **Answered 2026-10-01: The 2RE03 Website Launch** |
|
||||||
| `[[one-sentence promise]]` | `services.html` lead, hero support line | **Proposed** in Block A |
|
| `[[one-sentence promise]]` | `services.html` lead, hero support line | ✅ **Answered 2026-10-01: "We build distinctive websites that make your business easier to understand, trust, and act on."** |
|
||||||
| `[[what's included]]` | `services.html` bullets, 4 to 6 items | **Proposed** in Block A, six bullets taken from `about.html` |
|
| `[[what's included]]` | `services.html` bullets | ✅ **Answered 2026-10-01: project strategy and content structure, custom visual design, responsive website development, copy editing / copywriting assistance, SEO/accessibility/performance basics, launch/hosting/handoff** |
|
||||||
| `[[typical duration]]` | `services.html` facts, homepage teaser | `[[TODO]]` in Blocks A and C |
|
| `[[typical duration]]` | `services.html` facts, homepage teaser | ✅ **Answered 2026-10-01: most projects launch in 4 to 6 weeks** |
|
||||||
| `[[price band]]` | `services.html` facts, homepage teaser, contact qualification | `[[TODO]]` in Blocks A, C and D |
|
| `[[price band]]` | `services.html` facts, homepage teaser, contact qualification | ✅ **Answered 2026-10-01: start at $3,500; most complete projects $4,500 to $7,500** |
|
||||||
| `[[what you supply]]` | `services.html` facts, contact "what to include" | **Proposed** in Block A, needs a check for anything missing |
|
| `[[what you supply]]` | `services.html` facts, contact "what to include" | ✅ **Answered 2026-10-01: existing copy (if any), photos/logos/brand assets, access to website/domain/hosting, subject-matter info we can't research, feedback and decisions; we help source what is missing** |
|
||||||
| `[[revision rounds]]` | `services.html` facts | ✅ **Answered 2026-09-22: 3** |
|
| `[[revision rounds]]` | `services.html` facts | ✅ **Answered 2026-10-01: 2.** Supersedes the "3" recorded 2026-09-22; the newest answer wins |
|
||||||
| `[[ownership terms]]` | `services.html` facts, contact risk reversal | ✅ **Answered 2026-09-22: the client owns the work once the final payment is received** |
|
| `[[ownership terms]]` | `services.html` facts, contact risk reversal | ✅ **Answered 2026-10-01: paid in full, the client owns the finished website, the design assets, the copy created for them, and their content; 2RE03 retains pre-existing tools, reusable code, processes and third-party components** |
|
||||||
| `[[diagnostic name]]` | `services.html` card, homepage teaser, contact CTA | **Proposed** in Block B, "Site Assessment", two alternatives |
|
| `[[payments]]` | `services.html` terms, `contact.html` qualification | ✅ **Answered 2026-10-01: both are stated** - a deposit starts the project, payments fall due as agreed milestones are met, and the balance is due on delivery. The percentage and the split are still to be supplied, so no figure is written yet |
|
||||||
| `[[diagnostic price]]` | same as above | `[[TODO]]` in Blocks B and C |
|
| `[[diagnostic name]]` | `services.html` card, homepage teaser, contact CTA | ✅ **Answered 2026-10-01: The Project Clarity Session** |
|
||||||
| `[[diagnostic duration]]` | same as above | `[[TODO]]` in Block B |
|
| `[[diagnostic price]]` | same as above | ✅ **Answered 2026-10-01: $250** |
|
||||||
| `[[diagnostic deliverable]]` | same as above | **Proposed** in Block B, needs your yes before it is offered |
|
| `[[diagnostic duration]]` | same as above | ✅ **Answered 2026-10-01: 60 to 90 minutes** |
|
||||||
| `[[credit toward project]]` | same as above | `[[TODO]]` in Block B |
|
| `[[diagnostic deliverable]]` | same as above | ✅ **Answered 2026-10-01: a clear definition of the site's job, a recommended site structure, priority pages/features, the content and assets needed, a rough project scope, a realistic timeline, a ballpark budget** |
|
||||||
| `[[project floor]]` | `services.html`, `contact.html` | `[[TODO]]` in Block D |
|
| `[[credit toward project]]` | same as above | ✅ **Answered 2026-10-01: credited in full if they hire within 30 days** |
|
||||||
| `[[who replies]]` | `contact.html` | ✅ Live copy: "the form goes straight to us" |
|
| `[[project floor]]` | `services.html`, `contact.html` | ✅ **Answered 2026-10-01: $3,500** |
|
||||||
| `[[reply time]]` | `contact.html` | ✅ Live copy: "aim to reply within a couple of days" |
|
| `[[who replies]]` | `contact.html` | ✅ **Answered 2026-10-01: team voice ("we")**, changed from naming Torrey personally, to match the site voice |
|
||||||
| `[[first call agenda]]` | `contact.html` | **Proposed** in Block D, confirm the 30 minutes |
|
| `[[reply time]]` | `contact.html` | ✅ **Answered 2026-10-01: keep as is** ("aim to reply within a couple of days") |
|
||||||
| `[[what you leave with]]` | `contact.html` | **Proposed** in Block D, a promise to confirm |
|
| `[[first call agenda]]` | `contact.html` | ✅ **Answered 2026-10-01: a 30-minute Project Fit Call** |
|
||||||
| `[[results per case study]]` | 10 case-study pages plus the homepage proof strip | **10 tailored prompts** in Block E |
|
| `[[what you leave with]]` | `contact.html` | ✅ **Answered 2026-10-01: knowing what to build next and what it would cost, whether or not they hire us** |
|
||||||
| `[[quotes or names we may publish]]` | proof strip, case studies | **Proposed** in Block E |
|
| `[[results per case study]]` | 10 case-study pages plus the homepage proof strip | ✅ **Answered 2026-10-01: ten transformation lines (no hard numbers exist)** in Block E |
|
||||||
| `[[analytics yes or no]]` | every page | **Proposed** in Block E, "yes" recommended |
|
| `[[quotes or names we may publish]]` | proof strip, case studies | ✅ **Answered 2026-10-01: none yet** (no client has agreed to a name, quote, logo, photograph or identifiable number beyond the names the case studies already publish) |
|
||||||
|
| `[[analytics yes or no]]` | every page | ✅ **Answered 2026-10-01: yes, privacy-friendly (Umami)**; the user will **self-host** it and add it later |
|
||||||
|
|
||||||
## Draft copy, in the site's voice
|
## Draft copy, in the site's voice
|
||||||
|
|
||||||
|
|
@ -35,80 +35,85 @@ Slots are the only things missing. Word choice outside the slots is a first draf
|
||||||
|
|
||||||
### Block A - `services.html`, the primary offer (replaces the current "Web Design" section, same layout)
|
### Block A - `services.html`, the primary offer (replaces the current "Web Design" section, same layout)
|
||||||
|
|
||||||
**Proposed** copy, assembled from what `about.html` already claims plus the revision count the user confirmed. Edit freely.
|
**Answered 2026-10-01.** Edit freely; the facts are the user's.
|
||||||
|
|
||||||
- Eyebrow: `The offer`
|
- Eyebrow: `The offer`
|
||||||
- h2: `The Website Project` - *options for `[[primary offer name]]`: "The Website Project", "A Site, End to End", "Web Design Project". Pick one or replace.*
|
- h2: `The 2RE03 Website Launch`
|
||||||
- Lead: `We find the actual problem, then design and build the site that solves it, so it says what you do clearly and holds up on whatever screen shows up next.`
|
- Lead: `We build distinctive websites that make your business easier to understand, trust, and act on.`
|
||||||
- Bullets (**proposed**, derived from `about.html`'s "How we work" so nothing new is being claimed):
|
- Bullets (the six inclusions the user supplied):
|
||||||
- `Figuring out the actual problem before anything gets designed`
|
- `Project strategy and content structure`
|
||||||
- `Structure and copy: we write the words if the project needs them`
|
- `Custom visual design`
|
||||||
- `Design: layouts, type, and the pieces the site needs to work`
|
- `Responsive website development`
|
||||||
- `Build: hand-coded, responsive, and checked on real screens`
|
- `Copy editing and copywriting assistance`
|
||||||
- `Three rounds of revisions`
|
- `SEO, accessibility and performance basics`
|
||||||
- `Launch and handoff: you own the work once the final payment is received`
|
- `Launch, hosting and handoff`
|
||||||
- Facts line: `Typical project: [[TODO: 4 to 8 weeks]] · From [[TODO: $X]] · You supply photos, existing material, logins, and a decision-maker · 3 rounds of revisions`
|
- Facts line: `Typical project: 4 to 6 weeks · From $3,500 · You supply photos, existing material, logins, and a decision-maker · 2 rounds of revisions`
|
||||||
- Ownership line: `You own the work once the final payment is received.` (✅ confirmed 2026-09-22)
|
- What you supply line: `You supply your existing copy (if you have it), photos, logos and other brand assets, access to your existing website, domain and hosting, the subject-matter information we can't reasonably research, and feedback and decisions when we ask. Don't have all of that? That's okay, we can help create or source what's missing.`
|
||||||
|
- Ownership line: `When the project is paid in full, you own the finished website, the design assets, the copy created specifically for you, and your content. We retain ownership of our pre-existing tools, reusable code, processes, and third-party components.`
|
||||||
- Buttons: `Start a project` (primary, as today) and `Not ready for a project?` (anchor to Block B)
|
- Buttons: `Start a project` (primary, as today) and `Not ready for a project?` (anchor to Block B)
|
||||||
|
|
||||||
Two cautions on the facts line: the duration must be the calendar time actually achieved including the client's review time, and the price must be a number the user would be happy to honour twice in a row.
|
Two cautions now apply to promises rather than numbers: the duration has to be the calendar time actually achieved including the client's own review time, and the price band has to be one the user would honour twice in a row. Both are now the user's own figures, so they are load-bearing, not placeholders.
|
||||||
|
|
||||||
### Block B - `services.html`, the entry step (dark card, `bg-ink text-cream`, matching the Workflow band's middle card)
|
### Block B - `services.html`, the entry step (dark card, `bg-ink text-cream`, matching the Workflow band's middle card)
|
||||||
|
|
||||||
**Proposed**, but this one commits the user to delivering a service, so it needs their yes before it is built.
|
**Answered 2026-10-01.** This is a paid service the user has now defined, so the copy can be built.
|
||||||
|
|
||||||
- Eyebrow: `Start smaller`
|
- Eyebrow: `Start smaller`
|
||||||
- h2: `Site Assessment` - *options for `[[diagnostic name]]`: "Site Assessment", "Website Audit", "Design Diagnostic"*
|
- h2: `The Project Clarity Session`
|
||||||
- Lead: `A written assessment of what you have now: what's working, what isn't, what we'd change first, and what a project would take. Yours to keep and act on with or without us.`
|
- Lead: `A guided 60 to 90 minute session that turns a vague website idea into a clear plan. You leave with a clear definition of what the site has to do, a recommended site structure, the priority pages and features, the content and assets you'll need, a rough project scope, a realistic timeline, and a ballpark budget.`
|
||||||
- Facts line: `[[TODO: $X]] · [[TODO: e.g. one week]]`
|
- Facts line: `$250 · 60 to 90 minutes`
|
||||||
- Credit line: `If you go ahead with the project, [[TODO: the whole fee]] comes off the price.`
|
- Credit line: `Hire us within 30 days and the full $250 comes off the project price.`
|
||||||
|
|
||||||
### Block C - `index.html`, offer teaser band (sits under the trigger questions, above the work list)
|
### Block C - `index.html`, offer teaser band (sits under the trigger questions, above the work list)
|
||||||
|
|
||||||
**Proposed:**
|
**Answered 2026-10-01.**
|
||||||
|
|
||||||
- h2: `Here's what working with us looks like.`
|
- h2: `Here's what working with us looks like.`
|
||||||
- Body: `Most projects run [[TODO: 4 to 8 weeks]] and start at [[TODO: $X]]. If you'd rather test the water first, the Site Assessment is [[TODO: $X]], and it comes off the bill if you hire us.`
|
- Body: `Most website projects launch in 4 to 6 weeks and start at $3,500. If you'd rather test the water first, the Project Clarity Session is $250, and it comes off the bill if you hire us within 30 days.`
|
||||||
- Buttons: `Start a project` (primary) and `See the details` -> `services.html`
|
- Buttons: `Start a project` (primary) and `See the details` -> `services.html`
|
||||||
|
|
||||||
### Block D - `contact.html`, risk reversal (extends the existing "Response time" panel, reusing its wording rather than replacing it)
|
### Block D - `contact.html`, risk reversal (extends the existing "Response time" panel, reusing its wording rather than replacing it)
|
||||||
|
|
||||||
**Proposed.** The live page already says "We read everything that comes in and aim to reply within a couple of days. If it looks like a fit, we'll suggest a quick call", so this extends that panel rather than replacing it.
|
**Answered 2026-10-01**, in team voice ("we", not a named individual).
|
||||||
|
|
||||||
- h3 or h4: `What happens next`
|
- h3 or h4: `What happens next`
|
||||||
- Body: `We read it, and aim to reply within a couple of days. If it looks like a fit, the first call runs about [[TODO: 30 minutes]] and covers what you're trying to do, what's in the way, and roughly what it would take. You'll leave it knowing what to build next and what it would cost, whether or not you hire us. If we're not the right studio for it, we'll say so.`
|
- Body: `We read it, and aim to reply within a couple of days. If it looks like a fit, the first call is a 30-minute Project Fit Call covering what you're trying to accomplish, who needs to use, buy or understand it, what's wrong with the current situation, what already exists, your deadline, your budget, and whether 2RE03 is the right fit. You'll leave knowing what to build next and what it would cost, whether or not you hire us. If we're not the right studio for it, we'll say so.`
|
||||||
- Second line, qualification: `Our projects start at [[TODO: $X]]. Below that, the Site Assessment is the honest way to start.`
|
- Second line, qualification: `Our projects start at $3,500. Below that, the Project Clarity Session is the honest way to start.`
|
||||||
|
- Payments line (offer-sheet item 9, revised to "both" on 2026-10-01): `Payments run on a deposit plus milestones: a deposit starts the project, payments fall due as agreed milestones are met, and the balance is due on delivery.` The percentage and the split are still to be supplied, so no figure belongs in this line yet.
|
||||||
|
- Secondary path: **none.** Revised 2026-10-01, replacing the earlier "add a scheduling link" decision: a written enquiry is enough, so there is no booking link and no published email address. The form is the only path, and the topic dropdown is what makes it a booking (a visitor picks `Book a Project Clarity Session`). `services.html`'s `Book a Clarity Session` button already points at `contact.html`, so nothing needed rewiring.
|
||||||
|
|
||||||
Two things to confirm, because both are promises rather than descriptions: the 30-minute first call, and that a prospect really does leave knowing what to build next and what it would cost. They have to be true every time.
|
**Built early, 2026-10-01:** the form's free-text `Subject (optional)` field is already gone. It is now a **required `<select name="subject">` labelled "What do you want to talk about?"**, whose selected value becomes the **Web3Forms notification subject line** (the docs require the name to be `subject`; a user-filled control works, not only a hidden input). Options, in order: `Book a Project Clarity Session`, `Start a website project`, `Logo or brand identity`, `Print design`, `3D modeling`, `Writing, copy, or editing`, `Something else`, behind a disabled `Choose one` placeholder. No JavaScript changed: `js/main.js` posts `new FormData(form)`. The rest of Block D (the `What happens next` copy, the $3,500 qualification line and the payments line) is still to build, but it is now unblocked: the deposit/milestone question is answered and no link is needed. Only the deposit percentage and the milestone split still have to arrive before the payments line can carry a figure.
|
||||||
|
|
||||||
|
Two things were confirmed on 2026-10-01 and have to stay true every time: the 30-minute Project Fit Call, and that a prospect really does leave knowing what to build next and what it would cost. The reply-time promise stays as the live copy already states it ("aim to reply within a couple of days").
|
||||||
|
|
||||||
### Block E - the proof stage
|
### Block E - the proof stage
|
||||||
|
|
||||||
`index.html` gains a proof strip and each case-study page gains one outcome line. Both need facts only the user has.
|
`index.html` gains a proof strip and each case-study page gains one outcome line.
|
||||||
|
|
||||||
- Homepage proof strip: two or three short lines taken from the outcome lines below, or one or two client quotes.
|
- Homepage proof strip: two or three short lines drawn from the outcome lines below.
|
||||||
- Outcome lines, one per case study:
|
- Outcome lines, one per case study (**answered 2026-10-01**; these are transformation lines, not metrics, because no hard numbers exist):
|
||||||
|
|
||||||
| Case study | What the page already claims | The one line to supply |
|
| Case study | Outcome line |
|
||||||
|---|---|---|
|
|---|---|
|
||||||
| Jensen's Red Barn | an antiques shop, the barn's story, and Dorothy's scrapbook | `[[TODO: is it live, since when, and does the shop hear from it?]]` |
|
| Mask Aid Project | Turned a Chinese-developed device into a clear English-language campaign people could understand, support, and buy into. |
|
||||||
| Mask Aid Project | a site, videos and a crowdfunding push | `[[TODO: did the campaign hit its goal, and how much was raised?]]` |
|
| 1 Woman's Art and Magic | Turned decades of artwork into two books and a website designed to showcase and sell them. |
|
||||||
| Mehavior | interface, mark and pitch material for an unbuilt app | `[[TODO: what happened after the pitch: funding, launch, or still in progress?]]` |
|
| Sam's Rules | Turned a book, its illustrations, tools, and companion material into one coherent published system. |
|
||||||
| 1 Woman's Art and Magic | two books for Joanna Signer plus the selling site | `[[TODO: where are the books sold, and does the site move them?]]` |
|
| Mehavior | Made an app that didn't exist yet tangible enough to present to investors. |
|
||||||
| Sam's Rules | words and layout in one pair of hands, with reader tools | `[[TODO: is it published, and who uses the tools in it?]]` |
|
| Jensen's Red Barn | Turned a family antique business and its history into a welcoming online destination. |
|
||||||
| Silver Lining | a mark for a high-end retreat, hired to pull the right clients | `[[TODO: did bookings or enquiries change after the mark landed?]]` |
|
| Upscale Food Cart | Repositioned a working food cart visually for higher-end markets. |
|
||||||
| Teach Each Other AI | monthly meetup site with a countdown and an archive | `[[TODO: how many sessions archived, and what is attendance like?]]` |
|
| Silver Lining | Created an identity designed to attract the right clients without falling into the obvious cliché. |
|
||||||
| Upscale Food Cart | a 3D proposal to move a cart upmarket | `[[TODO: did it lead to a build, a new market, or higher prices?]]` |
|
| Victoria Fuller | Reorganized a complicated personal story into a website where visitors could actually find the point. |
|
||||||
| Urban Moto | a full editorial pipeline for a motorcycle magazine | `[[TODO: how many issues, how many copies, over how long?]]` |
|
| Urban Moto | Built a repeatable editorial and advertising pipeline for a motorcycle magazine. |
|
||||||
| Victoria Fuller | a site for the only Bunny with the Playboy logo rights | `[[TODO: anything measurable: traffic, bookings, press?]]` |
|
| Teach Each Other AI | Turned a recurring meetup into a site where visitors could instantly find when, where, and what happened. |
|
||||||
|
|
||||||
Also proposed:
|
Outstanding on this block:
|
||||||
|
|
||||||
- `[[quotes or names we may publish]]`: the case-study pages already name the clients, so the open question is whether any of them will give a sentence to quote. One real sentence beats three invented adjectives, and "none yet" is fine.
|
- `[[quotes or names we may publish]]`: ✅ **Answered 2026-10-01: none yet.** No client has yet agreed to a name, quote, logo, photograph or identifiable number, so the permission *rule* stands (ask first) and **no new client-attributable material is published**. Consequence for this build: the proof stage ships as **the named case studies plus the transformation outcome lines only** - the case-study pages already name most clients, so those names stay as they are - with no testimonial, no client logo, no metric, and no new identifiable detail added until a specific client says yes. When (or if) a clearance arrives, add it then.
|
||||||
- `[[analytics yes or no]]`: **proposed** = yes to one privacy-friendly script plus a click event on `Start a project`. Without it, nothing above can be judged after launch. Say no and the site stays scripting-free and unmeasured.
|
- `[[analytics yes or no]]`: ✅ **Answered 2026-10-01: yes, privacy-friendly (Umami).** The user is setting it up and will add it later, so the snippet and the click event on `Start a project` are deferred, not dropped.
|
||||||
|
|
||||||
What counts as an outcome: a number (traffic, enquiries, sales, signups), a date (launched, shipped, went to print), a before and after (replaced X, cut Y hours a week), or the client's own words. Anything concrete beats anything adjectival. Where there is genuinely nothing measurable yet, the line becomes a scope line instead ("designed and built in six weeks", "three ad campaigns in one print run"), which is still proof and still honest; the projects with numbers sit higher in the ordering on the page.
|
What counts as an outcome: a number (traffic, enquiries, sales, signups), a date (launched, shipped, went to print), a before and after (replaced X, cut Y hours a week), or the client's own words. The lines above are before-and-after transformations, which is the honest maximum while no numbers exist; where a real number turns up later it should replace the line.
|
||||||
|
|
||||||
## How to pick the numbers (advice, not fact)
|
## How the numbers were picked (background; now answered)
|
||||||
|
|
||||||
- **Price band**: take what you would quote today for the last two or three projects of that shape, and publish a rounded range rather than a precise figure. The band exists to filter and to self-select, not to quote.
|
- **Price band**: take what you would quote today for the last two or three projects of that shape, and publish a rounded range rather than a precise figure. The band exists to filter and to self-select, not to quote.
|
||||||
- **Never publish a number you would resent honouring twice in a row.** If the band makes you flinch, the scope is wrong, not the copy.
|
- **Never publish a number you would resent honouring twice in a row.** If the band makes you flinch, the scope is wrong, not the copy.
|
||||||
|
|
@ -118,12 +123,12 @@ What counts as an outcome: a number (traffic, enquiries, sales, signups), a date
|
||||||
|
|
||||||
## Build order once the slots are filled
|
## Build order once the slots are filled
|
||||||
|
|
||||||
1. `services.html` Offer stage (Blocks A and B): the biggest change, and the one every other page points at.
|
1. ✅ `services.html` Offer stage (Blocks A and B) - **built 2026-10-01, awaiting the user's red pen.** The "Web Design" section became the offer (promise, the six inclusions, three fact pills, what you supply, what you own, `Start a project` plus `Not ready for a project?`), and the Project Clarity Session sits below it as a dark card. The old web-craft detail (hand-coding, WordPress, hosting, domain, maintenance) was folded into the offer's supporting paragraph rather than dropped, and the meta/`og:description` now name the offer and the band. New CSS: `.pill`, `.pill--ink`, `.offer-terms`, `.eyebrow-cream`.
|
||||||
2. `index.html`: trigger questions moved up, teaser band (Block C) in, breadth moved down, proof strip (Block E).
|
2. `index.html`: trigger questions moved up, teaser band (Block C) in, breadth moved down, proof strip (Block E).
|
||||||
3. `contact.html`: risk reversal and qualification (Block D).
|
3. `contact.html`: risk reversal and qualification (Block D). **Partly done 2026-10-01:** the free-text subject field is now the required "What do you want to talk about?" dropdown whose selection sets the email subject line; the `What happens next` copy, the $3,500 qualification line and the scheduling link are still to build, and wait on the deposits/milestones answer plus the link itself.
|
||||||
4. `case-studies/*.html`: outcome lines plus their captions, so the caption backlog item rides along.
|
4. `case-studies/*.html`: outcome lines plus their captions, so the caption backlog item rides along.
|
||||||
5. `thank-you.html` and the analytics decision, so a submission becomes measurable.
|
5. `thank-you.html` and the analytics snippet (Umami, self-hosted, which the user is setting up and will add later), so a submission becomes measurable. There is no scheduling link to add: revised 2026-10-01, a written enquiry is enough and the site publishes no email address.
|
||||||
|
|
||||||
Copy is reviewed before it is built. Each pass is verified the same way as the caption and copy passes: tags balance and every reference resolves across all 16 pages, no em dashes, headless-Chrome measurement of any gallery touched, screenshots at 1280px and 390px, and a live probe after the user deploys.
|
Copy is reviewed before it is built. Each pass is verified the same way as the caption and copy passes: tags balance and every reference resolves across all 16 pages, no em dashes, headless-browser measurement of any gallery touched, screenshots at 1280px and 390px, and a live probe after the user deploys. (On 2026-10-01 the user chose to build page by page and red-pen the rendered result, so `services.html` was built first and is now awaiting that review.)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
# Progress - 2RE03 Portfolio Site
|
# Progress - 2RE03 Portfolio Site
|
||||||
|
|
||||||
> What works, what's left, current status, known issues, and decision evolution.
|
> What works, what's left, current status, known issues, and decision evolution.
|
||||||
> Last updated: 2026-09-22.
|
> Last updated: 2026-10-01.
|
||||||
|
|
||||||
## What Works
|
## What Works
|
||||||
- Memory bank initialized in the standard multi-file form.
|
- Memory bank initialized in the standard multi-file form.
|
||||||
|
|
@ -59,11 +59,11 @@
|
||||||
`memory-bank/todo.md`. On top of that, the work galleries were captioned, those
|
`memory-bank/todo.md`. On top of that, the work galleries were captioned, those
|
||||||
captions were re-worded to the scope the user confirmed, and the section blurbs
|
captions were re-worded to the scope the user confirmed, and the section blurbs
|
||||||
were re-voiced to match, with the earplug article and the YLEM Journal cover
|
were re-voiced to match, with the earplug article and the YLEM Journal cover
|
||||||
re-filed from Print into Words. That whole batch was committed by the user as **`8a7c3ea`** and uploaded by hand, and the live site was verified from the outside on 2026-09-22 (all four new assets 200 with the right MIME types, all 16 pages serving exactly one `og:image`, all 26 captions live, 61 asset paths with no 404s), so **everything built to date is public**. The current work is the **sales-funnel redesign**: planned in `memory-bank/sales-funnel-plan.md` with its shape decided (decision 34: one primary offer with a published price band plus a fixed-price diagnostic as the entry step) and its fill-in-the-blank copy in `memory-bank/offer-draft.md`, blocked on the offer facts only the user has. Around it: user sign-off on the live copy, the case-study grid captions, a few caption names that were read off the artwork, and the Content/Polish items in `memory-bank/todo.md`.
|
re-filed from Print into Words. That whole batch was committed by the user as **`8a7c3ea`** and uploaded by hand, and the live site was verified from the outside on 2026-09-22 (all four new assets 200 with the right MIME types, all 16 pages serving exactly one `og:image`, all 26 captions live, 61 asset paths with no 404s), so **everything built to date is public**. The current work is the **sales-funnel redesign**: planned in `memory-bank/sales-funnel-plan.md` with its shape decided (decision 34: one primary offer with a published price band plus a fixed-price diagnostic as the entry step). The offer facts landed on 2026-10-01: **The 2RE03 Website Launch** (4 to 6 weeks, from $3,500, most $4,500 to $7,500, 2 revision rounds) with the **Project Clarity Session** ($250, credited in full within 30 days) as the entry step, plus the funnel specifics (scheduling link, team voice, no turn-downs, Umami) recorded as decisions 35 and 36. The blocker is therefore cleared, and `memory-bank/offer-draft.md` has been reconciled against the answers and is ready to draft into pages. The last proof question was settled as **none yet** (2026-10-01): no client has agreed to a name, quote, logo or identifiable number, so the proof stage ships as named case studies plus the transformation outcome lines, adding nothing new client-attributable, which leaves deposits/milestones as the only open item before copy ships. **`services.html` is the first funnel page built**: the offer (funnel Blocks A and B) landed on 2026-10-01 and is waiting on the user's red pen, while `index.html`, `contact.html`, the case-study outcome lines and the measurement work are all untouched. Around it: user sign-off on the live copy, the case-study grid captions, a few caption names that were read off the artwork, and the Content/Polish items in `memory-bank/todo.md`.
|
||||||
|
|
||||||
## What's Left To Build
|
## What's Left To Build
|
||||||
> The full, current backlog lives in **`memory-bank/todo.md`**; this section keeps only the headline items.
|
> The full, current backlog lives in **`memory-bank/todo.md`**; this section keeps only the headline items.
|
||||||
- **The sales funnel** (`memory-bank/sales-funnel-plan.md`): the site has no offer anywhere, no price or scope signal, no qualification, proof that isn't outcome-shaped, and no measurable conversion path. Blocked on the user supplying the offer facts listed in `memory-bank/offer-draft.md`.
|
- **The sales funnel** (`memory-bank/sales-funnel-plan.md`): the site has no offer anywhere, no price or scope signal, no qualification, proof that isn't outcome-shaped, and no measurable conversion path. **Unblocked 2026-10-01**: the offer facts are in and `memory-bank/offer-draft.md` is reconciled, so the copy is ready to draft into `services.html`, `index.html`, `contact.html` and the case studies, then build (in the staged order in the plan).
|
||||||
- User review/refinement of copy + visual design.
|
- User review/refinement of copy + visual design.
|
||||||
- Optional real assets: a real 2RE03 logo (the favicon and Open Graph image both
|
- Optional real assets: a real 2RE03 logo (the favicon and Open Graph image both
|
||||||
landed on 2026-09-22).
|
landed on 2026-09-22).
|
||||||
|
|
@ -109,6 +109,12 @@ re-filed from Print into Words. That whole batch was committed by the user as **
|
||||||
- **2026-09-10** - Locked the stack (static HTML + vendored Bootstrap), styling
|
- **2026-09-10** - Locked the stack (static HTML + vendored Bootstrap), styling
|
||||||
(Bootstrap + custom CSS), and brand (2RE03 only, no 2RE Factory), then built the
|
(Bootstrap + custom CSS), and brand (2RE03 only, no 2RE Factory), then built the
|
||||||
v0 scaffold.
|
v0 scaffold.
|
||||||
|
- **2026-10-01** - Funnel offer answered and draft reconciled (decisions 35-36):
|
||||||
|
one primary offer (**The 2RE03 Website Launch**) plus the **Project Clarity
|
||||||
|
Session** entry step, a **scheduling link** as the secondary path, **team
|
||||||
|
voice**, **no turn-downs**, and **Umami** analytics deferred until the user sets
|
||||||
|
it up. The funnel's blocker is cleared and the copy is ready to draft and build.
|
||||||
|
- **2026-10-01** - Published-proof clearances settled as **none yet** (offer-sheet item 5): no client has agreed to a name, quote, logo or identifiable number, so the proof stage ships as named case studies plus the transformation outcome lines only, and deposits/milestones (item 9) becomes the only open item before copy ships.
|
||||||
|
|
||||||
## Progress Log
|
## Progress Log
|
||||||
- **2026-09-10** - Initialized memory bank. Surveyed `refrence/` (2 HTML files +
|
- **2026-09-10** - Initialized memory bank. Surveyed `refrence/` (2 HTML files +
|
||||||
|
|
@ -268,3 +274,13 @@ re-filed from Print into Words. That whole batch was committed by the user as **
|
||||||
|
|
||||||
- **2026-09-22** - **The sales-funnel redesign was planned, and the offer shape was decided.** The backlog item "redesign the site as a sales funnel rather than as a design piece" moved from a one-line idea to a plan. Ten leaks were diagnosed in the current site: no offer anywhere, no price or scope signal, no qualification, proof that is not outcome-shaped, a single conversion path, no risk reversal, homepage ordering that fights the sale, unpositioned breadth, a CTA that asks before it gives, and nothing measured. A stage structure (Land -> Recognise -> Believe -> Offer -> Risk reversal -> Convert -> Measure) and a page-by-page draft went into the new `memory-bank/sales-funnel-plan.md`. Cline recommended **one primary offer with a published price band plus a fixed-price diagnostic as the entry step**; the user accepted, recorded as decision 34, with packaged engagements and consultative selling deferred rather than rejected. The fill-in-the-blank copy for `services.html`, `index.html` and `contact.html` (four blocks plus a proof-stage table for the 10 case studies) went into the new `memory-bank/offer-draft.md`, where every gap is a visible `[[slot]]` and no slot may be filled with an invented fact. **No production file was touched**: the live site is unchanged and the plan is blocked on the user supplying the offer facts.
|
- **2026-09-22** - **The sales-funnel redesign was planned, and the offer shape was decided.** The backlog item "redesign the site as a sales funnel rather than as a design piece" moved from a one-line idea to a plan. Ten leaks were diagnosed in the current site: no offer anywhere, no price or scope signal, no qualification, proof that is not outcome-shaped, a single conversion path, no risk reversal, homepage ordering that fights the sale, unpositioned breadth, a CTA that asks before it gives, and nothing measured. A stage structure (Land -> Recognise -> Believe -> Offer -> Risk reversal -> Convert -> Measure) and a page-by-page draft went into the new `memory-bank/sales-funnel-plan.md`. Cline recommended **one primary offer with a published price band plus a fixed-price diagnostic as the entry step**; the user accepted, recorded as decision 34, with packaged engagements and consultative selling deferred rather than rejected. The fill-in-the-blank copy for `services.html`, `index.html` and `contact.html` (four blocks plus a proof-stage table for the 10 case studies) went into the new `memory-bank/offer-draft.md`, where every gap is a visible `[[slot]]` and no slot may be filled with an invented fact. **No production file was touched**: the live site is unchanged and the plan is blocked on the user supplying the offer facts.
|
||||||
|
|
||||||
|
- **2026-10-01** - **The offer sheet was answered and the offer draft reconciled, which clears the funnel's blocker.** All nine offer-sheet questions in `memory-bank/sales-funnel-plan.md` came back, plus the follow-up decisions: a **scheduling link** for the secondary path, **team voice** ("we") rather than a named individual, the reply-time promise kept, **no industries or project types turned down**, all pages kept consistent, and **Umami** analytics to be added later by the user. The settled offer is **The 2RE03 Website Launch** (4 to 6 weeks, from $3,500, most $4,500 to $7,500, 2 revision rounds) with the **Project Clarity Session** ($250, 60 to 90 minutes, credited in full within 30 days) in front of a 30-minute Project Fit Call. `memory-bank/offer-draft.md` was reconciled against the answers: the slot table now reads answered, revision rounds moved 3 -> 2, the "Site Assessment" proposal became the **Project Clarity Session**, the price band and floor were filled in, and the ten `[[TODO]]` case-study prompts were replaced by the ten transformation outcome lines (honest, because no hard numbers exist). Two items stay open: individual client clearances for published proof, and whether deposits or milestones are stated. **No production file was touched**; the edits are `sales-funnel-plan.md` and `offer-draft.md`, both uncommitted.
|
||||||
|
|
||||||
|
- **2026-10-01** - **The last proof question was settled as `none yet`, so the proof stage can be built without inventing anything.** Asked whether any client had agreed to be named, quoted, shown or given a logo, the user answered **not yet**. The permission *rule* stands (ask first), and no testimonial, client logo, metric or new identifiable detail goes on any page; the proof stage ships as **the named case studies plus the transformation outcome lines only**, and the client names the case studies already publish simply stay. A clearance can be added later if one arrives. This leaves **deposits/milestones (offer-sheet item 9) as the only open question** before the offer copy ships. **No production file was touched**; the edits are `activeContext.md`, `offer-draft.md`, `progress.md`, `sales-funnel-plan.md` and `todo.md`, all uncommitted.
|
||||||
|
|
||||||
|
- **2026-10-01** - **`services.html` was rebuilt around the offer, the first funnel page to ship.** The "Web Design" section became **The 2RE03 Website Launch** (the promise, the six inclusions, three fact pills, what you supply, what you own, `Start a project` plus `Not ready for a project?`), and **The Project Clarity Session** now sits below it as a dark card ($250, 60 to 90 minutes, `Book a Clarity Session`, credited in full within 30 days). The old web-craft detail (hand-coding, WordPress, hosting, domain, maintenance) was folded into the offer's supporting paragraph instead of being deleted, the capability grid stayed as "Also on the bench", the Process, Workflow and closing CTA bands are untouched, and the page's meta and `og:description` now name the offer and the price band. New CSS in `css/style.css`: `.pill`, `.pill--ink`, `.offer-terms`, `.eyebrow-cream`. Verified the same way as the caption passes: tag balance clean, no em dashes in our files, all references resolve across the 16 pages, and full-page screenshots at 1280px and 390px. `index.html`, `contact.html`, the case-study outcome lines, `thank-you.html`, the scheduling link and the Umami snippet are all still to come, and `services.html` plus `css/style.css` are uncommitted and awaiting the user's red pen.
|
||||||
|
|
||||||
|
- **2026-10-01** - **The `services.html` red pen came back and both its edits landed; the same session turned `contact.html`'s subject field into a topic dropdown that sets the email subject.** The web-craft paragraph (hand-coding, WordPress, hosting, domain, maintenance) was **cut** from the offer block rather than kept folded in, so the offer column now runs eyebrow -> h2 -> promise -> three fact pills -> `Start a project` / `Not ready for a project?`; the meta and `og:description` rewrite **stayed**. In `contact.html` the free-text `Subject (optional)` input was replaced by a **required `<select name="subject">` labelled "What do you want to talk about?"**, with the options `Book a Project Clarity Session`, `Start a website project`, `Logo or brand identity`, `Print design`, `3D modeling`, `Writing, copy, or editing` and `Something else`, a disabled `Choose one` placeholder, and an `invalid-feedback` line to match the other required fields. The selected option becomes the Web3Forms email subject line. No JavaScript changed: `js/main.js` posts `new FormData(form)` and Web3Forms reads the `subject` field as the subject line (docs, "Email Subject line"; the field must be `name="subject"` and may be user-filled rather than hidden). Noted for later: the topic is consumed as the subject, so putting it in the message body too would need a duplicate field, and the field is now required (small friction the user did not explicitly ask for; reverting is dropping `required`). Verified: tag balance clean on all 16 pages, every reference resolves, no em/en dashes or curly quotes in our files, and headless-Firefox screenshots of `contact.html` at 1280px and 390px plus `services.html` at 1280px. **Uncommitted** (`services.html`, `contact.html`, `css/style.css`); no commit or push.
|
||||||
|
|
||||||
|
- **2026-10-01** - **Five funnel answers closed the offer, dropped the scheduling link, and removed a promise the site could not keep.** In one exchange the user settled: (1) **deposits and milestones are both stated** (offer-sheet item 9, the last open offer question), so `contact.html`'s Block D is unblocked and only the deposit percentage and the milestone split are still needed for its payments line; (2) the secondary path is **not a booking link** - a written enquiry is enough - so the **scheduling link is dropped** from `offer-draft.md`, `sales-funnel-plan.md` and `todo.md`, and the contact form's `Book a Project Clarity Session` option is the booking path instead (`services.html`'s `Book a Clarity Session` button already pointed at `contact.html`, so nothing needed rewiring); (3) **Umami will be self-hosted**, so the snippet and the `Start a project` conversion event stay pending rather than dropped; (4) the topic dropdown's options and phrasing are **approved as built**; and (5) **no email address is published** - "just make it contact us directly and use the form". Point 5 changed one production line: `js/main.js`'s submit-failure fallback said "or email us directly", a promise the site could not keep, so it now reads "Something went wrong and your message did not send. Please try again in a moment." That is the only string changed, and `js/main.js` parses clean under **gjs** (SpiderMonkey): `node` turned out **not** to be installed on this machine, so the `node --check` wording in older entries no longer applies and gjs is the substitute (documented in `techContext.md`). Also this session, a **reusable screenshot harness** was built and tested at `.shots/shoot.sh` with `.shots/trim.py`: headless Firefox on a throwaway profile inside the repo (this machine's Firefox is a snap, which cannot use /tmp), one command for any page and width, writing a fold shot plus a full-page shot trimmed to its real height. The two traps it encodes: Firefox captures exactly the `--window-size` box and does not scroll, so a "full page" shot must be taken tall and trimmed, and `--screenshot` needs an **absolute** path (a relative one is written elsewhere, silently, with exit code 0). Fresh shots (a fresh local server on port 8199) confirm the pages render: `services.html` 1280x1200 fold / 1280x3610 full and 390x844 fold / 390x5792 full, `contact.html` 1280x1200 / 1280x1564 and 390x844 / 390x1958. Proof permissions, case-study name confirmations, images and outcome numbers remain deferred by the user to a later session. **Uncommitted:** `services.html`, `contact.html`, `css/style.css`, `js/main.js` and the memory bank; `.shots/` is untracked scratch (now listed in `.gitignore`).
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,6 @@
|
||||||
# Sales Funnel Plan - 2RE03
|
# Sales Funnel Plan - 2RE03
|
||||||
|
|
||||||
> Working plan for turning the site from a portfolio that *has* a contact form into
|
> Working plan for turning the site from a portfolio that *has* a contact form into something that produces qualified enquiries. **Offer answered 2026-10-01:** the user supplied the facts the offer sheet was waiting on (name, promise, inclusions, duration, price band, what the client supplies, revision rounds, ownership, the paid diagnostic, the project floor, what happens after the form, and one outcome line per case study), so the funnel copy is no longer blocked and can be drafted against those answers. The follow-up decisions came back the same day: the secondary low-commitment path is a **scheduling link** alongside the form, the reply voice is **team voice** ("we") with the live "couple of days" promise kept, and there are **no industries or project types to turn down**. One item remains open: whether deposits or milestones are stated at all (item 9). Offer-sheet item 5 was settled on 2026-10-01 as **none yet**: no client has agreed to a name, quote, logo, photograph or identifiable number beyond the client names the case studies already publish, so nothing new client-attributable is added. Nothing here is built yet, and no fact about the company may be invented to fill a gap (see `projectbrief.md` -> Ways of Working 3).
|
||||||
> something that produces qualified enquiries. **Draft, blocked on the offer:** the
|
|
||||||
> user chose to define the offer first (2026-09-22), so the structure below is
|
|
||||||
> agreed in principle and none of the copy can be written until the offer sheet at
|
|
||||||
> the bottom is answered. Nothing here is built yet, and no fact about the company
|
|
||||||
> may be invented to fill a gap (see `projectbrief.md` -> Ways of Working 3).
|
|
||||||
|
|
||||||
## Why
|
## Why
|
||||||
|
|
||||||
|
|
@ -60,28 +55,94 @@ What it costs the user: they have to be willing to publish one number, or one "f
|
||||||
## Page-by-page draft (to confirm once the offer exists)
|
## Page-by-page draft (to confirm once the offer exists)
|
||||||
|
|
||||||
- **`index.html`** - reorder: trigger questions move up under the hero, breadth moves down; add a proof strip (results or client words); add an offer teaser band linking to `services.html`; keep the closing CTA.
|
- **`index.html`** - reorder: trigger questions move up under the hero, breadth moves down; add a proof strip (results or client words); add an offer teaser band linking to `services.html`; keep the closing CTA.
|
||||||
- **`services.html`** - rebuild around 2 to 4 named engagements (what's included, duration, price band, what we need from you, what you own), with the current capability grid demoted to "also on the bench" and the Workflow band kept.
|
- **`services.html`** - rebuild around the single named offer, **The 2RE03 Website Launch** (what's included, duration, price band, what we need from you, what you own), with the paid diagnostic, **The Project Clarity Session**, as the entry step; the current capability grid demoted to "also on the bench" and the Workflow band kept.
|
||||||
- **`about.html`** - back the claims with the same proof the homepage uses; keep "What we won't do", which already does qualification work.
|
- **`about.html`** - back the claims with the same proof the homepage uses; keep "What we won't do", which already does qualification work.
|
||||||
- **`contact.html`** - state what the prospect gets back and when, what the first call covers, and add the secondary low-commitment path; consider two or three qualifying fields (budget band, timeline).
|
- **`contact.html`** - state what the prospect gets back and when, what the first call covers, and add the secondary low-commitment path; consider two or three qualifying fields (budget band, timeline).
|
||||||
- **`case-studies/*.html`** - add an outcome line to each, which needs facts only the user has.
|
- **`case-studies/*.html`** - add the outcome line supplied on 2026-10-01 to each.
|
||||||
- **New (probably)** - `thank-you.html` so a submission is measurable, and possibly a dedicated pricing page if the offer sheet yields 3 or more engagements.
|
- **New (probably)** - `thank-you.html` so a submission is measurable. No dedicated pricing page: the offer sheet yielded one offer plus one diagnostic, not a menu.
|
||||||
- **`css/style.css`** - new components for the proof strip and the offer cards; nothing existing gets reshaped.
|
- **`css/style.css`** - new components for the proof strip and the offer cards; nothing existing gets reshaped.
|
||||||
- **Measurement** - one analytics snippet plus click events, subject to item 8 of the offer sheet.
|
- **Measurement** - one analytics snippet plus click events; confirmed 2026-10-01 as privacy-friendly (Umami).
|
||||||
|
|
||||||
## Offer sheet (needed before any copy is written)
|
## Offer sheet (answered 2026-10-01)
|
||||||
|
|
||||||
1. **The primary offer** in one sentence: we build *what*, for *whom*. Feeds the hero and the offer band.
|
The nine questions below were answered by the user on 2026-10-01. They are now the source of truth for the Offer stage. `memory-bank/offer-draft.md` has been reconciled against these answers (2026-10-01) and holds the fuller slot table and the draft page copy.
|
||||||
2. **The engagements**: 2 to 4 named, each with what's included, typical duration, price (fixed, "from", or band), what the client supplies, and how many revision rounds. Feeds `services.html`. If there is only one real offer, say so: one strong offer beats three thin ones.
|
|
||||||
3. **The floor**: the smallest project worth taking, and any industries or project types to turn down. Feeds qualification.
|
| # | Offer-sheet item | Status | Answer |
|
||||||
4. **Outcomes**: for each of the 10 case studies, one result line (traffic, enquiries, launch date, time saved, sales). One sentence each is enough, and this is the single biggest upgrade available to the site.
|
|---|---|---|---|
|
||||||
5. **Proof we may publish**: client quotes, client names, logos, or nothing yet.
|
| 1 | Primary offer in one sentence | ✅ Answered | **The 2RE03 Website Launch**: "We build distinctive websites that make your business easier to understand, trust, and act on." |
|
||||||
6. **After the form**: who replies, how fast, what the first call covers, and what a prospect leaves with even if they never hire us.
|
| 2 | The engagements | ✅ Answered | one offer plus one paid entry step (below) |
|
||||||
7. **The secondary path**: keep "email a question", or add a scheduling link?
|
| 3 | The floor | ✅ Answered | $3,500 floor; **no industries or project types to turn down** (user, 2026-10-01) |
|
||||||
8. **Measurement**: is a privacy-friendly analytics script acceptable, or does the site stay scripting-free?
|
| 4 | Outcomes | ✅ Answered | one transformation line per case study (below) |
|
||||||
9. **Commercial terms we may state**: file ownership on handoff, deposits and milestones, and whether those may be published.
|
| 5 | Proof we may publish | ✅ Answered | **none yet** (user, 2026-10-01): no client has agreed to a name, quote, logo, photograph or identifiable number beyond the client names the case studies already publish; the permission rule stands (ask first), so nothing new client-attributable is added |
|
||||||
|
| 6 | After the form | ✅ Answered | who replies and the first-call agenda (below) |
|
||||||
|
| 7 | The secondary path | ✅ Answered, revised 2026-10-01 | **none**, replacing the earlier "scheduling link" answer: a written enquiry is enough, so the form is the only path and no email address is published anywhere on the site. `services.html`'s `Book a Clarity Session` already points at `contact.html`, whose `Book a Project Clarity Session` option is the booking |
|
||||||
|
| 8 | Measurement | ✅ Answered | privacy-friendly analytics (Umami), **self-hosted**, which the user is setting up and will add later |
|
||||||
|
| 9 | Commercial terms we may state | ✅ Answered | ownership wording below, plus **both deposits and milestones** stated (2026-10-01): a deposit starts the project, payments fall due as agreed milestones are met, and the balance is due on delivery. The percentage and the split are still to be supplied |
|
||||||
|
|
||||||
|
### The offer, as answered
|
||||||
|
|
||||||
|
**Primary offer name:** The 2RE03 Website Launch.
|
||||||
|
|
||||||
|
**One-sentence promise:** "We build distinctive websites that make your business easier to understand, trust, and act on."
|
||||||
|
|
||||||
|
**What's included:**
|
||||||
|
- Project strategy and content structure
|
||||||
|
- Custom visual design
|
||||||
|
- Responsive website development
|
||||||
|
- Copy editing / copywriting assistance
|
||||||
|
- SEO, accessibility and performance basics
|
||||||
|
- Launch, hosting and handoff
|
||||||
|
|
||||||
|
**Typical duration:** most projects launch in 4 to 6 weeks.
|
||||||
|
|
||||||
|
**Price band:** website projects start at $3,500; most complete projects are $4,500 to $7,500.
|
||||||
|
|
||||||
|
**What the client supplies:** their existing copy (if they have it), photos, logos and other brand assets, access to the existing website/domain/hosting, subject-matter information 2RE03 cannot reasonably research, and feedback and decisions when requested. If they do not have all of it, that is fine: 2RE03 can help create or source what is missing.
|
||||||
|
|
||||||
|
**Revision rounds:** 2. (The 2026-10-01 answer supersedes the 3 recorded 2026-09-22; `offer-draft.md` now carries 2.)
|
||||||
|
|
||||||
|
**Ownership terms:** when the project is paid in full, the client owns the finished website, the design assets, the copy created specifically for them, and their content. 2RE03 retains ownership of its pre-existing tools, reusable code, processes, and third-party components.
|
||||||
|
|
||||||
|
**The paid first step (diagnostic):** the **Project Clarity Session**, $250 for 60 to 90 minutes. The client leaves with a clear definition of the site's job, a recommended site structure, priority pages/features, the content and assets they need, a rough project scope, a realistic timeline, and a ballpark budget. The $250 is credited in full toward a 2RE03 project if they hire 2RE03 within 30 days.
|
||||||
|
|
||||||
|
**Project floor:** $3,500.
|
||||||
|
|
||||||
|
**After the form:** the **team** replies ("we"), not a named individual, to match the voice in `productContext.md`. The first call is a 30-minute Project Fit Call covering what the client is trying to accomplish; who needs to use, buy or understand it; what is wrong with the current situation; what already exists; the deadline; the budget; and whether 2RE03 is the right fit. The reply-time promise stays as the live copy states it ("aim to reply within a couple of days"). A **scheduling link** sits alongside the form for visitors who are not ready to fill it in.
|
||||||
|
|
||||||
|
**Outcome lines (one per case study):**
|
||||||
|
|
||||||
|
| Case | Outcome line |
|
||||||
|
|---|---|
|
||||||
|
| Mask Aid Project | Turned a Chinese-developed device into a clear English-language campaign people could understand, support, and buy into. |
|
||||||
|
| 1 Woman's Art and Magic | Turned decades of artwork into two books and a website designed to showcase and sell them. |
|
||||||
|
| Sam's Rules | Turned a book, its illustrations, tools, and companion material into one coherent published system. |
|
||||||
|
| Mehavior | Made an app that didn't exist yet tangible enough to present to investors. |
|
||||||
|
| Jensen's Red Barn | Turned a family antique business and its history into a welcoming online destination. |
|
||||||
|
| Upscale Food Cart | Repositioned a working food cart visually for higher-end markets. |
|
||||||
|
| Silver Lining | Created an identity designed to attract the right clients without falling into the obvious cliché. |
|
||||||
|
| Victoria Fuller | Reorganized a complicated personal story into a website where visitors could actually find the point. |
|
||||||
|
| Urban Moto | Built a repeatable editorial and advertising pipeline for a motorcycle magazine. |
|
||||||
|
| Teach Each Other AI | Turned a recurring meetup into a site where visitors could instantly find when, where, and what happened. |
|
||||||
|
|
||||||
|
These are transformation lines rather than metrics, which is honest (no invented numbers) and still outcome-shaped; a real number can replace a line later where one exists. They supersede the ten bespoke per-case prompts in `offer-draft.md` (Block E).
|
||||||
|
|
||||||
|
**Decisions (settled 2026-10-01):**
|
||||||
|
- Ask clients for permission before publishing their name, company, testimonial, photograph, logo, or identifiable project details (rule set; **no clearances yet** as of 2026-10-01, so the proof stage ships as named case studies plus the transformation outcome lines only).
|
||||||
|
- Use privacy-friendly analytics (Umami). The user is setting it up and will add it later, so measurement is deferred, not dropped.
|
||||||
|
- ~~Add a **scheduling link** as the secondary, low-commitment path alongside the form.~~ **Revised 2026-10-01: there is no scheduling link and no published email address.** A written enquiry is enough; the form is the single path, and the topic dropdown (which offers `Book a Project Clarity Session`) is what makes it a booking.
|
||||||
|
- Speak in **team voice** ("we"), including on `contact.html`, rather than naming an individual.
|
||||||
|
- Turn away **no particular industry or project type**: there is no exclusion list.
|
||||||
|
- Keep every page consistent with the others (user, 2026-10-01: "make all the pages consistent"), so the offer-shaped `services.html`, `index.html` and `contact.html` do not contradict the pages that stay portfolio-shaped. The promise stays website-shaped while the other capabilities stay visible as consistent bench depth.
|
||||||
|
|
||||||
## Next action
|
## Next action
|
||||||
|
|
||||||
The offer sheet is the blocker. Once items 1 to 4 are answered, the funnel copy gets drafted against them for review, then built in small verified steps using the same harness as the caption and copy passes: tag balance and reference checks across all 16 pages, no em dashes, headless-Chrome measurement of any gallery touched, screenshots at 1280px and 390px, and a live probe after the user deploys.
|
The offer sheet is answered, so the blocker is gone. In order:
|
||||||
|
|
||||||
|
1. ✅ **Reconcile the draft (done 2026-10-01).** `memory-bank/offer-draft.md` now carries every answer: revision rounds 2, the **Project Clarity Session** ($250, 60 to 90 minutes, credited in full within 30 days), the ownership wording, the price band and $3,500 floor, and the ten outcome lines in place of the `[[TODO]]` prompts.
|
||||||
|
2. ✅ **Proof clearances settled as `none yet` (2026-10-01).** No client has agreed to a name, quote, logo, photograph or identifiable number, and the case studies already publish the client names, so the proof stage ships as **named case studies plus the transformation outcome lines only**, adding nothing new client-attributable. (This was offer-sheet item 5.) **Item 9 was answered on 2026-10-01: deposits and milestones are both stated**, so nothing about the offer is open before copy ships. The deposit percentage and the milestone split are still to be supplied, and no figure goes on a page until they are.
|
||||||
|
3. **Draft the funnel copy** against these answers for review, in the site's voice (team "we", no em dashes), before any page is touched.
|
||||||
|
4. **Build in small verified steps** using the same harness as the caption and copy passes: tag balance and reference checks across all 16 pages, no em dashes, headless-browser measurement of any gallery touched, screenshots at 1280px and 390px, and a live probe after the user deploys. `thank-you.html` and the Umami snippet come last so a submission becomes measurable; there is no scheduling link to add (see the revised decision above).
|
||||||
|
|
||||||
|
**Build progress (2026-10-01):** step 1 is done. `services.html` is rebuilt around the offer (Blocks A and B: **The 2RE03 Website Launch** and **The Project Clarity Session**) and awaits the user's red pen. It was verified with a tag-balance check, a reference check across all 16 pages, an em-dash scan and full-page screenshots at 1280px and 390px. Note for the harness: this machine has no Chrome and its Firefox is a snap, so screenshots use headless Firefox with the profile written **inside the repo** (the snap cannot use `/tmp` or a profile outside a writable tree); the earlier "headless-Chrome" wording in the passes above is superseded. `index.html` is next, and `contact.html` waits for the deposits/milestones answer. **Later on 2026-10-01:** the `services.html` red pen came back and both edits are applied (the web-craft paragraph cut from the offer block, the meta and `og:description` rewrite kept), and `contact.html` gained the **first piece of Block D**: the free-text subject field is now a required topic dropdown (`name="subject"`, labelled "What do you want to talk about?"), so the chosen topic becomes the Web3Forms notification subject line. `index.html` is still next. **Also on 2026-10-01, five more answers landed:** **deposits and milestones are both stated** (item 9, the last open offer question); the **scheduling link was dropped** because a written enquiry is enough, so the form is the only path and no email address is published, which also removed the "or email us directly" fallback from `js/main.js`; **Umami will be self-hosted** (the user is setting it up); the **topic dropdown is approved as built**; and nothing on the site may promise an email address ("just make it contact us directly and use the form"). `contact.html`'s Block D is unblocked and waits only on the deposit percentage and milestone split for its payments line. Proof permissions, case-study names, images and outcome numbers are deferred by the user to a later session. A reusable screenshot harness now lives at `.shots/shoot.sh` with `.shots/trim.py` (untracked scratch, documented in `techContext.md`).
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -122,3 +122,37 @@ No build step and no package manager - it is plain static HTML/CSS/JS.
|
||||||
told otherwise. Approval is per action, not standing.
|
told otherwise. Approval is per action, not standing.
|
||||||
- Follow project conventions once established; verify each change (validate HTML,
|
- Follow project conventions once established; verify each change (validate HTML,
|
||||||
check asset paths, check responsive behavior) before reporting done.
|
check asset paths, check responsive behavior) before reporting done.
|
||||||
|
- **No Node.js on this machine.** `node` is not installed (found 2026-10-01, which
|
||||||
|
supersedes the `node --check` wording in earlier entries). To syntax-check a JS
|
||||||
|
file, parse it with the installed **gjs** (SpiderMonkey), which compiles without
|
||||||
|
executing:
|
||||||
|
`gjs -c 'const Gio=imports.gi.Gio; const [ok,d]=Gio.File.new_for_path("js/main.js").load_contents(null); new Function(new TextDecoder().decode(d));'`
|
||||||
|
No output means it parses; a parse error is printed.
|
||||||
|
- **Page harness (python3, no browser):** the standing check is tag balance plus
|
||||||
|
reference resolution across all 16 pages (root `.html` plus `case-studies/`),
|
||||||
|
run with `html.parser`: each start tag is pushed and matched against its end tag
|
||||||
|
(void elements skipped), and every local `href`/`src` is resolved from the file's
|
||||||
|
own folder. Expect `pages with tag problems: 0` and `unresolved references: none`.
|
||||||
|
Site files are then scanned for **any** non-ASCII character, which catches em
|
||||||
|
dashes, en dashes, curly quotes and non-breaking spaces in one pass (the only
|
||||||
|
legitimate non-ASCII in the site is the `é` in `case-studies/silver-lining.html`).
|
||||||
|
|
||||||
|
### Screenshots (headless Firefox)
|
||||||
|
- **Use `.shots/shoot.sh`.** It shoots any page at both widths and writes a fold
|
||||||
|
shot plus a full-page shot into the untracked `.shots/` folder:
|
||||||
|
`.shots/shoot.sh services.html work.html` (defaults to `services.html contact.html`;
|
||||||
|
add `PORT=9000` if 8199 is taken). It starts its own local server if none is
|
||||||
|
running, and `.gitignore` keeps `.shots/` out of the repo.
|
||||||
|
- **Why it is built this way** (all three learned the hard way on 2026-10-01):
|
||||||
|
1. This machine has no Chrome and its Firefox is a **snap**, which cannot write
|
||||||
|
to `/tmp`, so the shots run on a throwaway profile at `.shots/ffprof` inside
|
||||||
|
the repo. The real Firefox profile is never touched.
|
||||||
|
2. Firefox's `--screenshot` captures **exactly the `--window-size` box and does
|
||||||
|
not scroll**, so a full-page shot has to be taken taller than the page and
|
||||||
|
then trimmed: `.shots/trim.py` removes the trailing blank rows instead (the
|
||||||
|
fold shots are left alone).
|
||||||
|
3. `--screenshot` needs an **absolute** path. A relative one is written
|
||||||
|
somewhere else, silently, with exit code 0.
|
||||||
|
- Shot sizes: 1280px wide (fold 1200, full 5000 tall) and 390px wide (fold 844,
|
||||||
|
full 8000 tall), then trimmed to the page's real height. Read the PNGs directly
|
||||||
|
(VS Code preview, or `xdg-open .shots/services-1280-full.png`).
|
||||||
|
|
|
||||||
|
|
@ -4,11 +4,11 @@ Lives in `memory-bank/` with the rest of the memory bank (moved there from the r
|
||||||
|
|
||||||
The other memory-bank files keep only the current priorities and point here, so there is a single source of truth for what is left to do.
|
The other memory-bank files keep only the current priorities and point here, so there is a single source of truth for what is left to do.
|
||||||
|
|
||||||
Last updated: 2026-09-22.
|
Last updated: 2026-10-01.
|
||||||
|
|
||||||
## Now
|
## Now
|
||||||
|
|
||||||
Nothing queued, and everything to date is **live**: the four copy briefs, the work-caption pass, the caption revision, the section-copy pass and the icon/social assets all shipped in `8a7c3ea` (2026-09-22) and were verified from the outside. The next candidates are the case-study grid captions (Content), a real 2RE03 logo (Assets), the caption names that still need confirming, and the Polish items at the bottom.
|
Nothing queued, and everything to date is **live**: the four copy briefs, the work-caption pass, the caption revision, the section-copy pass and the icon/social assets all shipped in `8a7c3ea` (2026-09-22) and were verified from the outside. **The sales-funnel rebuild is now the top actionable item** (unblocked 2026-10-01; draft and build per the Polish item below). Also waiting: the case-study grid captions (Content), a real 2RE03 logo (Assets), the caption names that still need confirming, the deposit percentage and the milestone split (the payments line needs them before a figure can be published), and the deferred proof answers (client permissions, images, outcome numbers), which the user is coming back to later.
|
||||||
|
|
||||||
## Assets
|
## Assets
|
||||||
|
|
||||||
|
|
@ -27,7 +27,7 @@ Nothing queued, and everything to date is **live**: the four copy briefs, the wo
|
||||||
- [ ] find and add IKEHU video
|
- [ ] find and add IKEHU video
|
||||||
- [ ] Urban Moto case-study hero is low resolution (450px native at its widest);
|
- [ ] Urban Moto case-study hero is low resolution (450px native at its widest);
|
||||||
find or shoot a better crop.
|
find or shoot a better crop.
|
||||||
- [ ] Redesign the site as a sales funnel rather than as a design piece. **In planning, blocked on the offer facts** (2026-09-22): the diagnosis, the stage structure and the page-by-page draft live in `memory-bank/sales-funnel-plan.md`, the offer shape is settled (decision 34: **one primary offer with a published price band, plus a fixed-price diagnostic as the entry step**), and the fill-in-the-blank copy, with every remaining `[[slot]]` listed in one table, lives in `memory-bank/offer-draft.md`. No copy gets written and no page gets rebuilt until those slots are answered, because they need facts only the user has: the price band and typical duration, what's included, what the client supplies, the project floor, the diagnostic's price and deliverable, and one outcome line per case study.
|
- [ ] Redesign the site as a sales funnel rather than as a design piece. **Unblocked 2026-10-01**: the offer sheet is answered and the copy is reconciled, so the work can move to drafting and building. The diagnosis, the stage structure and the page-by-page draft live in `memory-bank/sales-funnel-plan.md`; the offer shape is settled (decision 34: **one primary offer with a published price band, plus a fixed-price diagnostic as the entry step**), and the offer itself is **The 2RE03 Website Launch** (4 to 6 weeks, from $3,500, most $4,500 to $7,500, 2 revision rounds) with the **Project Clarity Session** ($250, 60 to 90 minutes, credited in full within 30 days) as the entry step, aimed at a 30-minute Project Fit Call. `memory-bank/offer-draft.md` holds the reconciled slot table and the draft copy for `services.html`, `index.html` and `contact.html`. Build order: `services.html`, then `index.html`, `contact.html`, the case-study outcome lines, and finally `thank-you.html` with the Umami snippet. **Nothing about the offer is open any more** (2026-10-01): deposits and milestones are both stated (a deposit starts the project, payments fall due as agreed milestones are met, balance on delivery), and the deposit percentage plus the milestone split are the only figures still to come. There is **no scheduling link** (revised 2026-10-01: a written enquiry is enough, so the form is the only path) and **no published email address**, so no copy may promise "email us directly". The published-proof question is settled as **none yet** (2026-10-01): no client has agreed to a name, quote, logo or identifiable number, so the proof stage ships as named case studies plus the outcome lines, adding nothing new client-attributable. **Building has started: `services.html` (funnel Blocks A + B) was rebuilt 2026-10-01 and red-penned the same day (the web-craft paragraph cut, the meta rewrite kept); `contact.html`'s free-text subject field is now a required "What do you want to talk about?" dropdown whose selection becomes the email subject line; `index.html` is next.**
|
||||||
|
|
||||||
## Done
|
## Done
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
<title>Services | 2RE03</title>
|
<title>Services | 2RE03</title>
|
||||||
<meta name="description" content="2RE03 services: web design, logos and identity, print design, 3D modeling, and written work.">
|
<meta name="description" content="The 2RE03 Website Launch: distinctive websites, typically 4 to 6 weeks, from $3,500. Add the Project Clarity Session when a project needs scoping first.">
|
||||||
<meta name="theme-color" content="#2ee666">
|
<meta name="theme-color" content="#2ee666">
|
||||||
<link rel="icon" href="img/favicon.svg" type="image/svg+xml">
|
<link rel="icon" href="img/favicon.svg" type="image/svg+xml">
|
||||||
<link rel="icon" href="img/favicon.ico">
|
<link rel="icon" href="img/favicon.ico">
|
||||||
|
|
@ -13,7 +13,7 @@
|
||||||
<meta property="og:type" content="website">
|
<meta property="og:type" content="website">
|
||||||
<meta property="og:site_name" content="2RE03">
|
<meta property="og:site_name" content="2RE03">
|
||||||
<meta property="og:title" content="Services | 2RE03">
|
<meta property="og:title" content="Services | 2RE03">
|
||||||
<meta property="og:description" content="2RE03 services: web design, logos and identity, print design, 3D modeling, and written work.">
|
<meta property="og:description" content="The 2RE03 Website Launch: distinctive websites, typically 4 to 6 weeks, from $3,500. Add the Project Clarity Session when a project needs scoping first.">
|
||||||
<meta property="og:url" content="https://2re03.com/services.html">
|
<meta property="og:url" content="https://2re03.com/services.html">
|
||||||
<meta property="og:image" content="https://2re03.com/img/og-image.png">
|
<meta property="og:image" content="https://2re03.com/img/og-image.png">
|
||||||
<meta property="og:image:width" content="1200">
|
<meta property="og:image:width" content="1200">
|
||||||
|
|
@ -58,36 +58,68 @@
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<!-- Web design (lead service) -->
|
<!-- The offer (funnel Block A) -->
|
||||||
<section class="section">
|
<section class="section" id="offer">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="row g-4 g-lg-5 align-items-center">
|
<div class="row g-4 g-lg-5 align-items-center">
|
||||||
<div class="col-lg-6">
|
<div class="col-lg-6">
|
||||||
<p class="eyebrow mb-2">Main event</p>
|
<p class="eyebrow mb-2">The offer</p>
|
||||||
<h2>Web Design</h2>
|
<h2>The 2RE03 Website Launch</h2>
|
||||||
<p class="lead text-body-secondary">Sites that load fast, read clearly, and behave on any screen.</p>
|
<p class="lead text-body-secondary">We build distinctive websites that make your business easier to understand, trust, and act on.</p>
|
||||||
<p>We build by hand and with WordPress, whichever the project actually needs. More recently we lean on
|
<ul class="list-unstyled d-flex flex-wrap gap-2 mb-4">
|
||||||
AI for the boring parts: generating structure, organizing content, testing responsive layouts. The
|
<li class="pill">Typical project: 4 to 6 weeks</li>
|
||||||
tools change; the standard doesn't: functional, well-structured sites.</p>
|
<li class="pill">From $3,500</li>
|
||||||
<p>We also take care of the unglamorous backend: hosting, site management, sourcing the right domain,
|
<li class="pill">2 rounds of revisions</li>
|
||||||
and keeping the whole thing running. A site isn't finished the moment it goes live.</p>
|
</ul>
|
||||||
|
<div class="d-flex flex-wrap gap-3">
|
||||||
|
<a class="btn btn-brand btn-lg" href="contact.html">Start a project</a>
|
||||||
|
<a class="btn btn-outline-brand btn-lg" href="#clarity-session">Not ready for a project?</a>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-lg-6">
|
<div class="col-lg-6">
|
||||||
<div class="card card-service p-4">
|
<div class="card card-service p-4">
|
||||||
<h3 class="h6 text-uppercase text-brand mb-3">What's included</h3>
|
<h3 class="h6 text-uppercase text-brand mb-3">What's included</h3>
|
||||||
<ul class="mb-0">
|
<ul class="mb-0">
|
||||||
<li>Hand-coded HTML, CSS, and JavaScript</li>
|
<li>Project strategy and content structure</li>
|
||||||
<li>WordPress builds and content structure</li>
|
<li>Custom visual design</li>
|
||||||
<li>Responsive layouts, tested across devices</li>
|
<li>Responsive website development</li>
|
||||||
<li>Accessibility and performance as defaults</li>
|
<li>Copy editing and copywriting assistance</li>
|
||||||
<li>Design and build from the same room</li>
|
<li>SEO, accessibility and performance basics</li>
|
||||||
<li>Web hosting setup and management</li>
|
<li>Launch, hosting and handoff</li>
|
||||||
<li>Domain and URL sourcing</li>
|
|
||||||
<li>Ongoing site maintenance</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="offer-terms">
|
||||||
|
<div class="row g-4">
|
||||||
|
<div class="col-md-6">
|
||||||
|
<h3 class="h6 text-uppercase text-brand mb-2">What you supply</h3>
|
||||||
|
<p class="mb-0 text-body-secondary">Your existing copy (if you have it), photos, logos and other brand assets, access to your existing website, domain and hosting, the subject-matter information we can't reasonably research, and feedback and decisions when we ask. Don't have all of that? That's okay, we can help create or source what's missing.</p>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-6">
|
||||||
|
<h3 class="h6 text-uppercase text-brand mb-2">What you own</h3>
|
||||||
|
<p class="mb-0 text-body-secondary">When the project is paid in full, you own the finished website, the design assets, the copy created specifically for you, and your content. We retain ownership of our pre-existing tools, reusable code, processes, and third-party components.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- The entry step (funnel Block B): the Project Clarity Session -->
|
||||||
|
<section class="section-sm" id="clarity-session">
|
||||||
|
<div class="container">
|
||||||
|
<div class="bg-ink text-cream rounded-4 p-4 p-md-5">
|
||||||
|
<p class="eyebrow eyebrow-cream mb-2">Start smaller</p>
|
||||||
|
<h2 class="mb-3">The Project Clarity Session</h2>
|
||||||
|
<p class="lead text-cream opacity-75 col-lg-9 mb-4">A guided 60 to 90 minute session that turns a vague website idea into a clear plan. You leave with a clear definition of what the site has to do, a recommended site structure, the priority pages and features, the content and assets you'll need, a rough project scope, a realistic timeline, and a ballpark budget.</p>
|
||||||
|
<div class="d-flex flex-wrap align-items-center gap-3 mb-3">
|
||||||
|
<span class="pill pill--ink">$250</span>
|
||||||
|
<span class="pill pill--ink">60 to 90 minutes</span>
|
||||||
|
<a class="btn btn-brand" href="contact.html">Book a Clarity Session</a>
|
||||||
|
</div>
|
||||||
|
<p class="mb-0 text-cream opacity-75">Hire us within 30 days and the full $250 comes off the project price.</p>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue