ai-new-business — Entry Point
Everything in this repo, one page. Apps need ./launch.sh first (green dot = running now). Docs open as plain text.
What's new
- 2026-09-25FRENDAY builder phase 1 + art direction (spec §9.72): Pro Companions get a Look sheet in the editor (layout, color, background, block order, photo move and zoom; free users can try it on their own card). Try the new grounds on the demo: editorial, tint · poster, deep. A named quality bar in
apps/paiduay/docs/design/ART-DIRECTION-2026-09-25.md; home rebuilt to it. - 2026-09-24FRENDAY wave 2 + Pro templates (spec §9.71): Pro card layouts (poster · editorial · business card), Pro kit templates with customization on /c/mint/kit, kit images cached, Kathy prompt v3, home fold at night, the hidden pitch kit. Reading: pitch kit · story copy proposals · WYSIWYG research · critic after.
- 2026-09-24FRENDAY design wave 1: ten agents in one evening (menu 1.7, 1.7a, 2.4, 2.5, 2.6, 3.10): /browse is a timetable now (rows grouped by the day each Companion is next free, every row on the same 06 to 24 axis with the sun at now; a third as tall, the cards one jump link away and still below the deck); /story uses a desktop's width (one left rail, the five visual screens beside their words from 1024px, the phone pixel-identical); /sell and /pro show the real card tile as their proof and /pro lists all four things ฿499 buys (kit templates, three clips, one link-name change, the labeled row); the card's plate prints "Fictional character · AI-made picture" like the pages do; the sign-in and sign-up walls say what Frenday is and what comes next, and /me is a dashboard with one next action per card; Kathy's prompt v2 (the opener is the first thing she says, dates read from the profile tool, five refusal patterns, hyphens over dashes) plus an adversarial battery runner; and a deploy pipeline meant to take a source-only deploy from seven minutes to three or four (one command from the Mac; tonight's deploy is its first test). New reading: the design brief with two unapplied mockups (A, the hour as the page · B, the poster wall) and the critic's before-report of production (ten ranked fixes, six still yours: the /story wording, two funnels described as one product, Kathy invisible on home and browse, five nouns for two things). Not verified tonight: the signed-in onboarding screens, the Docker build, the standalone image. Spec §9.70, tracker P28 to P43.
- 2026-09-19FRENDAY /story — round 4: it reads like a page someone wrote (menu 1.7a/1.7b): your twenty notes are in. No dashes anywhere on /story and /our-story — em and en dashes are plain hyphens now, and a test fails the build if one comes back — and every English string is American ("labeled", not "labelled"). The first screen was rebuilt: the lockup is small and quiet (it was saying the name three times), your headline is now the biggest thing on the page, the line under it is lighter, and the empty paper moved from under the hero to above it, so a phone opens on the hero with the next headline just peeking in. On the card screen the drawn "Send Ploy a request" button is gone — with a real chat above it, a picture of a button was the one dead thing a thumb would press — and the request is named where it is actually filed, in the chat's own caption. Kathy is italic in the two headlines that introduce her (Thai carries the same emphasis but does not slant: Thai has no italic), "but don't accept", "our AI agent", "as provided", "06:00 to midnight" instead of "24:00", and Kathy gained a fifth thing she can do: answer basics about the third place the companion chose. "Lower the rate*" now wears an asterisk that the footnote answers. The money screen says "The card is free forever." and "Not in ฿499 yet but coming soon", with real air above it; today's screen is present tense — "Live in Bangkok since September 2026."; the last screen closes with "That's everything you need to know." and "Shall we see the real thing now?" over one button, with hello@frenday.xyz quietly under it. Spec §9.68 "review round 4", tracker P27.
- 2026-09-19FRENDAY — your own words on /story, and four rules that now bind every line on the site (menu 1.7a/1.7b): the page's spine is your text, set verbatim in English with Thai written natively beside it — "Frenday. A friend-date you deserve.", "Your Profile Card. Your Request, assisted by Kathy.", "Kathy can read and answer, but won't accept requests on your behalf.", "One page. Everything they want and need.", "This is all you have to know." The money screen drops "how Pro is paid" and turns the old "what ฿499 does not buy" list into "Not in ฿499 yet — coming": signal and visibility boosting, dynamic and surge pricing, market intelligence on what customers will pay, identity and criminal background checks — all written as coming, none as available. The sign-in row gained X and a phone beside LINE as "next"; only email works today and it still says so. Site-wide, four permanent rules took effect (
apps/paiduay/docs/EDITORIAL-RULES.md, enforced by a test): singular they for a user of either side, Customer / ลูกค้า and Companion / เพื่อนเที่ยว as the only names for the two sides, hours 06:00–24:00 — in the copy, in the policy, in Kathy's rules and in the code that validates a request time (the band now runs to midnight; the site only inverts to night between midnight and six) — and the agent named from one constant, so the chat header that still said "ผู้ช่วย / receptionist" now says Kathy everywhere. "Daytime" is gone from every public string; the home tagline reads "Company by the hour, every day, 06:00 to midnight" — yours to refine. Spec §9.68 "review round 3" and §9.69. - 2026-09-19FRENDAY /story — the chat on the card screen is REAL now (menu 1.7a/1.7b): the tile that used to draw a composer is the working chat. Anyone reading /story can type a question to the demo companion's agent and get the same answer they would get on her own page — same component, same route, same rules: she answers only from her profile, she cannot accept a meetup, and the rate limits and the daily spend cap are the ones already guarding the product (no new ones were added). One conversation per browser tab, kept across a reload; the thread scrolls inside its own box so the page keeps scrolling past it. The label under the tiles still says the companion is fictional — she is; the chat is not. Still yours to call: the chat's own header still says "ผู้ช่วย / receptionist" right under a caption that says Kathy. Spec §9.68 "the card screen's chat is LIVE".
- 2026-09-19FRENDAY /story — review round 2: it scrolls like a normal page now (menu 1.7a/1.7b): the screens were still a phone-screen tall each, so short ones left a void of empty paper and the card screen was cut off at the bottom. Gone: no forced height anywhere, every section is just as tall as what it says with the same air above and below it, and the top line now reads how far down the page you are. The card screen is redrawn from a companion's own page (Ploy's, labelled fictional once) — the audit caught that the old drawing dissected the self-serve card, whose one button adds her on LINE and which has no Kathy on it, while the screens either side of it promise Kathy and a request. It is five tiles on her own paper, each with its caption inside it, not a grid of labels. Money is now one light tile beside one ink ฿499 tile, with "how Pro is paid" and "what ฿499 does not buy" as quiet text instead of two more identical boxes; the same for today's two boxes and the founder's three. Spec §9.68 "review round 2", tracker P27. Still yours to call: the product says "receptionist / ผู้ช่วย" where the story says Kathy, and the story says "card" where the drawn artefact is a companion page.
- 2026-09-19FRENDAY /story — review round 1 landed (menu 1.7a/1.7b): after your Pixel 7 Pro pass, /story and /our-story scroll like a plain document (no snap, no fade), have no numbered eyebrows, no divider lines and no emoji (the flags are drawn), and the AI agent is Kathy / แคธี — one constant,
KATHYinapps/paiduay/content/story.ts, so renaming her is one edit. The two sides are always a companion and a customer. New visuals: Kathy can / Kathy cannot (screen 4), the card taken apart with captions (screen 5), money as four blocks (6), today's sign-in row — email now, LINE next, the rest dimmed (7) — and "Enough reading. Open the real thing." with one button (8). "How it is built" now lives on /our-story only, in three plain sentences. The?s=mentorcounter (item 1) was dropped on your call. Spec §9.68 "review round 1", tracker P27. - 2026-09-19FRENDAY — the third door: a one-minute scroll that explains the whole product (menu 1.7a): /story is the page to send someone who asks "what is this?" — not the seller funnel (/sell), not the directory. Eight full-height screens, one idea each, read by thumb in 20–30 seconds: the name, the trade that already exists without trust, the three-part mechanism, the one decision that carries the trust (Kathy, the AI agent, cannot say yes), the labelled fictional demo card, where money moves, what is true today, and go and look. English is the primary language on these two routes only — your mentor does not read Thai — so a bare visit answers in English unless the browser asks for Thai first, a saved toggle always wins, and
?lang=thwins over everything. Two flags top-right switch it for the whole site. /our-story is the same scroll plus a ninth screen about who built it — written about Homer Simpson on purpose, labelled "placeholder" on screen,noindex, out of the sitemap and disallowed in robots.txt. Replace the Homer facts with yours and flip one boolean (FOUNDER_SCREEN.placeholder) and it publishes itself. Spec §9.68, tracker P27. - 2026-09-18FRENDAY — the eight demo people have faces now, and the picture says it is AI (menu 1.7): /browse and every /p/<slug> showed a coloured monogram and "ยังไม่มีรูป" — a directory of eight blanks. Each of the eight now has a candid daytime portrait in her own place (Ploy in an Ari cafe, Auntie Nok at the dawn flower market, Gun in Yaowarat, Tae at the park at sunrise), one style across all eight, matched to the age and sex her own bio states. They are generated, because these eight people are invented — so the picture itself carries the line "ตัวละครสมมติ · ภาพสร้างด้วย AI" / "Fictional character · AI-made picture" in a contrast-checked band at the foot of the plate. A real seller can never print that line, and a generated picture can never hide: it is gated on one flag in the record. Doctrine is unchanged — a real seller uploads her own photo, never a generated face. The prompts are kept so you can regenerate any of the eight with any model, one prompt = one image: docs/paiduay/content/demo-photo-prompts.md. Made with Higgsfield → GPT Image 2.5; seven passed first time, Nok took one retry (she read ten years older than her bio). Nothing to re-seed: the pictures are files + content, so a deploy is enough.
- 2026-09-18FRENDAY — the product has a new name and a real host (menu 1.7): research found the old name taken three ways (a Thai travel site owns paiduay.com, an Instagram account with 102K followers runs the same product in Bangkok, and ไปด้วยกัน owns the search term), so you chose เฟรนเดย์ / Frenday. It is live at frenday.xyz (temporary TLD; .co or .app later — every old link redirects). The wordmark, share images, poster kit, launch posts, one-pager QR and seller messages are rebranded; your logomark is unchanged. The kernel now runs on Haiku 4.5 by default (about 30× cheaper per turn than before) and a Gemini adapter exists — dev is on gemini-3.5-flash-lite for you to compare. The cost-and-resilience work orders (prompt caching, cheaper grounding, per-task model routing, outage alerts, cost view, harness spend guard, per-model prompt tuning) are written and waiting for your go: work orders. Still yours: PromptPay id, Clerk production instance, Gemini IP allowlist for your Mac, Haiku vs flash-lite, .co vs .app, a new tagline. Spec §9.66, tracker P25.
- 2026-09-18PAIDUAY — "change your link name once" is real (menu 1.7): the Pro page and post P1 promised it; now a Pro seller opens her editor menu → ชื่อลิงก์ and changes it once, with the same availability check she had at sign-up. Her old link keeps forwarding to the new one for 90 days (LINE bios, printed kits and scraped posts still land), nobody can take the old name while it forwards, and afterwards the panel says honestly "ใช้สิทธิ์แล้ว" with the date the forward ends. Proven live on a scratch card (hidden again). Spec §9.64, tracker P24.
- 2026-09-18PAIDUAY sales wave — the pages you tweet, and the factory's own sales page (menu 1.7 and 2.x): /sell is the seller front door (free, three steps, safety, one button) and /pro shows what ฿499 buys with real demo renders; both have their own share images and were read cold by a critic and fixed. The home page now has doors to the cards and to
/sell. The public card ships zero Clerk bytes (a third lighter). LINE's link crawler was getting the preview tags only half the time — fixed. Two funnel walks (customer, seller) found and fixed: the trust line now sits under the LINE id; a free seller's kit no longer opens as a wall of padlocks at night; hidden cards no longer trap her. Ready to paste: 12 launch posts + reply scripts + 7-day calendar, a printable one-pager with a working QR, the LINE messages you send at each moment + your 10-minute daily loop. For the factory itself: factory.html (live at 6326638.xyz/factory.html — fill the contact placeholders). Your calls: cast names Gil/Moe/Herb/Lisa, whether cards move above the deck on /browse, the "change your handle once" promise (no UI exists yet). Spec §9.63, tracker P23. - 2026-09-17PAIDUAY Wave 4 — cards on browse, clips, slip pre-read, nudges, faster plate (menu 1.7): /browse now has a "การ์ด / Cards" section, newest first, with Pro cards in one clearly labelled paid row (never blended in). Every card gets three silent 6–7 s clips from its own kit frames at /c/mint/kit (Pro; demo cards render all). On /admin/pro each slip is pre-read (amount, date, receiver, reference, bank) with plain Thai/English flags — you still approve by hand. A meetup request nobody answered in 4 h buzzes your phone; the reminder now speaks Thai on Bangkok time (it was on the German server's clock). The public card loads its photo as WebP with a preload and zero layout shift. Clerk account deletion erases her cards (once you add the webhook —
apps/paiduay/docs/CLERK-SETUP.md). Seller photos are backed up nightly on the box (restore runbook indeploy/README.md). What to pick next week: docs/paiduay/plans/next-sprint.md; moving Clerk to production: the runbook. Spec §9.61–§9.62, tracker P22. - 2026-09-17PAIDUAY Wave 3 — proven on production, PDPA erasure, your numbers (menu 1.7): an agent walked the whole self-serve flow on the public host as a freelancer (
apps/paiduay/docs/PROD-PROOF-2026-09-17.md, 49 screenshots): 24 of 26 stages passed first time, the server waits are 1.5 s and 0.8 s, and the two failures (a sign-in/sign-up loop for a returning seller; a paused card still serving its kit) are fixed and deployed. New for you as the operator: /admin/card (publish/pause/hide/restore, forget = PDPA erasure that empties the record and deletes every photo, re-bind an owner after the Clerk dev→prod switch), a daily photo-retention purge, and /admin/numbers. New for a seller: every link on her card is a counted hop, and /me shows her opens, LINE taps, kit saves and where they came from for 7 and 30 days — "we count taps, not people", never on a public page. Spec §9.60, tracker P21. - 2026-09-17PAIDUAY Wave 2 — two critic rounds fixed, SEO, receptionist safety, three plans (menu 1.7): a critic walked the self-serve flow as a freelancer (
apps/paiduay/docs/QA-MVP.md, card 79/100 — the way in was missing) and a second re-judged v3 quality (QA-v3-r2.md, 88); both lists fixed the same evening: every card and /join now door to /c/new, the sign-up wall says ไปด้วย (never your other Clerk app's name), Thai-only cards stay Thai, locked Pro templates preview HER card washed with a PRO stamp, the desktop request sheet can be sent again, one price grammar everywhere,/c/newcapped per owner and per IP, the LINE button handles@oaandlin.ee. robots + sitemap + hreflang + JSON-LD shipped. The receptionist now refuses deposits/account numbers, ends under-20 chats, says "call 191", points to /report, never asks for ID — 102/102 in a new safety battery (docs/trust-reports/trust-report-2026-09-17-paiduay-safety.md). Read before you tweet: the launch runbook (day 0, three Thai tweets, DM playbook, your 15-minute loop, money, metrics, risks); also analytics v1 and the LINE channel (LINE Login via Clerk first: 40 minutes, no code). Spec §9.59, tracker P20. - 2026-09-17PAIDUAY USABLE-MVP Wave 1 is LIVE, and EVERYTHING is public (menu 1.7): on your order every
6326638.xyzhost now resolves for everyone (the demos, the hub, paiduay; rollback = two DNS records). Try the product on your phone: paiduay.6326638.xyz/c/new — sign up with Clerk, make a card in three minutes (photo first, your line, your price, LINE), publish, get the link + the image kit; edit it later from /me. Then /c/<handle>/pro = the Pro tier (฿499 once, 12 months; the PromptPay QR appears when you setPAIDUAY_PROMPTPAY_ID), approved by you at /admin/pro. Every card/page carries "ไม่มีมัดจำ · รายงาน · ไม่ใช่ฉัน" → /report → /admin/report; requests, reports and Pro asks buzz your n8n. Chat reads now need a possession cookie (O23 closed). What you must do: Clerk dashboard (apps/paiduay/docs/CLERK-SETUP.md), PromptPay id, cast names. Spec §9.58, tracker P19, briefapps/paiduay/docs/MVP-BRIEF.md. - 2026-09-11PAIDUAY CARD — the base product (about.me + linktree, better) + a shelf of 11 plans (menu 1.7): after your v3 verdict you asked for the basic product first. Open on your phone: paiduay.6326638.xyz/c/mint (her photo is the page: name, her line, price as she states it, one LINE button, quiet links) · her image kit (5 formats × 3 templates rendered from the same record — story, feed, square, X card, avatar; save each, copy a Thai caption) · /c/first. The DM reply tool:
pnpm --filter paiduay exec tsx scripts/card-new.ts --ad their-ad.png --photo photo.jpg --handle …reads name/line/price off a seller's existing ad image and builds page + kit. Caption + DM scripts:docs/paiduay/content/card-captions.md. Sign-up/claim deferred on purpose. Plans for you to choose from (each with Opus work orders and the one decision it needs): docs/paiduay/plans/README.md. Two demo people are fictional, generated, and labelled. Spec §9.57, tracker P17–P18. - 2026-09-10PAIDUAY v3 — the RADICAL redesign, live (menu 1.7): after you rejected v2 as a re-skin, four competing phone-first prototypes were built and judged, then ONE journey was built end-to-end. Judge it on your phone: paiduay.6326638.xyz/p/ploy (the landing page a TikTok link points at: her name, her line, when she's free, the price, one action, the sticky bar, the request sheet with the hour as type) · home = ว่างเมื่อไหร่ (slide the sun, the people free then appear) · browse = the poster deck · /join (the companion door). After 21:00 the whole site turns to night and speaks about tomorrow. Locally: /p/ploy?at=10:00&day=sat (dev-only clock). The four prototypes + critic:
apps/paiduay/docs/prototypes/; design recorddocs/paiduay/design/DESIGN-v3.md; QAapps/paiduay/docs/prototypes/QA-v3.md. Spec §9.56, tracker P16. - 2026-09-10Handover for the Paiduay RADICAL redesign (menu 3.3): James rejected the v2 look as a re-skin; the next session opens the redesign fleet (3 competing prototypes → critic → one journey-owner builds the winner) without asking. Bridge + resume prompt rotated; the old factory bridge is archived.
- 2026-09-10PAIDUAY companion profile + request form + chat on art direction v2 (menu 1.7): the most important surface — /p/ploy (Nelson) — rebuilt on the v2 foundation: the person first, then ไปด้วยได้ / ขอไม่ไป as two equal columns under ink rules (no cards), the rate in Pridi numerals, the week as bands with today's row carrying the sun at the real minute; the request sheet built for a thumb (segmented hours, the band as the start picker, the live total in Pridi, calm sent / updated / error states); the assistant on the quiet tile beside it, or as a phone sheet (
/p/ploy#chat). Proven live: price, a 22:00 refusal with an alternative, a chat booking; the form sent then amended in place in both languages. Spec §9.55; screenshotsapps/paiduay/docs/screenshots/v2-provider-*.png,v2-chat-*.png. - 2026-09-10PAIDUAY portal + sign-in + admin chrome on art direction v2 (menu 1.7): the companion's back office (Marge) rebuilt on the v2 foundation — on the paper, sections under ink rules, the day's band with the sun at the real minute, and each request card set as the home's dialogue (the ask in light Pridi, answered by a big jade ไปด้วย; ขอผ่าน opens the reason list in place). Sign in as
ploy@paiduay.local/paiduay-2026at /portal; the sign-in page gains the site header and language pill; the admin (Homer) is on-system without a redesign. Accept / decline-with-reason / mark-done / cancel proven live over the real UI. Spec §9.54; screenshotsapps/paiduay/docs/screenshots/v2-portal-*.png,v2-login-*.png,v2-admin-*.png. - 2026-09-10PAIDUAY brand identity kit (menu 1.7): the identity, built off the app code — two logomark directions for you to choose between (the sun under the tone mark, recommended; ด้ the "together" syllable), an outlined-SVG logo system (Thai / Latin / lockups / mono / reverse / app icon), the colour system with every ratio (two AA corrections), type, voice, positioning, OG + story + avatar assets at exact size, and a photo-less provider-identity proposal. Open the brand board; what you decide is in docs/paiduay/brand/README.md. Spec §9.53.
- 2026-09-10PAIDUAY art direction v2 (menu 1.7): the design system was raised in one place so every page lifts — a real logomark (the sun at midday over three hour-cells: the daylight band in miniature) + a Pridi-outline wordmark and favicon, a rebuilt type scale (Thai now reads at 15px, not 13), the home page redesigned as the reference surface (a dialogue hero; the band as the horizon with the sun at the real Bangkok minute and past hours washed out; ink rules, hanging numerals, no step cards), and shared components (nav/footer/button/chip/band/card/steps) upgraded for the page agents to consume. Read
docs/paiduay/design/DESIGN-v2.md. Screenshots:apps/paiduay/docs/screenshots/v2-*.png(before/after pair kept). - 2026-09-10PAIDUAY (ไปด้วย) — first commercial vertical built (menu 1.7): a designed, bilingual "friend for hire" platform minted from the factory — profile pages, share posters, a per-companion AI receptionist proven by a live trust battery, provider portal. Production at paiduay.6326638.xyz (tailnet, until you flip it public). Tracker P-series, spec §9.51.
- 2026-08-19One-click logins — every admin login form is pre-filled (tailnet-gated, so safe); just press Sign in. Plus: this page gained the Orientation box and customer-chat links, so it explains itself.
- 2026-08-19LIVE ON THE INTERNET: 6326638.xyz — every app + this hub, real HTTPS, tailnet-gated (only your devices can connect). See menu 1.6.
- 2026-08-19DEPLOYED: the fleet is live on your Germany VPS — all four apps in Docker, hardened box, nightly backups (menu 1.6).
- 2026-08-19Double-booking bug FIXED (O24) — a confirmation or restatement now updates the one existing request instead of creating a second. Proven by the trust harness: consequence battery 48/48, zero exemptions (menu 2.2 has the new report). Demos are stage-safe.
- 2026-08-19Production builds work (O22) — all four apps now build for deployment (real root-cause fix, Next 16.3). The "nothing is deployable" gap is now only about provisioning a server.
- 2026-08-19This entry point +
./launch.shcreated. - 2026-08-19Menu 3.1: plain-language inventory of everything we own — read this first if returning after a break.
- 2026-08-18Menu 2.2: first trust report — the live bot passed 138/141 trust checks; the 2 expected failures are the known double-booking bug, caught on purpose.
Orientation — how to read this page
- What this project is: a software factory that mass-produces Thai-speaking AI receptionist apps. Each app below is one minted product: a customer side (the website +
/chat, where a customer talks to the AI) and a staff side (/admin— the back office: an inbox where staff can take over any AI conversation live, bookings to confirm/cancel, customers, invoices). - The AI only requests, humans confirm: a chat booking creates a pending request in the admin — nothing is final until staff taps confirm. That, plus "answers only from the business's own data", is the trust system (section 2 has the promises and the test evidence).
- Two copies of everything run: LOCAL on this Mac (rows below; start them with
./launch.shin the repo — green dot = running now) and PRODUCTION on the Germany VPS, always on, at the real URLs in row 1.6 (only your Tailscale devices can reach them). They have separate databases — booking something locally doesn't appear in production and vice versa. - Logins are one click: every admin login form comes pre-filled (safe because demo creds are public in this repo and production is tailnet-gated) — just press Sign in.
- Getting code to production: commit →
git push vps main→ rundeploy/deploy.shon the box (any Claude session does this for you). Data survives deploys; nightly DB backups at 03:20.
1 · Live apps (local copies — start via ./launch.sh, then click; production = row 1.6)
| App | Customer side | Staff side | What it is | |
|---|---|---|---|---|
| 1.1 | demo | site · chat | admin | Wellness spa — the TEMPLATE every app is minted from; new features land here first |
| 1.2 | clinic | site · chat | admin | Sirin Clinic (fictional) — richest demo data incl. a "lived-in" history; the trust harness tests against this one; best app to show someone |
| 1.3 | barber | site · chat | admin | Barbershop — exists to prove a re-skin takes minutes, not weeks |
| 1.4 | cameo | site · portal | admin | Talent-booking marketplace (Cameo-style) — fans book personalized videos; portal = the customer's own order-tracking page; seed of your mobile-app idea |
| 1.5 | widget | demo page | The embeddable widget: any business pastes ONE script tag on their existing website and gets the chat bubble — this page shows it running on a fake third-party site (needs 1.1 running) | |
| 1.7 | frenday (เฟรนเดย์ · was paiduay; folder apps/paiduay) |
site · browse · a profile | provider portal · admin | 2026-09-11 — CARD, the base product: /c/mint (photo-first page + links) · /c/mint/kit (image kit) · plans shelf docs/paiduay/plans/README.md. 2026-09-10 — the first commercial vertical (P-series). v3 RADICAL redesign the same evening (spec §9.56, docs/paiduay/design/DESIGN-v3.md): the companion's page is the landing page, home is the time picker (ว่างเมื่อไหร่), browse is the poster deck, the request sheet is the moment of consequence, the site turns to night after 21:00. Start at /p/ploy on a phone-width window; /join is the companion door. v2 (rejected as a re-skin) is kept only in docs/screenshots/v2-* and DESIGN-v2.md. a Thai daytime "friend for hire" platform. Each companion gets a designed bilingual profile page, a share poster for TikTok/Instagram (feed · story), and their own AI receptionist that answers only from their profile, refuses out-of-policy asks, and turns a wish into a meetup request the companion confirms in the portal. Eight fictional companions seeded. Logins: ploy@paiduay.local / paiduay-2026 (portal), owner@paiduay.local / paiduay-owner-2026 (admin). Name and domain are temporary — your call. Brand identity kit (2026-09-10): brand board · what to decide — pick a logomark (two considered directions in the kit, plus the v2 mark now in the app). 2026-09-18: renamed เฟรนเดย์ / Frenday, live at frenday.xyz (old host redirects). 2026-09-18 (D1): the eight demo companions have AI-made, labelled portraits on /browse and their pages — prompts kept in demo-photo-prompts.md. 2026-09-17 Wave 4: cards section on /browse · clips row on /c/mint/kit · slip pre-read on /admin/pro · next-sprint menu · Clerk production runbook. 2026-09-24 wave 1: /browse as a timetable, /sell and /pro with the real card tile, the AI label on the card plate, onboarding walls + /me dashboard, Kathy prompt v2, the deploy pipeline (DEPLOY-FAST.md); spec §9.70. |
| 1.7a | frenday (the story scroll · screen "Toby") | /story · live · ภาษาไทย | The third door — the page for the informed outsider (a mentor, a partner, a journalist) who asks "what is this?". Eight sections, one idea each, no header and no footer, scrolling like any normal page (no snap and no forced screen height since review round 2), read in about a minute by scrolling and nothing else. Screen 5 takes a companion's own page apart (the demo companion Ploy, labeled fictional once) — and its ask tile is a live chat: type a question there and her agent answers, exactly as on her page. Since review round 4 there is no drawn request button under it (a picture of a button under a chat that works), the first screen leads with your headline instead of the wordmark, nothing on these two routes is set with a dash, and the last screen carries hello@frenday.xyz. The AI agent is named from one constant (apps/paiduay/content/agent.ts) that the whole app now reads, so the chat header says Kathy too. Your own words carry screens 1, 3, 4, 5 and 8 since review round 3, and the money screen ends on a roadmap block written as coming, never as available. English first on this route only (precedence: ?lang= → your saved toggle → the browser's first preferred language, Thai → Thai → English); the two flags top-right set the language for the whole site. Copy in apps/paiduay/content/story.ts, treatment in apps/paiduay/components/story/; the rules every line on the site obeys are apps/paiduay/docs/EDITORIAL-RULES.md. Spec §9.68, §9.69. | |
| 1.7b | frenday (who built it · screen "Sam") | /our-story · live | Hidden placeholder — noindex, out of the sitemap, Disallow: /our-story in robots.txt. The same eight sections plus a ninth about the founder, written about Homer Simpson on purpose so you replace exactly those facts with your own; the screen says "placeholder" on it until you do. Then flip FOUNDER_SCREEN.placeholder to false in apps/paiduay/content/story.ts — that one boolean is the whole publish (it also lifts the noindex, the sitemap line is one edit in app/sitemap.ts, and the robots line in app/robots.ts). Spec §9.68. | |
| 1.6 | 🌍 production | 6326638.xyz | The same apps run 24/7 on the Germany VPS with real HTTPS domains (spec §9.48/§9.49) — reachable only while you're on your Tailscale network (by design; flip to fully public = one DNS change). demo · clinic · barber · cameo · paiduay · hub (this page + all docs, browsable). Deploys: git push vps main + deploy/deploy.sh (runbook). | |
Admin logins are pre-filled everywhere — just press Sign in. (The account, if you ever need it elsewhere: owner@demo.local / demo-owner-2026.)
2 · Demos & evidence (work without any server)
| 2.1 | Interactive product tour | A self-playing walkthrough for someone who has never seen the product: a REAL captured overnight conversation replayed message-by-message, then the back-office screenshots. Bilingual, works offline, safe to send to anyone as a single file. (Content currently clinic-flavored; the machinery re-skins per vertical.) |
| 2.2 | Trust reports | Evidence documents. Latest (2026-08-19, post-fix): consequence battery 48/48 held, zero exemptions. Also: beats 29/29 · the original 138/141 run that caught the double-booking bug in the first place. |
| 2.3 | The 15 trust promises | What the product vows never to do (invent prices, give discounts, play doctor, double-book…) — each written as a testable claim, which is exactly what 2.2's reports test. Drafted in Claude's words; its §7 lists the parts awaiting YOUR rewrite. |
| 2.4 | Frenday design brief + two mockups | The design system as applied on 2026-09-24 (type scale, spacing, radii, states, the "sun marks now" signature, component specs, a page-by-page fix list) and two bolder directions drawn as static pages that were NOT applied: A, the hour as the page · B, the poster wall (notes). Glance at both; say if either should be built. Spec §9.70 (a). |
| 2.5 | Critic: production before the wave | The honest "before" of frenday.xyz on 2026-09-24, judged as a visitor: five-second scores per page, five persona walks, a generic-tell audit, a trust audit, a cross-page consistency table and ten ranked fixes. Four were addressed the same night (browse fold, the AI label on the card, the ฿499 list, a tablet grid); the six that are yours are in the quick status §3. Spec §9.70 (j). |
| 2.6 | Kathy adversarial battery reports | Output of pnpm --filter paiduay battery (54 scenarios, 72 messages, 15 categories, both languages; machine assertions plus a judge packet), one report per model as battery-2026-09-24-<model>.md. The runner landed 2026-09-24; the first Gemini and Haiku runs were still in flight at the wave's cut, so the folder may be empty until they finish. Spec §9.70 (i). |
3 · Read-first documents
| 3.1 | What we actually have | Plain-language inventory + honest gaps + revenue-shape mapping. Start here. |
| 3.2 | Task tracker | Every remaining task with status; James orders by ID (e.g. "do O24"). |
| 3.2b | Quick status for James | The one-page "what is live, what you can do today, what waits on you" — undated filename, stamped inside, revised every session (added 2026-09-18). |
| 3.3 | Resume prompt | Paste into a fresh session after /compact to continue seamlessly. Current: the Paiduay USABLE-MVP sprint (self-serve cards with Clerk, photo upload, Pro tier, safety, notifications; starts Wave 1 without asking). Bridge: .tmp-paiduay-usable-mvp-handover.md. |
| 3.4 | Business context | Strategy, module catalog, economics. |
| 3.5 | Technical context | As-built state, environment facts, sharp edges. |
| 3.6 | Kernel spec | The living spec; §9 = every build decision ever made. |
| 3.7 | Portfolio map | James's 10 other repos read as rehearsals — thinking-inferences + reuse inventory. |
| 3.8 | Quick knowledge base | Short plain-language reference notes (how the deployment works, etc.) — written for future-James; grows a section at a time. |
| 3.9 | Deployment pattern — generic guide | The whole deployment pattern, server-agnostic: prep any new Ubuntu box, onboard any project, gotchas, and the questions only James can answer. Notion/Obsidian-importable. |
| 3.10 | Deploy fast | The 2026-09-24 deploy pipeline in one page: what changed (dockerignore, cached install layer, type check skipped in Docker, standalone behind a flag), expected timings, the first-deploy commands (deploy/push-and-deploy.sh from the Mac), the standalone test recipe, rollback, and the off-VPS build questions that are yours. |
4 · Reference & archive
| 4.1 | Sales kit | One-pager, pilot offer, demo script, objection playbook, outreach library, prospect list (clinic-era; structures reusable). |
| 4.2 | Market research | Thai SMB pricing, competitors, payment rails, tax/WHT (verified Jul–Aug 2026 — decays). |
| 4.3 | Portfolio briefings | Full per-repo analyses of the 10 other projects. |
| 4.4 | Pilot reports | Every autonomous build session's honest self-report + ambiguity log. |
| 4.5 | Handoff corpus | START-HERE, verification playbook, Opus execution protocol, module work orders. |
| 4.6 | Handover archive | Superseded session bridges (historical only). |
Launcher: ./launch.sh (menu) · ./launch.sh all · ./launch.sh status · ./launch.sh stop. This page is maintained by every AI session — updates are announced as "menu X.Y at the entry point".