# REPORT — finding the first testers (2026-10-10) > Written to `REPORT-testers-2026-10-10.md`, not the shared `REPORT.md`: another session was working > in this clone today (`REPORT-register-shrink-2026-10-10.md`), and the repo rule says the second > session must not clobber the shared file. --- ## In plain words The website asked for testers without saying what a tester needs or what we pay for. It now does, at **felhom.eu/teszteles**. The test terms gained one point about the domain and moved to version 1.1, so the two current testers are owed an e-mail — a draft is ready for you to send. Five Facebook posts are queued for the next three weeks. Search Console's seven unindexed pages each have a verdict now, and the one fault that was ours is fixed. And because search will plainly not deliver the first five testers, there is a kit of messages you send yourself, with a checked list of where that is allowed. **Three things wait on you.** They are listed at the end. --- ## 1. Your two decisions (STOP 1) **D1 — the domain.** You chose option (a): the domain is registered in the **tester's own name**, Felhom pays its fee for **two years**, and when the test ends or the tester leaves, **the domain stays with the tester**, who carries on paying for it. It is never asked back. Felhom manages only its DNS, with a Cloudflare token scoped so it sees exactly that one zone — the restriction the hub already enforces (`architecture/01-topology-and-trust.md` §7). **D2 — the places.** The closed test runs with **at most 5 households**. **Corrected the same evening, by you: nobody is testing today.** „Tester 1” is a disposable virtual box, not a household; „Tester 2” is a friend who agreed but has not assembled the machine, and the laptop is off. So **all five places are open** — the page said „Néhány hely már betöltve”, which was untrue and is now „A teszt most indul, így jelenleg mind az 5 hely szabad”. The same correction went into `OUTREACH.md` (five people needed, not three), `CONTEXT.md`, and the terms-1.1 mail, which has **one** real recipient rather than two. **No scheduled post needed changing** — post 7.1 says „Keresünk öt magyar háztartást” and never claimed a place was filled. Both are recorded as dated operator rulings at the top of `CONTEXT.md`, and both are published. --- ## 2. The tester page and terms 1.1 | What | Where | Read back live | |---|---|---| | Tester page (HU) | | HTTP 200; „legfeljebb 5", „két évre", „a te nevedre", `site.css?v=9`, apply button → `/kapcsolat?tema=zart-teszt` | | Tester page (EN) | | HTTP 200; canonical at itself; „Become a tester" | | Terms 1.1 | | HTTP 200; „**1.1 verzió, hatályos: 2026. október 10.**"; `

4. A domain

` present; `

12. Kapcsolat

