feat(demo): funnel server-less users to the OpenCode Connect waitlist (#127)

The demo's only exit CTA was 'Connect your own server' — useless for the
majority of installers who have no server (the exact churn/retention segment).
Adds a secondary CTA pointing them to the OpenCode Connect (hosted, no-setup)
waitlist, which is the monetization funnel per the founder strategy. Additive,
reuses the existing waitlist on /connection/add and the demo's exit-tracking;
i18n en+zh in parity.


Claude-Session: https://claude.ai/code/session_01T12AhSnQVrSxNnvwfCx2z6

Co-authored-by: engineer <engineer@macbookpro.lan>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Den
2026-07-18 11:53:21 -07:00
committed by GitHub
parent 6aee78e840
commit 179f88a4d8
3 changed files with 13 additions and 2 deletions

View File

@@ -85,6 +85,13 @@ export default function DemoScreen() {
> >
<Text style={s.connectButtonText}>{t("demo.connectButton")}</Text> <Text style={s.connectButtonText}>{t("demo.connectButton")}</Text>
</TouchableOpacity> </TouchableOpacity>
<TouchableOpacity
style={s.hostedCtaLink}
onPress={handleConnectPress}
testID="demo-hosted-cta"
>
<Text style={s.hostedCtaLinkText}>{t("demo.hostedCtaLink")}</Text>
</TouchableOpacity>
<TouchableOpacity <TouchableOpacity
style={s.setupGuideLink} style={s.setupGuideLink}
onPress={() => Linking.openURL(SETUP_GUIDE_URL)} onPress={() => Linking.openURL(SETUP_GUIDE_URL)}
@@ -140,6 +147,8 @@ const s = StyleSheet.create({
alignItems: "center", alignItems: "center",
}, },
connectButtonText: { color: "#ffffff", fontWeight: "600", fontSize: 15 }, connectButtonText: { color: "#ffffff", fontWeight: "600", fontSize: 15 },
hostedCtaLink: { marginTop: 14 },
hostedCtaLinkText: { fontSize: 14, fontWeight: "600", color: "#8b5cf6", textAlign: "center" },
setupGuideLink: { marginTop: 14 }, setupGuideLink: { marginTop: 14 },
setupGuideLinkText: { fontSize: 14, fontWeight: "600", color: "#6366f1" }, setupGuideLinkText: { fontSize: 14, fontWeight: "600", color: "#6366f1" },
}) })

View File

@@ -432,6 +432,7 @@
"ctaTitle": "Like what you see?", "ctaTitle": "Like what you see?",
"ctaSubtitle": "This was a scripted demo. Connect your own opencode server to do this for real.", "ctaSubtitle": "This was a scripted demo. Connect your own opencode server to do this for real.",
"connectButton": "Connect your own server", "connectButton": "Connect your own server",
"setupGuideLink": "How to set up a server" "setupGuideLink": "How to set up a server",
"hostedCtaLink": "No server? Join the OpenCode Connect waitlist — hosted, no setup"
} }
} }

View File

@@ -432,6 +432,7 @@
"ctaTitle": "喜欢这个体验吗?", "ctaTitle": "喜欢这个体验吗?",
"ctaSubtitle": "这是一个脚本化的演示。连接您自己的 opencode 服务器即可真正体验。", "ctaSubtitle": "这是一个脚本化的演示。连接您自己的 opencode 服务器即可真正体验。",
"connectButton": "连接您自己的服务器", "connectButton": "连接您自己的服务器",
"setupGuideLink": "如何设置服务器" "setupGuideLink": "如何设置服务器",
"hostedCtaLink": "没有服务器?加入 OpenCode Connect 候补名单 — 托管,无需搭建"
} }
} }