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