` (the renumber landed); no „1.0 verzió" left | | Home page | | both CTAs now `href="/teszteles"`; the old `#zart-teszt` anchor CTA is gone | | English home | | both CTAs now `href="/en/testing"` | | Sitemap | | both new URLs present; 18 `` entries | **What the page says**, all of it already true on the site or a D1/D2 answer: who it is for (a Hungarian household, no IT knowledge, but patience); what you need — the hardware and internet paragraphs are **quoted verbatim from the FAQ** rather than invented, plus the domain; what you get (the six promises of terms §3, nothing new); what we ask for; how many places there are; and how to apply. No price, no availability promise, no response-time promise. **Terms 1.1** adds one section, **§4 (the domain)**. Sections 4–11 of 1.0 are renumbered 5–12 and nothing else changed. No document or page referenced those numbers — checked before renumbering. The text of record is `documentation/legal/feltetelek-1.1.md`, derived from the published HTML. **The contact form needed no change.** `?tema=zart-teszt` already preselects the closed-test subject on both contact pages, with a comment saying so, so the page's apply button simply uses it. ### Two things that went wrong, and what they cost - **CRLF.** Rewriting pages with a Python helper converted five files from the working tree's CRLF to LF. That made `index.html`'s nav and footer differ from every other page's, and the nav/footer gate went red for **all 15 pages at once** — a failure that looked like a content change and was not. Restored to CRLF with the BOM intact. - **A stale stylesheet.** While I worked, another session landed a JavaScript-free phone menu as `site.css?v=9`. My two new pages were written against `v=8` and no gate compares the stylesheet version across pages, so it passed. Caught by reading that session's commit; both pages now say `v=9`. --- ## 3. Search Console Full audit, with the five reason lists and the exact clicks: `documentation/audits/seo-2026-10-10/not-indexed.md`. | URL | Reason | Verdict | |---|---|---| | `https://www.felhom.eu/` | Alternate page with canonical | **Expected** — `www.` canonicalises to the non-`www` page, which is indexed | | `https://www.felhom.eu/kapcsolat` | Alternate page with canonical | **Expected** — same | | `https://www.felhom.eu/api/contact` | Not found (404) | **Ours — FIXED.** The contact form's POST endpoint, crawled as a page since 2026-04-29. `robots.txt` now carries `Disallow: /api/`, with the reason in a comment. The endpoint and the form are unchanged. | | `http://felhom.eu/` | Page with redirect | **Expected** — plain HTTP redirects to HTTPS | | `https://felhom.eu/letoltes` | Discovered, not indexed | **Not a fault** — Google knows it and has not crawled it yet. In the sitemap, linked from the nav, with its own title and canonical. Crawl budget of a new site. | | `https://felhom.eu/en/download` | Discovered, not indexed | **Not a fault** — same, the English twin | | `https://felhom.eu/sitemap.xml` | Crawled, not indexed | **Expected** — a sitemap is not a page | **Four expected, two in Google's queue, one fault on our side, fixed.** Nothing else was changed for indexing: the canonicals, hreflang pairs, titles and sitemap were already right and were deliberately left alone. **The baseline to compare against in a month** (3 months, 2026-07-07 … 2026-10-06): **0 clicks, 47 impressions, 0 % CTR, average position 73.** All nine queries with an impression are recorded in the audit. Eight of the nine sit at position 58–100, and they are the wrong queries: „felhő tárhely" is what someone types when they want Google Drive. **This is the evidence that search will not bring the first five testers**, and the reason the rest of this work went into the page people land on and the messages you send. --- ## 4. The five scheduled posts Written as `marketing/facebook/COPY.md` §7.1–7.5, each with a source comment per claim, 471–514 characters, Hungarian, no emoji, no hashtags, one link each. **Shown to you in full before anything was scheduled.** | # | Section | When (Budapest) | Post id | Read-back | |---|---|---|---|---| | 1 | 7.1 Tesztelőket keresünk | Tue 2026-10-13 19:00 | `1360018983863273_122097231795511222` | unpublished, time exact, text correct, listed | | 2 | 7.2 Hol vannak most a fotóid? | Thu 2026-10-15 19:00 | `1360018983863273_122097234213511222` | same | | 3 | 7.3 Egy app, amire nem gondoltál | Tue 2026-10-20 19:00 | `1360018983863273_122097234279511222` | same | | 4 | 7.4 A helyreállítási kód | Thu 2026-10-22 19:00 | `1360018983863273_122097234399511222` | same | | 5 | 7.5 Mit tud ma a doboz | Tue 2026-10-27 19:00 | `1360018983863273_122097234501511222` | same | Verified by a **separate** read-back script that re-read each post from the Graph API and compared it against `COPY.md`: six posts scheduled on the page (these five plus your Monday one), **no strays**, your Monday post (§6.2) present and untouched. **`hex_equal=False` is expected here and is not a fault.** When the attached link equals the URL on the post's last line, Facebook moves that URL into the preview card and stores the message without it. Proven, not assumed: the stored text is a **byte-exact prefix** of ours, and the only difference is the trailing link. The §6.2 Monday post does not show this because its text link and its card link were different URLs. ### I scheduled post 1 twice, and cleaned it up Re-running the command to see its read-back line created a **second identical post** for 2026-10-13. I deleted the newer one through the script's own delete-and-prove path, and verified three things afterwards: the duplicate is gone (a GET returns „Object does not exist"), the keeper is still scheduled, and your Monday post is untouched. ### One small change to `fb_probe.py` `schedule-post` had no `--link` option: every scheduled post attached a `https://felhom.eu/` preview card whatever its text said. Post 1 would have shown a home-page card while its text pointed at `/teszteles` — and **the card is what a reader clicks**. I added `--link` (default unchanged), and split `build_parser()` out of `main()` so a test can parse argv without running a command. **Red-proved:** with the flag removed, both new tests fail with `'Namespace' object has no attribute 'link'`. With it, the suite is **32 green**. The guard that matters is untouched and still pinned — `published` is `"false"` and no argument can flip it, including the new one. --- ## 5. The outreach kit `marketing/testers/OUTREACH.md` — Hungarian, for **you** to send and post. It holds a personal message for colleagues and friends, a Facebook group post with a shorter variant for strict groups, a more technical forum post, a table of places, and a page of answers to the questions people will ask back. **Nothing was posted anywhere and no group was joined.** The group data was *read* in your own Chrome from each group's public „Névjegy" page on 2026-10-10. **The top five places, best first:** 1. **Magyar Linux Felhasználók** — public, 11 970 members. Its rules contain **no advertising ban**, and rule 1 allows „Linux, Unix and free software" topics, which Felhom is. The best Facebook bet. 2. **Magyar Szabad Szoftver Közösség** — public, 1 138 members, **no published rules**, exactly on topic and active. 3. **HUP.hu** — the most technically literate Hungarian audience, but its rules forbid *„bármilyen engedély nélküli reklám- illetve kereskedelmi tevékenység"*. **Ask the moderators first.** 4. **Csináld magad okosotthon – DIY Smart Home** — 23 869 members, but rule 3 says *„A csoportban tilos a hirdetés"* and names a route: `info@diysmarthome.hu`. **That e-mail, not a post.** 5. **Raspberry PI Magyarország** — 11 468 members, no published rules, but nearly dormant (10 posts last month). **The one to be careful with: prohardver.hu / LOGOUT.hu.** Its terms forbid *„az Üzemeltető engedélye nélküli marketing vagy gazdasági tevékenység (tagok, vásárlók gyűjtése, szervezése, regisztrációra invitálása, ajánlattétel, felhívás)"*. Recruiting testers is literally „tagok gyűjtése" and „felhívás", so posting without permission risks deletion and a ban on the best technical audience in the country. **The kit's own recommendation is to start with the personal circle.** You need three people, not a thousand impressions. --- ## 5a. The design round (after your screenshots) You were right on all four points, and three of them had one cause. **`.info-card` and `.highlight-box` are scoped per page** in `site.css` — `.page-technologiak` and `.page-biztonsagimentes`. The new pages carry `.page-teszteles`, which is not one of those scopes, so **none of the card chrome applied**: no background, no border, no padding, no list styling. That is why the numbered points read as a run of plain text. The tester pages now join the technologiak scope, whose `h3` is a flex row — the right one, because these headings carry an icon. **The link colour was a site-wide bug, not a tester-page bug.** There was **no base `a` rule at all**, so an inline link in body copy fell through to the browser default and changed colour once visited. `.legal` was the only place it had been fixed. `/gyik` (6 links), `/technologiak` (3) and `/biztonsagimentes` (2) had the same defect. Fixed for all of them, scoped to text containers so it cannot touch the nav, the footer, `.cta-button` or the 189 picture-gallery openers — checked: all 189 are outside `

