nx_connect_page.nx source
↩ module page · 98 lines · 10775 B
1// nx_connect_page.nx -- the CONNECT product landing, composed from nx_sclass_kit (award-tier, ADA,
2// 0-JS, own --nx- tokens BY CONSTRUCTION). Surfaces the whole CONNECT capability (reciprocal language
3// exchange + unlimited translation + real-world meetups + one interest graph) and its safety/honesty
4// invariants, and links to the LIVE /compare/connect receipts (coverage 857/1000, 4 research-grounded
5// exceeds). Every claim on the page is a MEASURED fact backed by a passing gate + a cited incumbent
6// byte -- the marketing is the receipts. Writes web_assets/connect.html. license_tier: ORIGINAL expect_exit: 0
7import "nx_syscalls_x86_64.nx"
8import "nx_sclass_kit.nx"
9
10func main() -> i64 {
11 let out: *u8 = sys_mmap(262144)
12 var o: i64 = 0
13
14 o = sk_open(out, o, "Connect — meet, learn a language, belong" as *u8, "Connect" as *u8, 0)
15
16 o = sk_hero(out, o,
17 "★ A worldwide place to connect over what you actually share" as *u8,
18 "Meet real people through" as *u8,
19 "language, faith, and interests." as *u8,
20 "Learn a language with a partner who is learning yours. Find your people by hobby, belief, and place — then meet up in the real world. No swiping on looks, no engagement traps, no data sold. Free to connect, forever." as *u8,
21 "Open the live app" as *u8, "/connect" as *u8,
22 "Safe & honest by design" as *u8, "#trust" as *u8,
23 "Free forever · No connection feature behind a paywall · Your beliefs stay private" as *u8)
24
25 o = sk_section_open(out, o, "does" as *u8, "What Connect does" as *u8, "One graph for the ways people actually connect" as *u8, "Language exchange, shared interests, faith community, and real meetups — on a single model, not four siloed apps." as *u8)
26 o = sk_card_link(out, o,
27 "<svg width=\"26\" height=\"26\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M3 12a9 9 0 0018 0 9 9 0 00-18 0z\"/><path d=\"M12 7v5l3 2\"/></svg>" as *u8,
28 "Find the people you already knew" as *u8,
29 "Reconnect with the missionaries who taught you, or the members and families you served. You are only shown people you genuinely overlapped with — the same mission, a shared area, and dates that actually crossed. All three are required, so a missionary who served your area after you left never appears. Nothing is surfaced about you, or to you, until you turn discovery on, and turning it off removes you at once." as *u8,
30 "/connect/reconnect" as *u8)
31 o = sk_card(out, o,
32 "<svg width=\"26\" height=\"26\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M4 5h9v8H7l-3 3V5z\"/><path d=\"M11 11h9v6l-3-2h-6v-4\"/></svg>" as *u8,
33 "Reciprocal language exchange" as *u8,
34 "You are matched with someone who is learning your language while you learn theirs — a genuine two-way trade, not a one-sided lesson. A one-directional match scores zero by construction." as *u8)
35 o = sk_card(out, o,
36 "<svg width=\"26\" height=\"26\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M5 8h8M9 8v9\"/><path d=\"M13 12h6M16 12v5\"/><path d=\"M4 4h16v14H4z\"/></svg>" as *u8,
37 "Unlimited in-chat translation" as *u8,
38 "Every message translates into your language inline, with the original kept beside it so you keep learning. Unlimited by construction — there is no daily quota anywhere in the app to run out of." as *u8)
39 o = sk_card(out, o,
40 "<svg width=\"26\" height=\"26\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 21s-7-5-7-11a7 7 0 0114 0c0 6-7 11-7 11z\"/><circle cx=\"12\" cy=\"10\" r=\"2.4\"/></svg>" as *u8,
41 "Real-world meetups & events" as *u8,
42 "Gather in person around a shared interest, with capacity, RSVP, and a two-deep safety rule built in for anything involving youth. No organizer fee, no fee to RSVP." as *u8)
43 o = sk_card(out, o,
44 "<svg width=\"26\" height=\"26\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"6\" cy=\"7\" r=\"2\"/><circle cx=\"18\" cy=\"7\" r=\"2\"/><circle cx=\"12\" cy=\"17\" r=\"2\"/><path d=\"M8 8l3 7M16 8l-3 7\"/></svg>" as *u8,
45 "One interest graph" as *u8,
46 "Language, hobby, faith, and place live on a single model. Two people with no shared language but a shared hobby and belief still find each other — the apps that silo these miss them." as *u8)
47 o = sk_card(out, o,
48 "<svg width=\"26\" height=\"26\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M4 17h6M14 7h6\"/><circle cx=\"8\" cy=\"17\" r=\"2.4\"/><circle cx=\"16\" cy=\"7\" r=\"2.4\"/></svg>" as *u8,
49 "You decide what a friendship is" as *u8,
50 "Every relationship sits at the level you have <i>both</i> agreed to. Someone hoping for more than you do changes nothing — the relationship only moves when you both open the same door, so nobody is quietly steered toward romance. Stepping back or blocking is the opposite: it takes effect immediately and needs nobody’s agreement." as *u8)
51 o = sk_card_link(out, o,
52 "<svg width=\"26\" height=\"26\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M5 4h14v16H5z\"/><path d=\"M9 9h6M9 13h6M9 17h3\"/></svg>" as *u8,
53 "Community pulse & surveys" as *u8,
54 "How is your ward, group, or team really doing? Answer a one-question welfare pulse or a deeper needs survey — anonymous, aggregate-only behind a k-anonymity floor, and answering again updates your earlier answer instead of double-counting it. Written answers go only to the people who can help. Try the live pulse." as *u8,
55 "/survey/s/welfare-pulse" as *u8)
56 o = sk_section_close(out, o)
57
58 o = sk_trust_open(out, o, "Safe & honest by construction" as *u8, "Rules built into the software, proven with tests" as *u8, "These are not promises in a terms-of-service. Each is an invariant in the code, checked by a passing gate, and measured head-to-head against the incumbent that gets it wrong." as *u8)
59 o = sk_trust_item(out, o, "No adult–youth private messages" as *u8, "A non-guardian adult can reach a minor only inside a visible group with two adults present. A private one-to-one is refused by the software." as *u8)
60 o = sk_trust_item(out, o, "Every way to connect is free" as *u8, "No connection feature is ever behind a paywall — including unlimited translation, which others ration or charge for. Only a local business ever pays, and never to reach a minor." as *u8)
61 o = sk_trust_item(out, o, "Content-blind, no data broker" as *u8, "The server routes your messages without reading them, and runs on owned hardware, so there is no third party collecting your metadata to sell." as *u8)
62 o = sk_trust_item(out, o, "Your beliefs stay private" as *u8, "Faith is optional, shown only if you consent, and never used to target advertising. You are findable only by the handle or code you choose to share — no contact-book upload exists." as *u8)
63 o = sk_trust_item(out, o, "Community groups, never church administration" as *u8, "A ward or branch group here can hold a locality, a name, its members, and an event link — and nothing else. Callings, membership records, attendance and donations are not forbidden by policy; there is no field of that kind for them to go in, and a proposed one is refused before it ships. We never compete with your church’s own tools." as *u8)
64 o = sk_trust_close(out, o)
65
66 o = sk_section_open(out, o, "measured" as *u8, "Measured, not marketed" as *u8, "We compare ourselves in the open" as *u8, "Connect is graded against Tandem, HelloTalk, Meetup, and Discord on a public scorecard. Every claim above maps to a passing test and a cited fact from the incumbent’s own documentation — a fabricated win fails the build." as *u8)
67 o = sk_card_link(out, o,
68 "<svg width=\"26\" height=\"26\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M4 19V9M10 19V5M16 19v-7M22 19H2\"/></svg>" as *u8,
69 "See the live scorecard" as *u8,
70 "Coverage 857 of 1000 across 28 capability axes, with four research-grounded exceeds (a two-deep youth wall, zero paywalled connection features, sovereign hosting with no vendor metadata, and an RFC-9420 end-to-end scale ceiling). Read the full head-to-head." as *u8,
71 "/compare/connect" as *u8)
72 o = sk_card(out, o,
73 "<svg width=\"26\" height=\"26\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.7\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M12 3l7 2.5v5c0 4.6-3 8-7 9.5-4-1.5-7-4.9-7-9.5v-5L12 3z\"/><path d=\"M9 12l2 2 4-4\"/></svg>" as *u8,
74 "Honest about where we start behind" as *u8,
75 "We say so plainly: incumbents lead on trained matching models, installed user base, and shipped mobile apps. Our edge is integrity and safety that their business models cannot copy — and we are building the rest in the open." as *u8)
76 o = sk_section_close(out, o)
77
78 o = sk_cta(out, o,
79 "Free, forever" as *u8,
80 "Your people are out there." as *u8,
81 "The language partner who needs exactly what you can teach. The group that shares your obscure hobby. The community that shares your faith. Come find them — without being farmed for attention." as *u8,
82 "Create your free account" as *u8, "#top" as *u8,
83 "See how it works" as *u8, "#does" as *u8)
84
85 o = sk_close(out, o,
86 "Worldwide, low-bandwidth-friendly, and privacy-respecting by design. No influencers, no looks-swiping, no engagement-maximizing dark patterns. A tool for real human connection — friendship, learning, faith, and families." as *u8,
87 "Connect" as *u8)
88
89 let fd: i64 = sys_openat_wr("web_assets/connect.html" as *u8, 420)
90 if fd < 0 { return 6 }
91 sys_write(fd, out, o)
92 sys_close(fd)
93 let banner: *u8 = "nx_connect_page: wrote web_assets/connect.html\n" as *u8
94 var bn: i64 = 0
95 while banner[bn] != 0 { bn = bn + 1 }
96 sys_write(1, banner, bn)
97 return 0
98}