diff --git a/ks-research/story-images/06b-three-ways-to-back.png b/ks-research/story-images/06b-three-ways-to-back.png index d16efe0..7d997a3 100644 Binary files a/ks-research/story-images/06b-three-ways-to-back.png and b/ks-research/story-images/06b-three-ways-to-back.png differ diff --git a/ks-research/story-images/06c-three-ways-to-back-no-paperback.png b/ks-research/story-images/06c-three-ways-to-back-no-paperback.png index ebe65e5..b1e0e3f 100644 Binary files a/ks-research/story-images/06c-three-ways-to-back-no-paperback.png and b/ks-research/story-images/06c-three-ways-to-back-no-paperback.png differ diff --git a/ks-research/story-images/07-header-the-book-and-aibook-fun.png b/ks-research/story-images/07-header-the-book-and-aibook-fun.png new file mode 100644 index 0000000..afa443f Binary files /dev/null and b/ks-research/story-images/07-header-the-book-and-aibook-fun.png differ diff --git a/ks-research/story-images/07-header-the-retreat.png b/ks-research/story-images/07-header-the-retreat.png deleted file mode 100644 index d8f399a..0000000 Binary files a/ks-research/story-images/07-header-the-retreat.png and /dev/null differ diff --git a/ks-research/story-images/09b-aibook-fun-device-mockup.png b/ks-research/story-images/07b-aibook-fun-device-mockup.png similarity index 100% rename from ks-research/story-images/09b-aibook-fun-device-mockup.png rename to ks-research/story-images/07b-aibook-fun-device-mockup.png diff --git a/ks-research/story-images/07b-retreat-venue-PLACEHOLDER.png b/ks-research/story-images/07b-retreat-venue-PLACEHOLDER.png deleted file mode 100644 index e8b14e2..0000000 Binary files a/ks-research/story-images/07b-retreat-venue-PLACEHOLDER.png and /dev/null differ diff --git a/ks-research/story-images/08-header-build-it-yourself-or-with-us.png b/ks-research/story-images/08-header-build-it-yourself-or-with-us.png new file mode 100644 index 0000000..50e2731 Binary files /dev/null and b/ks-research/story-images/08-header-build-it-yourself-or-with-us.png differ diff --git a/ks-research/story-images/08-header-the-academy.png b/ks-research/story-images/08-header-the-academy.png deleted file mode 100644 index 47d9df4..0000000 Binary files a/ks-research/story-images/08-header-the-academy.png and /dev/null differ diff --git a/ks-research/story-images/08b-academy-map.png b/ks-research/story-images/08b-academy-map.png deleted file mode 100644 index f90294f..0000000 Binary files a/ks-research/story-images/08b-academy-map.png and /dev/null differ diff --git a/ks-research/story-images/08b-bundle-comparison.png b/ks-research/story-images/08b-bundle-comparison.png new file mode 100644 index 0000000..d42c6b2 Binary files /dev/null and b/ks-research/story-images/08b-bundle-comparison.png differ diff --git a/ks-research/story-images/08c-academy-sites-PLACEHOLDER.png b/ks-research/story-images/08c-academy-sites-PLACEHOLDER.png deleted file mode 100644 index 210c55c..0000000 Binary files a/ks-research/story-images/08c-academy-sites-PLACEHOLDER.png and /dev/null differ diff --git a/ks-research/story-images/09-header-book-library-and-aibook-fun.png b/ks-research/story-images/09-header-book-library-and-aibook-fun.png deleted file mode 100644 index 325ded9..0000000 Binary files a/ks-research/story-images/09-header-book-library-and-aibook-fun.png and /dev/null differ diff --git a/ks-research/story-images/09-header-in-person-the-retreat.png b/ks-research/story-images/09-header-in-person-the-retreat.png new file mode 100644 index 0000000..e9410fd Binary files /dev/null and b/ks-research/story-images/09-header-in-person-the-retreat.png differ diff --git a/ks-research/story-images/09b-retreat-venue-PLACEHOLDER.png b/ks-research/story-images/09b-retreat-venue-PLACEHOLDER.png new file mode 100644 index 0000000..b670dd6 Binary files /dev/null and b/ks-research/story-images/09b-retreat-venue-PLACEHOLDER.png differ diff --git a/ks-research/story-images/11b-timeline.png b/ks-research/story-images/11b-timeline.png index fef3e86..bc94542 100644 Binary files a/ks-research/story-images/11b-timeline.png and b/ks-research/story-images/11b-timeline.png differ diff --git a/ks-research/story-images/14b-authors-and-team-PLACEHOLDER.png b/ks-research/story-images/14b-authors-and-team-PLACEHOLDER.png index 36e3f06..c516345 100644 Binary files a/ks-research/story-images/14b-authors-and-team-PLACEHOLDER.png and b/ks-research/story-images/14b-authors-and-team-PLACEHOLDER.png differ diff --git a/ks-research/story-images/README.md b/ks-research/story-images/README.md index f1889d5..85b011d 100644 --- a/ks-research/story-images/README.md +++ b/ks-research/story-images/README.md @@ -1,11 +1,13 @@ # We Own AI: Kickstarter story images -All graphics for the Story tab of the We Own AI — The New American Dream campaign, built from the v2 campaign guide (`ks-research/kickstarter-campaign-guide.md`, section 2.3 Story and Part 3.1 assets). +All graphics for the Story tab of the We Own AI — The New American Dream campaign, built from the v2.1 campaign guide (`ks-research/kickstarter-campaign-guide.md`, section 2.3 Story and Part 3.1 assets). AOP.biz bundle contents come from GUIDE-436 (`WeOwnAi/s004_fedarch/_GUIDES_/GUIDE-436.md`). + +**Updated 27 September 2026:** the rewards are now three sections: The book, Build it yourself or with us (AOP.biz bundles), and In person (the Burned Out Advisor Retreat). Sections 7 to 9 are now The book and AiBook.fun, Build it yourself or with us, and In person: the Retreat. The Academy is held out of launch, so its header, map, and site cards are no longer in the set (their source stays in `build.py` behind `ACADEMY_IN_LAUNCH = False`). New: `08b-bundle-comparison.png`. Changed: 06b, 06c, 11b (vertical timeline with the 20 October cutoff), 14b (AOP.biz bundles lead instead of Academy lead). Renamed without other changes: the AiBook.fun device mockup is now `07b` (was 09b). - Kickstarter shows story images about 680 px wide. Every file here is exported at 1360 px wide (2x) as PNG, well under 5 MB. - Workflow from the guide: add each section title as a Heading in the Story editor, insert that section's header image under it, paste the text, then add the section's other images where they fit. - **Book cover:** the cover is the one already designed for the landing page: the 3D book in `marketing-site/components/Book3D.jsx` (styles `.book3d*` in `marketing-site/styles/globals.css`, belly band `marketing-site/public/american-dream-banner.webp`). `src/render_cover.py` screenshots it exactly as it appears on https://aibook.fun, in its resting pose, and saves `src/assets-gen/cover-3d.png` (3D, transparent background) and `cover-flat.png` (front face only). Nothing about it was redesigned. **Note:** the landing cover reads "The Field Guide / Responsible Agentic AI / Tested workflows you can actually run / AiBook.fun" with an "American Dream" band. It does not say "We Own AI". If the campaign title should be on the cover, update Book3D.jsx first and re-render. -- **Real screenshots:** 05b and 09b are screenshots of the live site (https://aibook.fun/read/recipe/RE-01 and https://aibook.fun/read/real-estate), taken by `src/render_screens.py`. +- **Real screenshots:** 05b and 07b are screenshots of the live site (https://aibook.fun/read/recipe/RE-01 and https://aibook.fun/read/real-estate), taken by `src/render_screens.py`. - Style: the AiBook.fun field-guide system from `marketing-site/styles/globals.css` (paper `#fcfbf8`/`#f6f4ee`, pine `#1c5d4c`/`#12463a`, amber `#b4791f`; Fraunces, Hanken Grotesk, JetBrains Mono). The compass mark comes from `Book3D.jsx`. Emoji in headers use Noto Color Emoji and match the guide's section headings. - Everything was built as HTML/CSS and rendered with headless Chrome. **No AI-generated imagery is used.** For Kickstarter's Use of AI section: none of these images were made with AI image tools. - Files marked **PLACEHOLDER** have empty frames for photos (or names) the owner has to supply. Don't upload them until they've been re-rendered with the real files. @@ -29,28 +31,27 @@ All graphics for the Story tab of the We Own AI — The New American Dream campa | 05b-sample-workflow-try-it.png | 5 Try one workflow | 1360 × 1722 | Real screenshots of workflow RE-01 at aibook.fun/read/recipe/RE-01 in a browser frame: the header, title and kit (who runs it, tools, files, model, time, cost, output), then its Try-it. A strip marks the parts left out (Problem to Evidence). | Sample workflow RE-01: draft a property-market brief with an AI agent without leaking client data, with a 15-minute Try-it | | 05c-button-try-the-workflow.png | 5 Try one workflow | 1360 × 298 | Button image. In the editor, link it to https://aibook.fun/read/recipe/RE-01 (live now; the site currently labels it a "Reading demo"). | Try the sample workflow | | 06-header-three-ways-to-back.png | 6 Three ways to back | 1360 × 300 | Section header | Three ways to back | -| 06b-three-ways-to-back.png | 6 Three ways to back | 1360 × 1634 | Three columns (Retreat, Academy, Book & Library) showing what each is, what it includes, and when. Book & Library prices are one per line ($19, $25, $47 featured). The signed paperback appears with "Price on the reward" and a small image of the landing cover. The Book & Library header shows the cover too. No Retreat or Academy price is shown. | Three ways to back: Retreat, Academy, and Book & Library, with Book & Library rewards at $19, $25 and $47 | -| 06c-three-ways-to-back-no-paperback.png | 6 Three ways to back | 1360 × 1414 | Same image without the paperback (the Book & Library header still shows the cover), for use if the paperback reward is left out at launch | Same as above | -| 07-header-the-retreat.png | 7 The Retreat | 1360 × 300 | Section header | The Retreat | -| 07b-retreat-venue-PLACEHOLDER.png | 7 The Retreat | 1360 × 765 | Venue photo frame with "Burned Out Advisor Retreat, 4 to 6 November 2026" and a "369 seats" badge | Burned Out Advisor Retreat, 4 to 6 November 2026, 369 seats | -| 08-header-the-academy.png | 8 The Academy | 1360 × 300 | Section header | The Academy | -| 08b-academy-map.png | 8 The Academy | 1360 × 956 | US map with pins on #NoDe (North Denver, CO), Villa Park (Chicagoland, IL), and Azur Resorts (Orlando, FL) | Map of the three AiCoach + AOP.biz BootCamp sites: North Denver, Villa Park near Chicago, and Orlando | -| 08c-academy-sites-PLACEHOLDER.png | 8 The Academy | 1360 × 666 | Three site cards, each with a photo frame | The three Academy sites | -| 09-header-book-library-and-aibook-fun.png | 9 Book & Library and AiBook.fun | 1360 × 300 | Section header | Book & Library and AiBook.fun | -| 09b-aibook-fun-device-mockup.png | 9 Book & Library and AiBook.fun | 1360 × 1188 | Laptop and phone frames with real screenshots of the live AiBook.fun reader (https://aibook.fun/read/real-estate), with callouts for Chapter essay, Workflow, Try-it (about 15 minutes), and Last updated | Mockup of the AiBook.fun reader on a laptop and phone, showing a chapter essay, a workflow, its Try-it and the last-updated date | +| 06b-three-ways-to-back.png | 6 Three ways to back | 1360 × 1784 | Three columns. The book: $19, $25, $47 (featured), and the signed paperback with "Price on the reward" and the landing cover; delivery months. Build it yourself or with us: $1,000 DIY, $2,000 Launch, $5,000 Growth (with "Closes 20 Oct 2026"), and a note that the $988 a month service and $200 a month hosting are separate, optional agreements and Kickstarter charges the pledge once. In person: the Retreat, 369 seats, seat + signed paperback + eBook + 12 months of AiBook.fun, 4–6 November 2026, closes 20 Oct 2026, "Price on the reward". No Retreat price or venue is shown. | Three ways to back: the book from $19, AOP.biz bundles at $1,000, $2,000 and $5,000, and the Burned Out Advisor Retreat | +| 06c-three-ways-to-back-no-paperback.png | 6 Three ways to back | 1360 × 1710 | Same image without the paperback tier in The book column (the Retreat still lists its signed paperback), for use if the paperback reward is left out at launch | Same as above | +| 07-header-the-book-and-aibook-fun.png | 7 The book and AiBook.fun | 1360 × 300 | Section header | The book and AiBook.fun | +| 07b-aibook-fun-device-mockup.png | 7 The book and AiBook.fun | 1360 × 1188 | Laptop and phone frames with real screenshots of the live AiBook.fun reader (https://aibook.fun/read/real-estate), with callouts for Chapter essay, Workflow, Try-it (about 15 minutes), and Last updated. Unchanged from the old 09b. | Mockup of the AiBook.fun reader on a laptop and phone, showing a chapter essay, a workflow, its Try-it and the last-updated date | +| 08-header-build-it-yourself-or-with-us.png | 8 Build it yourself or with us | 1360 × 300 | Section header | Build it yourself or with us | +| 08b-bundle-comparison.png | 8 Build it yourself or with us | 1360 × 2588 | Comparison table of the AOP.biz bundles ($1,000 DIY on WeOwn Cloud with no support of any kind; $2,000 Launch; $5,000 Growth, highlighted, with a Retreat seat): the starter pack, what our team sets up, what Growth adds, the Retreat seat (Growth only), and the pledge window (Growth closes 20 Oct 2026). Below: the separate, optional agreements after the pledge ($200 a month hosting; $988 a month service from April 2027; 50% cohort attendance). Contents from GUIDE-436. | AOP.biz bundles compared: DIY $1,000, Launch $2,000, and Growth $5,000, which adds a Retreat seat | +| 09-header-in-person-the-retreat.png | 9 In person: the Retreat | 1360 × 300 | Section header | In person: the Retreat | +| 09b-retreat-venue-PLACEHOLDER.png | 9 In person: the Retreat | 1360 × 765 | Venue photo frame with "Burned Out Advisor Retreat, 4 to 6 November 2026", "Pledges close 20 October 2026", and a "369 seats" badge. No venue name (pending). | Burned Out Advisor Retreat, 4 to 6 November 2026, 369 seats, pledges close 20 October 2026 | | 10-header-stretch-goals.png | 10 Stretch goals | 1360 × 300 | Section header | Stretch goals | | 10b-stretch-goals-locked.png | 10 Stretch goals | 1360 × 500 | Bar with padlocks: $15,000 Bonus chapter, $35,000 Audiobook sample, $54,000 Live Q&A replay pack; goal $5,000 | Stretch goals: $15,000 bonus chapter, $35,000 audiobook sample, $54,000 live Q&A replay pack | | 10c-stretch-goals-15k-unlocked.png | 10 Stretch goals | 1360 × 500 | Same, with $15,000 unlocked | Stretch goal $15,000 unlocked: bonus chapter | | 10d-stretch-goals-35k-unlocked.png | 10 Stretch goals | 1360 × 500 | Same, with $15,000 and $35,000 unlocked | Stretch goals $15,000 and $35,000 unlocked | | 10e-stretch-goals-54k-unlocked.png | 10 Stretch goals | 1360 × 500 | Same, with all three unlocked | All three stretch goals unlocked | | 11-header-timeline.png | 11 Timeline | 1360 × 300 | Section header | Timeline | -| 11b-timeline.png | 11 Timeline | 1360 × 920 | Path with six numbered stops, using the guide's dates. Stop 4 (Academy cohorts) reads "Dates to be announced". | Timeline from launch on 2 October 2026 to signed paperbacks in February 2027 | +| 11b-timeline.png | 11 Timeline | 1360 × 1214 | Vertical path with eight numbered stops from the guide: opens 2 Oct; Retreat and Growth close 20 Oct (amber); ends 4 Nov with the Retreat 4–6 Nov; AiBook.fun access mid-November; December cohort; January eBook; January to March AOP.biz service; February paperbacks | Timeline from launch on 2 October 2026, with the 20 October cutoff, to signed paperbacks in February 2027 | | 12-header-shipping-and-delivery.png | 12 Shipping and delivery | 1360 × 300 | Section header | Shipping and delivery | | 12b-shipping-and-delivery-lanes.png | 12 Shipping and delivery | 1360 × 1154 | Two lanes. Digital: email, library access within about 14 days, eBook January 2027. Print: Pledge Manager survey (address, shipping, taxes), printing, signing January 2027, shipping February 2027. The eBook step and the paperback lane show the landing cover. No countries or rates. | Digital rewards arrive by email; signed paperbacks go through the Pledge Manager survey, printing, signing and shipping | | 13-header-early-readers.png | 13 Early readers | 1360 × 300 | Section header | Early readers | | 13b-early-reader-quotes-PLACEHOLDER.png | 13 Early readers | 1360 × 908 | Three quote-card templates (photo, quote, name, role). Use only quotes that readers have approved in writing. | Quotes from early readers | | 14-header-authors-and-team.png | 14 The authors and team | 1360 × 300 | Section header | The authors and team | -| 14b-authors-and-team-PLACEHOLDER.png | 14 The authors and team | 1360 × 1442 | Three author cards for the co-authors the landing page lists as confirmed (`Authors.jsx`): Real Estate & Finance, Fractional C-Suite, Technology & RAAI. Below them, team cards with roles from the guide. Names and photos are still needed because the site does not publish them. | The authors and the team behind We Own AI | +| 14b-authors-and-team-PLACEHOLDER.png | 14 The authors and team | 1360 × 1442 | Three author cards for the co-authors the landing page lists as confirmed (`Authors.jsx`): Real Estate & Finance, Fractional C-Suite, Technology & RAAI. Below them, team cards with roles from the guide, including the AOP.biz bundles lead. Names and photos are still needed because the site does not publish them. | The authors and the team behind We Own AI | | 14c-author-headshot-800x800-PLACEHOLDER.png | 14 The authors and team | 800 × 800 | Neutral 800 × 800 headshot frame for any author without a photo | (placeholder, do not upload) | | 15-header-special-thanks.png | 15 Special thanks | 1360 × 300 | Section header | Special thanks | | 16-header-how-to-help.png | 16 How to help | 1360 × 300 | Section header | How to help | @@ -61,11 +62,10 @@ No real people or venues were generated. These frames wait for real files: | Photo | Needed for | Size | |---|---|---| -| Retreat venue photo | 07b | Landscape, at least 1360 × 765 | -| Academy site photos: Azur Resorts (Orlando), #NoDe (North Denver), Villa Park (Chicagoland) | 08c | At least 800 × 600 each, landscape | +| Retreat venue photo (venue still pending) | 09b | Landscape, at least 1360 × 765 | | Early reader photos, with written permission | 13b | At least 400 × 400, square | | Author headshots (and names) for the three confirmed co-authors | 14b (and on their own as story images) | 800 × 800, square | -| Team headshots: @THY, @LFG, @CEO, @GTM, Osinachi Patrick, Academy BootCamp lead | 14b | 800 × 800, square | +| Team headshots: @THY, @LFG, @CEO, @GTM, Osinachi Patrick, AOP.biz bundles lead | 14b | 800 × 800, square | ## Waiting on owner decisions (re-render when settled) @@ -73,8 +73,9 @@ No real people or venues were generated. These frames wait for real files: - **Chapter lead authors:** 04c follows the landing page's founding library. The landing page lists Higher Education and Communities co-authors as "To be announced". - **Public sample workflow:** 05b shows RE-01 as it is live on AiBook.fun. If a different workflow becomes the public sample, re-run `render_screens.py` with its URL and relink 05c. - **Paperback price:** 06b says "Price on the reward". Use 06c if the paperback is left out at launch. -- **A fourth reward bucket:** 06b and 06c are built from a list of columns in `three_ways()` in `build.py`. To add a fourth bucket once its contents and price are confirmed, append one more column entry there and re-run `python build.py '^06'`; the grid adjusts without a CSS change. -- **Academy cohort dates and seats:** 08c has no dates or seats, and timeline stop 4 says "Dates to be announced". +- **Retreat price and venue:** 06b shows "Price on the reward" and no venue; 09b has no venue name. GUIDE-436 names TradeWinds Resort, St. Pete Beach, but the Kickstarter pack retired the "St. Pete" label, so the venue waits for the owner. +- **DIY hosting start date:** 06b and 08b give the $200 a month WeOwn Cloud hosting without a start date, on purpose. +- **Academy (held out of launch):** it will be announced in a campaign update once dates and prices exist. The map and site-card source is kept in `build.py` (Academy section). To bring it back, set `ACADEMY_IN_LAUNCH = True`, give it story numbers, add a fourth column to `three_ways()` (the grid adjusts without a CSS change), add its timeline stop, and re-run. - **Retreat agenda:** the guide asks for a three-day agenda graphic "once the agenda exists". It doesn't exist yet, so that graphic has not been made. - **Names for the author and team cards, and approval to list Osinachi Patrick.** - **Tier names on the landing page:** `marketing-site/components/Tiers.jsx` still shows older tiers ($10 Supporter / $47 per year / Founding Sponsor). The story images follow the v2 campaign guide instead. @@ -84,9 +85,9 @@ No real people or venues were generated. These frames wait for real files: ``` cd src python render_cover.py # landing-page book cover from https://aibook.fun -> assets-gen/cover-3d.png, cover-flat.png -python render_screens.py # live screenshots for 05b and 09b from https://aibook.fun +python render_screens.py # live screenshots for 05b and 07b from https://aibook.fun python build.py # all story images -> ../ ; pass a regex to render a subset, e.g. python build.py '^06' python contact_sheet.py ``` -Requires Python with `playwright` and `pillow`, a Chrome/Chromium binary (the path is set in the scripts; render_cover.py uses SwiftShader WebGL flags so the 3D faces sort correctly), and the Fraunces, Hanken Grotesk, JetBrains Mono, and Noto Color Emoji fonts installed. Text and data live at the top of each section in `build.py`: QUOTES, TEAM, CHAPTERS, STOPS, GOALS, and so on. Photos go in `src/assets/` (see `src/assets/README.md`). `make_map.py` builds the US outline from public-domain US Census-derived state boundaries. +Requires Python with `playwright` and `pillow`, a Chrome/Chromium binary (the path is set in the scripts; render_cover.py uses SwiftShader WebGL flags so the 3D faces sort correctly), and the Fraunces, Hanken Grotesk, JetBrains Mono, and Noto Color Emoji fonts installed. Text and data live at the top of each section in `build.py`: QUOTES, TEAM, CHAPTERS, STOPS, GOALS, BUNDLE_COLS, BUNDLE_ROWS, and so on. Photos go in `src/assets/` (see `src/assets/README.md`). `make_map.py` builds the US outline from public-domain US Census-derived state boundaries. diff --git a/ks-research/story-images/contact-sheet.png b/ks-research/story-images/contact-sheet.png index 4b12630..bb224ea 100644 Binary files a/ks-research/story-images/contact-sheet.png and b/ks-research/story-images/contact-sheet.png differ diff --git a/ks-research/story-images/src/assets/README.md b/ks-research/story-images/src/assets/README.md index f3f54fe..df81244 100644 --- a/ks-research/story-images/src/assets/README.md +++ b/ks-research/story-images/src/assets/README.md @@ -5,10 +5,10 @@ Images whose slots are filled lose the `-PLACEHOLDER` suffix. | File name (any of .jpg/.png/.webp) | Used in | Minimum size | |---|---|---| -| retreat-venue | 07b Retreat | 1360 × 765, landscape | -| site-orlando, site-north-denver, site-villa-park | 08c Academy sites | 800 × 600 each, landscape | +| retreat-venue | 09b Retreat | 1360 × 765, landscape | +| site-orlando, site-north-denver, site-villa-park | Academy site cards (held out of launch; used only when `ACADEMY_IN_LAUNCH = True`) | 800 × 600 each, landscape | | reader-1, reader-2, reader-3 | 13b early reader quotes | 400 × 400, square | | author-1, author-2, author-3 | 14b authors (Real Estate & Finance, Fractional C-Suite, Technology & RAAI) | 800 × 800, square | -| team-thy, team-lfg, team-ceo, team-gtm, team-osinachi-patrick, team-academy-lead | 14b team | 800 × 800, square | +| team-thy, team-lfg, team-ceo, team-gtm, team-osinachi-patrick, team-aop-lead | 14b team | 800 × 800, square | The book cover is not a photo slot: it is rendered from the landing page's `Book3D.jsx` by `render_cover.py` into `src/assets-gen/`. diff --git a/ks-research/story-images/src/build.py b/ks-research/story-images/src/build.py index 4dc9793..2901ae6 100644 --- a/ks-research/story-images/src/build.py +++ b/ks-research/story-images/src/build.py @@ -3,7 +3,7 @@ Usage: python build.py (render everything into ../) Owner photos: drop files into src/assets/ using the names in SLOT_FILES (jpg/png/webp) and re-run; images whose photo slots are still empty get a -PLACEHOLDER suffix. -Sources of truth: ks-research/kickstarter-campaign-guide.md (v2), Story section and Part 3.1.""" +Sources of truth: ks-research/kickstarter-campaign-guide.md (v2.1), Story section and Part 3.1; GUIDE-436 for the AOP.biz bundles.""" import asyncio, json, math, pathlib, re, sys from icons import ICONS, ILLUS, MARK, icon HERE = pathlib.Path(__file__).parent @@ -56,8 +56,8 @@ HEADERS = [ ('01', 'welcome', '👋', 'Welcome'), ('02', 'why-this-book', '❤️', 'Why this book'), ('03', 'who-its-for', '🎯', 'Who it’s for'), ('04', 'whats-inside', '📖', 'What’s inside'), ('05', 'try-one-workflow', '🧪', 'Try one workflow'), ('06', 'three-ways-to-back', '🧭', 'Three ways to back'), - ('07', 'the-retreat', '🏕️', 'The Retreat'), ('08', 'the-academy', '🎓', 'The Academy'), - ('09', 'book-library-and-aibook-fun', '📚', 'Book & Library and AiBook.fun'), ('10', 'stretch-goals', '🎁', 'Stretch goals'), + ('07', 'the-book-and-aibook-fun', '📚', 'The book and AiBook.fun'), ('08', 'build-it-yourself-or-with-us', '🛠️', 'Build it yourself or with us'), + ('09', 'in-person-the-retreat', '🏕️', 'In person: the Retreat'), ('10', 'stretch-goals', '🎁', 'Stretch goals'), ('11', 'timeline', '⏳', 'Timeline'), ('12', 'shipping-and-delivery', '📦', 'Shipping and delivery'), ('13', 'early-readers', '👀', 'Early readers'), ('14', 'authors-and-team', '✍️', 'The authors and team'), ('15', 'special-thanks', '🙏', 'Special thanks'), ('16', 'how-to-help', '📣', 'How to help'), @@ -68,6 +68,11 @@ def header(num, slug, emoji, title): f'
{TITLE}