`/`

  • ` and unchanged, and `/gyik`'s links now compute to `#2EA8F5` (`--blue-bright`). **Two smaller gaps the new pages exposed:** `code` was styled only under `.legal`, and a `
      ` inside an info-card was unstyled. **Justification is the one item where „follow the other pages" and „justify the text" disagree:** **no page on the site justifies today.** I applied it to the tester pages as you asked, with `hyphens: auto` because Hungarian sets badly when justified without hyphenation. It is deliberately scoped to `.page-teszteles`, so rolling it out site-wide — or dropping it — is a one-line edit. **Say which you want**; right now the tester pages are the only justified ones, which is itself a small inconsistency. `site.css` → `v=10` on all 20 pages. ## 5b. The sitemap fetch failure Your screenshot showed the freshly submitted `https://felhom.eu/sitemap.xml` as **„Sikertelen lekérés"**, type „Ismeretlen", 0 pages — while the old `?v=2` row still reads „Sikeres", 8 pages. **The file itself is fine:** HTTP 200, `Content-Type: application/xml`, 6854 bytes, parses, **18 `` entries**. But it began with a **UTF-8 BOM** before the XML declaration, which is a known irritant for Google's sitemap parser. **The BOM is now removed** (verified live: the response starts `3c 3f 78` = `