{title}

') return body HDR = {n: (f'{n}-header-{s}', header(n, s, e, t)) for n, s, e, t in HEADERS} +# The Academy (AiCoach + AOP.biz BootCamp) is held out of the launch rewards; it will be announced in a campaign update +# once dates and prices exist (guide Appendix E). Its header, map and site cards are kept below and render only when +# ACADEMY_IN_LAUNCH is True (they would then need a slot in the story numbering). +ACADEMY_IN_LAUNCH = False +HDR['academy'] = ('A-header-the-academy', header('A', 'the-academy', '🎓', 'The Academy')) def add_header(n): name, body = HDR[n]; page(name, body, w=680, h=150) @@ -233,152 +238,104 @@ page('05c-button-try-the-workflow', f'''
# ---------------------------------------------------------------- 06 three ways to back add_header('06') def three_ways(paperback=True): - """One column per reward bucket. To add a fourth bucket later, append another (html, width) entry - to `cols` below; the grid template is built from the list, so no CSS change is needed.""" + """One column per reward section: The book / Build it yourself or with us / In person. + `cols` is a list of (html, width) entries; the grid template is built from the list, so adding a column + (for example the Academy once it is announced) needs no CSS change.""" book_items = [('$19', 'Early Bird eBook', 'First 200 backers', False), ('$25', 'eBook and backer-only updates', '', False), - ('$47', 'eBook and 12 months of the AiBook.fun library', '', True)] + ('$47', 'eBook and 12 months of the AiBook.fun library', 'Featured', True)] rows = ''.join(f'
  • {p}{t}' + (f'{s}' if s else '') + '
  • ' for p, t, s, f in book_items) if paperback: - rows += f'
  • Signed paperback and eBookPrice on the reward
  • ' + rows += f'
  • Signed paperback and eBookPrice on the reward
  • ' book_deliv = ('
  • Library access: within about 14 days of a successful campaign
  • eBook: January 2027
  • ' + ('
  • Signed paperback: February 2027
  • ' if paperback else '')) - inc = f'' - cols = [(f''' -
    -

    Retreat

    Burned Out Advisor Retreat

    -

    What it is

    Three days in person with the authors and other advisors.

    -

    {icon("people")}369 seats

    -

    Includes

    {inc}
    -

    When

    {icon("calendar")}4–6 November 2026

    -

    Price on the reward

    -
    ''', '1fr'), - (f''' -
    -

    Academy

    AiCoach + AOP.biz BootCamp

    -

    What it is

    A seat in the next cohort at one of three sites:

    -

    {icon("pin")}Orlando, Florida

    {icon("pin")}North Denver, Colorado

    {icon("pin")}Villa Park, Chicagoland, Illinois

    -

    Includes

    {inc}
    -

    When

    {icon("calendar")}The next cohort at your chosen site

    -

    Price on the reward

    -
    ''', '1fr'), - (f''' + bundles = [('$1,000', 'DIY', 'The starter pack on WeOwn Cloud, to run yourself. No support of any kind.', ''), + ('$2,000', 'Launch', 'Set up with our team: onboarding and a first implementation cycle, plus three months of AOP.biz service and the December 2026 cohort.', ''), + ('$5,000', 'Growth', 'Everything in Launch, plus deeper integration, more agents, ongoing support, and a Retreat seat.', 'Closes 20 Oct 2026')] + brows = ''.join(f'
  • {p}{n}
    {d}' + + (f'{tag}' if tag else '') + '
  • ' for p, n, d, tag in bundles) + inc = (f'') + cols = [(f"""
    -

    Book & Library

    The book and the AiBook.fun library

    +

    The book

    The book and the AiBook.fun library

    Choose one

      {rows}

    When

      {book_deliv}
    -
    ''', '1.3fr')] - many = len(cols) > 3 # four or more columns: let columns shrink below their content width and wrap the price pill - grid = ' '.join(f'minmax(0,{w})' if many else w for _, w in cols) +
    """, '1.05fr'), + (f""" +
    +

    Build it yourself or with us

    AOP.biz bundles

    +

    Choose one

    +

    After the pledge

    AOP.biz service ($988 a month) and WeOwn Cloud hosting ($200 a month) are separate, optional agreements. Kickstarter charges your pledge once.

    +
    +
    """, '1.2fr'), + (f""" +
    +

    In person

    Burned Out Advisor Retreat

    +

    What it is

    Three days in person with the authors and other advisors.

    +

    {icon("people")}369 seats

    +

    Includes

    {inc}
    +

    When

    {icon("calendar")}4–6 November 2026

    {icon("clock")}Closes 20 Oct 2026

    +

    Price on the reward

    +
    """, '0.95fr')] + many = len(cols) > 3 + grid = ' '.join(f'minmax(0,{w})' for _, w in cols) html = ''.join(h for h, _ in cols) - return f'''
    {html} -
    ''' -TW_CSS = ''' -.cols{display:grid;grid-template-columns:1fr 1fr 1.3fr;grid-template-rows:repeat(6,auto);column-gap:10px} -.col{padding:18px 15px 16px;display:grid;grid-template-rows:subgrid;grid-row:span 6} -.nm{font-family:var(--mono);font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--pine);font-weight:600} + return f"""
    {html} +
    """ +TW_CSS = """ +.canvas{padding:28px 26px} +.cols{display:grid;grid-template-rows:repeat(6,auto);column-gap:10px} +.col{padding:18px 14px 16px;display:grid;grid-template-rows:subgrid;grid-row:span 6;min-width:0} +.nm{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--pine);font-weight:600;line-height:1.35} .col h3{font-family:var(--display);font-weight:600;font-size:19px;letter-spacing:-.02em;line-height:1.15;margin:6px 0 10px} .sec{border-top:1px dashed var(--line-2);padding:10px 0 12px} .span2{grid-row:span 2} -.lb{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:6px} +.lb{font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:6px} .sec p{font-size:14px;line-height:1.4} +.sec p.sm{font-size:13px;line-height:1.42;color:var(--ink)} .fact{display:flex;gap:7px;align-items:flex-start;margin-top:6px;font-weight:600} .lb+.fact{margin-top:0} +.fact.cut{color:var(--amber)} +.fact.cut .ico{color:var(--amber)} .fact .ico,.inc .ico{width:17px;height:17px;margin-top:1px} .inc li{display:flex;gap:7px;align-items:flex-start;font-size:14px;line-height:1.35;padding:2px 0} .pr{align-self:end} -.price{font-family:var(--mono);font-size:12.5px;font-weight:600;color:var(--pine);background:var(--pine-wash);border:1px solid var(--pine-tint);border-radius:999px;padding:7px 6px;text-align:center;white-space:nowrap} -.many .price{white-space:normal} -.book{border-color:rgba(28,93,76,.28)} -.prices li{display:grid;grid-template-columns:58px 1fr;gap:8px;align-items:baseline;padding:7px 8px;border-radius:10px;font-size:14px;line-height:1.35} +.price{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--pine);background:var(--pine-wash);border:1px solid var(--pine-tint);border-radius:999px;padding:7px 6px;text-align:center;white-space:normal;line-height:1.3} +.book,.build{border-color:rgba(28,93,76,.28)} +.prices li{display:flex;flex-direction:column;gap:2px;padding:7px 9px;border-radius:10px;font-size:14px;line-height:1.35} .prices li+li{margin-top:4px} -.prices b{font-family:var(--display);font-weight:900;font-size:24px;letter-spacing:-.03em;color:var(--ink)} -.prices b.np{align-self:start;width:30px;margin:0 0 0 6px}.prices b.np img{width:30px;display:block} -.ch{display:flex;align-items:flex-start;justify-content:space-between;gap:10px} -.ch img{width:46px;border-radius:2px 4px 4px 2px;box-shadow:0 6px 12px -6px rgba(18,63,52,.5);margin:4px 0 8px} -.prices small{display:block;font-size:13px;color:var(--muted)} +.prices b{font-family:var(--display);font-weight:900;font-size:24px;letter-spacing:-.03em;color:var(--ink);line-height:1.05} +.prices li.pb{flex-direction:row;gap:10px;align-items:flex-start} +.prices b.np{flex:none;width:30px;margin:2px 0 0}.prices b.np img{width:30px;display:block} +.ch{display:flex;align-items:flex-start;justify-content:space-between;gap:8px} +.ch img{width:42px;border-radius:2px 4px 4px 2px;box-shadow:0 6px 12px -6px rgba(18,63,52,.5);margin:4px 0 8px;flex:none} +.prices small{display:block;font-size:12.5px;color:var(--muted)} .prices li.feat{background:var(--pine);color:#eaf1ec} .prices li.feat b{color:#fff} +.prices li.feat small{color:#cfe0d6} +.bund .bt{display:flex;align-items:baseline;gap:8px} +.bund .bt em{font-style:normal;font-family:var(--mono);font-size:12.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--pine)} +.bund li.feat .bt em{color:#cfe0d6} +.bund span{font-size:13.5px;line-height:1.4} +.bund .tag{font-style:normal;align-self:flex-start;margin-top:5px;font-family:var(--mono);font-size:11.5px;font-weight:600;letter-spacing:.04em;background:var(--amber);color:#fff;border-radius:999px;padding:3px 9px} .dl li{font-size:14px;line-height:1.4;padding:2px 0 2px 14px;position:relative} .dl li::before{content:"";position:absolute;left:0;top:8px;width:6px;height:6px;border-radius:999px;background:var(--pine)} -''' +""" page('06b-three-ways-to-back', three_ways(True), css=TW_CSS) page('06c-three-ways-to-back-no-paperback', three_ways(False), css=TW_CSS) -# ---------------------------------------------------------------- 07 retreat +# ---------------------------------------------------------------- 07 the book and aibook.fun (device mockup) add_header('07') -page('07b-retreat-venue', f'''
    -{slot("retreat-venue", "Venue photo goes here", "Landscape · at least 1360 × 765 px", "venue")} -

    {TITLE.split(" — ")[0]}

    Burned Out Advisor Retreat

    {icon("calendar")}4 to 6 November 2026

    -
    369seats
    -
    ''', h=383, px_h=765, css=''' -.canvas{padding:0;height:383px} -.venue{position:absolute;inset:0} -.venue .ph{border-radius:0;border-width:0;justify-content:flex-start;padding-top:70px} -.ov{position:absolute;left:28px;bottom:26px;background:rgba(252,251,248,.96);border-radius:16px;padding:16px 22px 18px;box-shadow:var(--sh-lg);max-width:420px} -.ov h3{font-family:var(--display);font-weight:900;font-size:30px;letter-spacing:-.025em;line-height:1.05;margin:6px 0 10px} -.ov .d{display:flex;align-items:center;gap:9px;font-weight:700;font-size:18px} -.ov .d .ico{width:22px;height:22px} -.seats{position:absolute;right:28px;top:26px;width:108px;height:108px;border-radius:999px;background:var(--pine);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 0 0 5px rgba(252,251,248,.9),var(--sh-lg)} -.seats b{font-family:var(--display);font-weight:900;font-size:38px;line-height:1;letter-spacing:-.03em} -.seats span{font-family:var(--mono);font-size:14px;letter-spacing:.12em;text-transform:uppercase;color:#cfe0d6;margin-top:3px} -''') - -# ---------------------------------------------------------------- 08 academy -add_header('08') -W, H = MAP['w'], MAP['h'] -pins = MAP['pins'] -def pct(k): return pins[k][0] / W * 100, pins[k][1] / H * 100 -SITES = [('villapark', 'Chicagoland, Illinois', 'Villa Park', 'lab-r'), - ('denver', 'North Denver, Colorado', '#NoDe', 'lab-l'), - ('orlando', 'Orlando, Florida', 'Azur Resorts', 'lab-l')] -pin_html = '' -for k, city, sub, cls in SITES: - x, y = pct(k) - pin_html += (f'
    {ICONS["pin"]}' - f'
    {sub}{city}
    ') -page('08b-academy-map', f'''
    -

    AiCoach + AOP.biz BootCamp · three sites

    -
    {MAP_SVG}{pin_html}
    -
    ''', css=f''' -.map{{position:relative;margin-top:14px;aspect-ratio:{W}/{H}}} -.map>svg{{position:absolute;inset:0;width:100%;height:100%}} -.pin{{position:absolute;width:0;height:0}} -.pin>svg{{position:absolute;width:40px;height:40px;left:-20px;top:-36px;color:#fff;fill:var(--pine);stroke:#fff;stroke-width:1.6;filter:drop-shadow(0 3px 4px rgba(0,0,0,.25))}} -.lab{{position:absolute;background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px 13px 9px;box-shadow:var(--sh-md);white-space:nowrap}} -.lab b{{display:block;font-family:var(--display);font-weight:600;font-size:18px;letter-spacing:-.02em;line-height:1.1}} -.lab span{{display:block;font-size:14px;color:var(--muted);margin-top:2px}} -.lab-r{{left:26px;top:-46px}} -.lab-l{{right:26px;top:-46px}} -''') -SITE_CARDS = [('site-orlando', 'Azur Resorts', 'Orlando, Florida'), ('site-north-denver', '#NoDe', 'North Denver, Colorado'), - ('site-villa-park', 'Villa Park', 'Chicagoland, Illinois')] -page('08c-academy-sites', '
    ' + ''.join( - f'
    {slot(src, "Site photo goes here", "At least 800 × 600 px", "sp")}

    Site {i}

    {name}

    {icon("pin")}{place}

    ' - for i, (src, name, place) in enumerate(SITE_CARDS, 1)) + '
    ', css=''' -.sg{display:grid;grid-template-columns:repeat(3,1fr);gap:12px} -.s{overflow:hidden} -.sp{aspect-ratio:4/3} -.sp .ph{border-radius:0;border-width:0 0 2px 0} -.sp .ph b{font-size:14px}.sp .ph small{font-size:11.5px} -.b{padding:14px 15px 16px} -.n{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)} -.b h3{font-family:var(--display);font-weight:600;font-size:21px;letter-spacing:-.02em;margin:4px 0 6px} -.pl{display:flex;gap:6px;align-items:flex-start;font-size:14px;line-height:1.35;color:var(--ink)} -.pl .ico{width:17px;height:17px;margin-top:1px} -''') - -# ---------------------------------------------------------------- 09 book & library and aibook.fun (device mockup) -add_header('09') L, Ph = SCREENS['laptop'], SCREENS['phone'] def tgt(box, vw, vh, name, side='left', gap=16): """Callout target just outside the text box (left or right side), vertically centred.""" x, y, w, h = box cx = x - gap if side == 'left' else x + w + gap return f'' -page('09b-aibook-fun-device-mockup', f'''
    +page('07b-aibook-fun-device-mockup', f'''
    {tgt(L["essay"], L["vw"], L["vh"], "essay", gap=22)}{tgt(L["workflow"], L["vw"], L["vh"], "workflow", gap=22)}
    @@ -430,6 +387,156 @@ window.afterLayout = async () => {{ .foot-note{text-align:center;margin-top:14px} ''') +# ---------------------------------------------------------------- 08 build it yourself or with us (bundle comparison) +add_header('08') +# Contents from GUIDE-436 (WeOwnAi/s004_fedarch/_GUIDES_/GUIDE-436.md) plus the owner's DIY definition (27 Sep 2026). +# Values: True = included, False = not included, or a short string. +BUNDLE_COLS = [('$1,000', 'DIY', 'On WeOwn Cloud.
    No support of any kind.', False), + ('$2,000', 'Launch', 'Set up with our team.', False), + ('$5,000', 'Growth', 'Includes a Retreat seat.', True)] +BUNDLE_ROWS = [ + ('The starter pack', [ + ('Starter agent fleet', [True, True, True]), + ('Docs and how-to guides', [True, True, True]), + ('Agentic assistant that answers from your own knowledge base', [True, True, True]), + ('Dedicated self-hosted instance; you own the data', [True, True, True])]), + ('Set up with our team', [ + ('Onboarding', [False, True, True]), + ('First implementation cycle', [False, True, True]), + ('Three months of AOP.biz service, January to March 2027', [False, True, True]), + ('Seat in the December 2026 AOPbizFastTrack cohort', [False, True, True])]), + ('Growth adds', [ + ('Deeper integration', [False, False, True]), + ('More agents working together', [False, False, True]), + ('Ongoing support cadence', [False, False, True]), + ('SharedBrain layer', [False, False, True]), + ('Workflow and automation layer', [False, False, True]), + ('Burned Out Advisor Retreat seat, 4–6 November 2026', [False, False, True])]), + ('Pledge window', [ + ('Available until', ['4 Nov 2026', '4 Nov 2026', '20 Oct 2026'])]), +] +def cell(v, i): + g = ' g' if BUNDLE_COLS[i][3] else '' + if v is True: return f'{ICONS["check"]}' + if v is False: return f'–' + cut = ' cut' if '20 Oct' in v else '' + return f'{v}' +thead = '' + ''.join( + f'{p}{n}{d}' for p, n, d, g in BUNDLE_COLS) + '' +tbody = '' +for grp, rows_ in BUNDLE_ROWS: + tbody += f'{grp}' + for lab, vals in rows_: + tbody += f'{lab}' + ''.join(cell(v, i) for i, v in enumerate(vals)) + '' +page('08b-bundle-comparison', f"""
    +

    AOP.biz bundles · what each one includes

    +{thead}{tbody}
    +

    After the pledge: separate, optional agreements

    +
      +
    • DIY: WeOwn Cloud hosting, $200 a month.
    • +
    • Launch and Growth: AOP.biz service, $988 a month from April 2027, after the three included months.
    • +
    • Launch and Growth: the December cohort asks you to attend at least 50% of weekly sessions, agreed when you register.
    • +
    +

    None of these is part of your pledge. Kickstarter charges your pledge once, when the campaign ends.

    +

    WeOwn Cloud: infrastructure provisioned and managed by agents built by WeOwnDev. Bundle contents from GUIDE-436.

    +
    """, css=""" +.canvas{padding:28px 26px 26px} +.bc{width:100%;border-collapse:separate;border-spacing:0;margin-top:14px;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--sh-sm)} +.bc th,.bc td{padding:8px 10px;border-bottom:1px solid var(--line);vertical-align:middle} +.bc tr:last-child td{border-bottom:none} +.bc th{background:var(--paper);text-align:center;padding:14px 8px 12px;vertical-align:top} +.bc th b{display:block;font-family:var(--display);font-weight:900;font-size:25px;letter-spacing:-.03em;line-height:1.05;color:var(--ink)} +.bc th em{display:block;font-style:normal;font-family:var(--mono);font-size:12.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--pine);margin-top:4px} +.bc th small{display:block;font-size:12px;line-height:1.3;color:var(--muted);font-weight:500;margin-top:5px} +.bc th.g{background:var(--pine)} +.bc th.g b{color:#fff}.bc th.g em{color:#cfe0d6}.bc th.g small{color:#dfeae4} +.bc th.lab{background:var(--paper)} +.bc td.lab{font-size:13.5px;line-height:1.35;color:var(--ink);width:44%} +.bc td.c{text-align:center;width:18.6%} +.bc td.g{background:rgba(28,93,76,.05)} +.yes{display:inline-block;width:21px;height:21px;color:var(--pine)} +.yes svg{width:21px;height:21px} +.no{color:#b9b1a4;font-size:16px;font-weight:600} +.txt{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--ink);white-space:nowrap} +.txt.cut{color:#fff;background:var(--amber);border-radius:999px;padding:3px 8px} +.bc tr.grp td{background:var(--paper-2);font-family:var(--mono);font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:7px 10px 6px} +.after{margin-top:14px;padding:14px 18px 14px} +.after .lb{font-family:var(--mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--pine);font-weight:600;margin-bottom:8px} +.after li{font-size:13.5px;line-height:1.42;padding:2px 0 2px 14px;position:relative} +.after li::before{content:"";position:absolute;left:0;top:8px;width:6px;height:6px;border-radius:999px;background:var(--pine)} +.after .k{font-size:13.5px;line-height:1.42;color:var(--muted);margin-top:8px} +""") + +# ---------------------------------------------------------------- 09 in person: the retreat +add_header('09') +page('09b-retreat-venue', f"""
    +{slot("retreat-venue", "Venue photo goes here", "Landscape · at least 1360 × 765 px", "venue")} +

    In person

    Burned Out Advisor Retreat

    {icon("calendar")}4 to 6 November 2026

    +

    {icon("clock")}Pledges close 20 October 2026

    +
    369seats
    +
    """, h=383, px_h=765, css=""" +.canvas{padding:0;height:383px} +.venue{position:absolute;inset:0} +.venue .ph{border-radius:0;border-width:0;justify-content:flex-start;padding-top:70px} +.ov{position:absolute;left:28px;bottom:26px;background:rgba(252,251,248,.96);border-radius:16px;padding:16px 22px 18px;box-shadow:var(--sh-lg);max-width:420px} +.ov h3{font-family:var(--display);font-weight:900;font-size:30px;letter-spacing:-.025em;line-height:1.05;margin:6px 0 10px} +.ov .d{display:flex;align-items:center;gap:9px;font-weight:700;font-size:18px} +.ov .d+.d{margin-top:6px} +.ov .d.cut{font-size:15.5px;color:var(--amber)} +.ov .d .ico{width:22px;height:22px} +.ov .d.cut .ico{color:var(--amber);width:19px;height:19px} +.seats{position:absolute;right:28px;top:26px;width:108px;height:108px;border-radius:999px;background:var(--pine);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 0 0 5px rgba(252,251,248,.9),var(--sh-lg)} +.seats b{font-family:var(--display);font-weight:900;font-size:38px;line-height:1;letter-spacing:-.03em} +.seats span{font-family:var(--mono);font-size:14px;letter-spacing:.12em;text-transform:uppercase;color:#cfe0d6;margin-top:3px} +""") + +def acad_page(*a, **k): + if ACADEMY_IN_LAUNCH: page(*a, **k) +if ACADEMY_IN_LAUNCH: + name, body = HDR['academy']; page(name, body, w=680, h=150) +# ---------------------------------------------------------------- Academy (planned for a campaign update; not rendered at launch) +W, H = MAP['w'], MAP['h'] +pins = MAP['pins'] +def pct(k): return pins[k][0] / W * 100, pins[k][1] / H * 100 +SITES = [('villapark', 'Chicagoland, Illinois', 'Villa Park', 'lab-r'), + ('denver', 'North Denver, Colorado', '#NoDe', 'lab-l'), + ('orlando', 'Orlando, Florida', 'Azur Resorts', 'lab-l')] +pin_html = '' +for k, city, sub, cls in SITES: + x, y = pct(k) + pin_html += (f'
    {ICONS["pin"]}' + f'
    {sub}{city}
    ') +acad_page('A-academy-map', f'''
    +

    AiCoach + AOP.biz BootCamp · three sites

    +
    {MAP_SVG}{pin_html}
    +
    ''', css=f''' +.map{{position:relative;margin-top:14px;aspect-ratio:{W}/{H}}} +.map>svg{{position:absolute;inset:0;width:100%;height:100%}} +.pin{{position:absolute;width:0;height:0}} +.pin>svg{{position:absolute;width:40px;height:40px;left:-20px;top:-36px;color:#fff;fill:var(--pine);stroke:#fff;stroke-width:1.6;filter:drop-shadow(0 3px 4px rgba(0,0,0,.25))}} +.lab{{position:absolute;background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px 13px 9px;box-shadow:var(--sh-md);white-space:nowrap}} +.lab b{{display:block;font-family:var(--display);font-weight:600;font-size:18px;letter-spacing:-.02em;line-height:1.1}} +.lab span{{display:block;font-size:14px;color:var(--muted);margin-top:2px}} +.lab-r{{left:26px;top:-46px}} +.lab-l{{right:26px;top:-46px}} +''') +SITE_CARDS = [('site-orlando', 'Azur Resorts', 'Orlando, Florida'), ('site-north-denver', '#NoDe', 'North Denver, Colorado'), + ('site-villa-park', 'Villa Park', 'Chicagoland, Illinois')] +acad_page('A-academy-sites', '
    ' + ''.join( + f'
    {slot(src, "Site photo goes here", "At least 800 × 600 px", "sp")}

    Site {i}

    {name}

    {icon("pin")}{place}

    ' + for i, (src, name, place) in enumerate(SITE_CARDS, 1)) + '
    ', css=''' +.sg{display:grid;grid-template-columns:repeat(3,1fr);gap:12px} +.s{overflow:hidden} +.sp{aspect-ratio:4/3} +.sp .ph{border-radius:0;border-width:0 0 2px 0} +.sp .ph b{font-size:14px}.sp .ph small{font-size:11.5px} +.b{padding:14px 15px 16px} +.n{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)} +.b h3{font-family:var(--display);font-weight:600;font-size:21px;letter-spacing:-.02em;margin:4px 0 6px} +.pl{display:flex;gap:6px;align-items:flex-start;font-size:14px;line-height:1.35;color:var(--ink)} +.pl .ico{width:17px;height:17px;margin-top:1px} +''') + # ---------------------------------------------------------------- 10 stretch goals (1360 x 500) add_header('10') GOALS = [(15000, '$15,000', 'Bonus chapter', 'PDF for every backer whose reward includes the eBook'), @@ -480,31 +587,29 @@ for n, nm in [(0, '10b-stretch-goals-locked'), (1, '10c-stretch-goals-15k-unlock # ---------------------------------------------------------------- 11 timeline add_header('11') -STOPS = [('Fri 2 Oct 2026', 'The campaign opens.'), - ('Wed 4 Nov 2026', 'The campaign ends. The Burned Out Advisor Retreat runs 4 to 6 November.'), - ('By mid-November 2026', 'AiBook.fun access for backers whose reward includes it, and the backer survey.'), - ('Dates to be announced', 'Academy BootCamp cohorts in Orlando, North Denver, and Villa Park.'), - ('January 2027', 'Final layout and eBook files. The eBook is delivered and the paperbacks are signed.'), - ('February 2027', 'Signed paperbacks are delivered.')] -XS = [96, 290, 484] -Y1, Y2 = 30, 250 -pos = [(XS[0], Y1), (XS[1], Y1), (XS[2], Y1), (XS[2], Y2), (XS[1], Y2), (XS[0], Y2)] -stops = ''.join(f'
    {i}
    {d}

    {t}

    ' - for i, ((x, y), (d, t)) in enumerate(zip(pos, STOPS), 1)) -page('11b-timeline', f'''
    - -{stops}
    ''', css=f''' -.tl{{position:relative;height:396px}} -.path{{position:absolute;inset:0;width:616px;height:420px}} -.path path{{fill:none;stroke:var(--pine);stroke-width:3;stroke-dasharray:2 9;stroke-linecap:round;opacity:.7}} -.stop{{position:absolute;width:0;height:0}} -.num{{position:absolute;left:-23px;top:-23px;width:46px;height:46px;border-radius:999px;background:var(--pine);color:#fff;font-family:var(--display);font-weight:900;font-size:22px;display:grid;place-items:center;box-shadow:0 0 0 5px var(--paper-2),var(--sh-md)}} -.stop.tba .num{{background:#fff;color:var(--pine);border:2.5px solid var(--pine)}} -.tx{{position:absolute;top:34px;left:-92px;width:184px;text-align:center}} -.tx b{{display:block;font-family:var(--display);font-weight:600;font-size:18px;letter-spacing:-.02em;line-height:1.15;color:var(--ink)}} -.tx p{{font-size:14px;line-height:1.4;color:var(--muted);margin-top:5px}} -.stop.tba .tx b{{color:var(--pine)}} -''') +STOPS = [('Fri 2 Oct 2026', 'The campaign opens.', ''), + ('Tue 20 Oct 2026', 'The Retreat reward and the $5,000 Growth bundle close.', 'cut'), + ('Wed 4 Nov 2026', 'The campaign ends. The Burned Out Advisor Retreat runs 4 to 6 November.', ''), + ('By mid-November 2026', 'AiBook.fun access for backers whose reward includes it, and the backer survey.', ''), + ('December 2026', 'The AOPbizFastTrack cohort for Launch and Growth backers.', ''), + ('January 2027', 'Final layout and eBook files. The eBook is delivered and the paperbacks are signed.', ''), + ('January to March 2027', 'Three months of AOP.biz service for Launch and Growth backers.', ''), + ('February 2027', 'Signed paperbacks are delivered.', '')] +stops = ''.join(f'
  • {i}
    {d}

    {t}

  • ' + for i, (d, t, c) in enumerate(STOPS, 1)) +page('11b-timeline', f"""
      {stops}
    """, css=""" +.canvas{padding:30px 34px 30px} +.vt{position:relative} +.vt::before{content:"";position:absolute;left:23px;top:24px;bottom:24px;border-left:3px dotted var(--pine);opacity:.55} +.vt li{position:relative;display:flex;align-items:flex-start;gap:22px;padding:0 0 18px} +.vt li:last-child{padding-bottom:0} +.num{flex:none;width:46px;height:46px;border-radius:999px;background:var(--pine);color:#fff;font-family:var(--display);font-weight:900;font-size:21px;display:grid;place-items:center;box-shadow:0 0 0 5px var(--paper-2),var(--sh-md);position:relative;z-index:1} +.tx{padding-top:3px} +.tx b{display:block;font-family:var(--display);font-weight:600;font-size:20px;letter-spacing:-.02em;line-height:1.15;color:var(--ink)} +.tx p{font-size:15px;line-height:1.4;color:var(--muted);margin-top:3px} +.vt li.cut .num{background:var(--amber)} +.vt li.cut .tx b{color:var(--amber)} +""") # ---------------------------------------------------------------- 12 shipping and delivery add_header('12') @@ -570,9 +675,9 @@ TEAM = [('@THY', 'Name goes here', 'Author and Retreat host'), ('@CEO', 'Name goes here', 'Business strategy and partnerships'), ('@GTM', 'Name goes here', 'Payments, email, and technical setup'), ('', 'Osinachi Patrick', 'Product lead, AiBook.fun'), - ('', 'Name goes here', 'Academy BootCamp lead')] + ('', 'Name goes here', 'AOP.biz bundles lead')] team_html = ''.join( - f'
    {slot("team-" + (h[1:].lower() if h else ("osinachi-patrick" if n.startswith("Osinachi") else "academy-lead")), "Photo", "800 × 800", "tp")}' + f'
    {slot("team-" + (h[1:].lower() if h else ("osinachi-patrick" if n.startswith("Osinachi") else "aop-lead")), "Photo", "800 × 800", "tp")}' f'

    {n}

    ' + (f'

    {h}

    ' if h else '') + f'

    {r}

    ' for h, n, r in TEAM) # Landing page (Authors.jsx) lists three co-authors as confirmed, by chapter; names are not published yet. AUTHORS = [('Name goes here', 'Co-author, Real Estate & Finance'), ('Name goes here', 'Co-author, Fractional C-Suite'), diff --git a/ks-research/story-images/src/pages/06b-three-ways-to-back.html b/ks-research/story-images/src/pages/06b-three-ways-to-back.html index fcf4785..9516f36 100644 --- a/ks-research/story-images/src/pages/06b-three-ways-to-back.html +++ b/ks-research/story-images/src/pages/06b-three-ways-to-back.html @@ -1,55 +1,63 @@
    -
    -

    Retreat

    Burned Out Advisor Retreat

    -

    What it is

    Three days in person with the authors and other advisors.

    -

    369 seats

    -

    Includes

    • Your seat
    • The eBook
    • 12 months of AiBook.fun
    -

    When

    4–6 November 2026

    -

    Price on the reward

    -
    -
    -

    Academy

    AiCoach + AOP.biz BootCamp

    -

    What it is

    A seat in the next cohort at one of three sites:

    -

    Orlando, Florida

    North Denver, Colorado

    Villa Park, Chicagoland, Illinois

    -

    Includes

    • Your seat
    • The eBook
    • 12 months of AiBook.fun
    -

    When

    The next cohort at your chosen site

    -

    Price on the reward

    -
    +
    -

    Book & Library

    The book and the AiBook.fun library

    -

    Choose one

    • $19Early Bird eBookFirst 200 backers
    • $25eBook and backer-only updates
    • $47eBook and 12 months of the AiBook.fun library
    • Signed paperback and eBookPrice on the reward
    +

    The book

    The book and the AiBook.fun library

    +

    Choose one

    • $19Early Bird eBookFirst 200 backers
    • $25eBook and backer-only updates
    • $47eBook and 12 months of the AiBook.fun libraryFeatured
    • Signed paperback and eBookPrice on the reward

    When

    • Library access: within about 14 days of a successful campaign
    • eBook: January 2027
    • Signed paperback: February 2027
    +
    +

    Build it yourself or with us

    AOP.biz bundles

    +

    Choose one

    • $1,000DIY
      The starter pack on WeOwn Cloud, to run yourself. No support of any kind.
    • $2,000Launch
      Set up with our team: onboarding and a first implementation cycle, plus three months of AOP.biz service and the December 2026 cohort.
    • $5,000Growth
      Everything in Launch, plus deeper integration, more agents, ongoing support, and a Retreat seat.Closes 20 Oct 2026
    +

    After the pledge

    AOP.biz service ($988 a month) and WeOwn Cloud hosting ($200 a month) are separate, optional agreements. Kickstarter charges your pledge once.

    +
    +
    +
    +

    In person

    Burned Out Advisor Retreat

    +

    What it is

    Three days in person with the authors and other advisors.

    +

    369 seats

    +

    Includes

    • Your seat
    • A signed paperback
    • The eBook
    • 12 months of AiBook.fun
    +

    When

    4–6 November 2026

    Closes 20 Oct 2026

    +

    Price on the reward

    +
    \ No newline at end of file diff --git a/ks-research/story-images/src/pages/08b-bundle-comparison.html b/ks-research/story-images/src/pages/08b-bundle-comparison.html new file mode 100644 index 0000000..b3cf3fe --- /dev/null +++ b/ks-research/story-images/src/pages/08b-bundle-comparison.html @@ -0,0 +1,61 @@ + +
    +

    AOP.biz bundles · what each one includes

    +
    $1,000DIYOn WeOwn Cloud.
    No support of any kind.
    $2,000LaunchSet up with our team.$5,000GrowthIncludes a Retreat seat.
    The starter pack
    Starter agent fleet
    Docs and how-to guides
    Agentic assistant that answers from your own knowledge base
    Dedicated self-hosted instance; you own the data
    Set up with our team
    Onboarding–
    First implementation cycle–
    Three months of AOP.biz service, January to March 2027–
    Seat in the December 2026 AOPbizFastTrack cohort–
    Growth adds
    Deeper integration––
    More agents working together––
    Ongoing support cadence––
    SharedBrain layer––
    Workflow and automation layer––
    Burned Out Advisor Retreat seat, 4–6 November 2026––
    Pledge window
    Available until4 Nov 20264 Nov 202620 Oct 2026
    +

    After the pledge: separate, optional agreements

    +
      +
    • DIY: WeOwn Cloud hosting, $200 a month.
    • +
    • Launch and Growth: AOP.biz service, $988 a month from April 2027, after the three included months.
    • +
    • Launch and Growth: the December cohort asks you to attend at least 50% of weekly sessions, agreed when you register.
    • +
    +

    None of these is part of your pledge. Kickstarter charges your pledge once, when the campaign ends.

    +

    WeOwn Cloud: infrastructure provisioned and managed by agents built by WeOwnDev. Bundle contents from GUIDE-436.

    +
    + \ No newline at end of file diff --git a/ks-research/story-images/src/pages/08c-academy-sites.html b/ks-research/story-images/src/pages/08c-academy-sites.html deleted file mode 100644 index 49a4b74..0000000 --- a/ks-research/story-images/src/pages/08c-academy-sites.html +++ /dev/null @@ -1,35 +0,0 @@ - -
    Site photo goes hereAt least 800 × 600 px

    Site 1

    Azur Resorts

    Orlando, Florida

    Site photo goes hereAt least 800 × 600 px

    Site 2

    #NoDe

    North Denver, Colorado

    Site photo goes hereAt least 800 × 600 px

    Site 3

    Villa Park

    Chicagoland, Illinois

    - \ No newline at end of file diff --git a/ks-research/story-images/src/pages/07-header-the-retreat.html b/ks-research/story-images/src/pages/09-header-in-person-the-retreat.html similarity index 95% rename from ks-research/story-images/src/pages/07-header-the-retreat.html rename to ks-research/story-images/src/pages/09-header-in-person-the-retreat.html index 0e21e94..3d0e02c 100644 --- a/ks-research/story-images/src/pages/07-header-the-retreat.html +++ b/ks-research/story-images/src/pages/09-header-in-person-the-retreat.html @@ -1,5 +1,5 @@ -
    🏕️
    We Own AI — The New American Dream

    The Retreat

    +
    🏕️
    We Own AI — The New American Dream

    In person: the Retreat