mirror of
https://github.com/mengjian-github/openclaw101.git
synced 2026-09-01 15:35:09 +08:00
feat(start,tutorial): add day 1-7 links, tracked BotFather link, mobile prep box
- /openclaw-tutorial: add 'Continue with the 7-day OpenClaw course' section with tracked internal links to /day/1 through /day/7 - /start: turn @BotFather into a tracked outbound link (botfather_click event) in the access step, EN + ZH - /start: show the 'what do I need before starting' prep box in the hero on mobile so 390px first screen shows prep items + main CTA - analytics: add botfather_click to tracked event names - sitemap: refresh lastmod via postbuild
This commit is contained in:
@@ -2,6 +2,6 @@
|
||||
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||
<sitemap>
|
||||
<loc>https://openclaw101.dev/sitemap.xml</loc>
|
||||
<lastmod>2026-07-09T02:11:33.151Z</lastmod>
|
||||
<lastmod>2026-07-20T21:43:21.648Z</lastmod>
|
||||
</sitemap>
|
||||
</sitemapindex>
|
||||
|
||||
+23
-23
@@ -5,7 +5,7 @@
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://openclaw101.dev/"/>
|
||||
<xhtml:link rel="alternate" hreflang="zh-CN" href="https://openclaw101.dev/zh"/>
|
||||
<xhtml:link rel="alternate" hreflang="x-default" href="https://openclaw101.dev/"/>
|
||||
<lastmod>2026-07-09T02:07:33.249Z</lastmod>
|
||||
<lastmod>2026-07-20T21:18:50.927Z</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>1.0</priority>
|
||||
</url>
|
||||
@@ -14,7 +14,7 @@
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://openclaw101.dev/"/>
|
||||
<xhtml:link rel="alternate" hreflang="zh-CN" href="https://openclaw101.dev/zh"/>
|
||||
<xhtml:link rel="alternate" hreflang="x-default" href="https://openclaw101.dev/"/>
|
||||
<lastmod>2026-07-09T02:07:33.249Z</lastmod>
|
||||
<lastmod>2026-07-20T21:18:50.927Z</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>1.0</priority>
|
||||
</url>
|
||||
@@ -23,7 +23,7 @@
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://openclaw101.dev/resources"/>
|
||||
<xhtml:link rel="alternate" hreflang="zh-CN" href="https://openclaw101.dev/zh/resources"/>
|
||||
<xhtml:link rel="alternate" hreflang="x-default" href="https://openclaw101.dev/resources"/>
|
||||
<lastmod>2026-07-09T02:10:31.388Z</lastmod>
|
||||
<lastmod>2026-07-20T21:18:50.927Z</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
@@ -32,7 +32,7 @@
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://openclaw101.dev/resources"/>
|
||||
<xhtml:link rel="alternate" hreflang="zh-CN" href="https://openclaw101.dev/zh/resources"/>
|
||||
<xhtml:link rel="alternate" hreflang="x-default" href="https://openclaw101.dev/resources"/>
|
||||
<lastmod>2026-07-09T02:10:31.388Z</lastmod>
|
||||
<lastmod>2026-07-20T21:18:50.927Z</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.8</priority>
|
||||
</url>
|
||||
@@ -41,7 +41,7 @@
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://openclaw101.dev/start"/>
|
||||
<xhtml:link rel="alternate" hreflang="zh-CN" href="https://openclaw101.dev/zh/start"/>
|
||||
<xhtml:link rel="alternate" hreflang="x-default" href="https://openclaw101.dev/start"/>
|
||||
<lastmod>2026-07-09T02:11:33.151Z</lastmod>
|
||||
<lastmod>2026-07-20T21:43:21.648Z</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>1.0</priority>
|
||||
</url>
|
||||
@@ -50,7 +50,7 @@
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://openclaw101.dev/start"/>
|
||||
<xhtml:link rel="alternate" hreflang="zh-CN" href="https://openclaw101.dev/zh/start"/>
|
||||
<xhtml:link rel="alternate" hreflang="x-default" href="https://openclaw101.dev/start"/>
|
||||
<lastmod>2026-07-09T02:11:33.151Z</lastmod>
|
||||
<lastmod>2026-07-20T21:43:21.648Z</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>1.0</priority>
|
||||
</url>
|
||||
@@ -59,7 +59,7 @@
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://openclaw101.dev/openclaw-tutorial"/>
|
||||
<xhtml:link rel="alternate" hreflang="zh-CN" href="https://openclaw101.dev/zh/start"/>
|
||||
<xhtml:link rel="alternate" hreflang="x-default" href="https://openclaw101.dev/openclaw-tutorial"/>
|
||||
<lastmod>2026-07-09T02:11:33.151Z</lastmod>
|
||||
<lastmod>2026-07-20T21:43:21.648Z</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>1.0</priority>
|
||||
</url>
|
||||
@@ -68,7 +68,7 @@
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://openclaw101.dev/privacy"/>
|
||||
<xhtml:link rel="alternate" hreflang="zh-CN" href="https://openclaw101.dev/privacy"/>
|
||||
<xhtml:link rel="alternate" hreflang="x-default" href="https://openclaw101.dev/privacy"/>
|
||||
<lastmod>2026-07-01T00:31:09.104Z</lastmod>
|
||||
<lastmod>2026-07-20T21:18:50.927Z</lastmod>
|
||||
<changefreq>yearly</changefreq>
|
||||
<priority>0.3</priority>
|
||||
</url>
|
||||
@@ -77,7 +77,7 @@
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://openclaw101.dev/terms"/>
|
||||
<xhtml:link rel="alternate" hreflang="zh-CN" href="https://openclaw101.dev/terms"/>
|
||||
<xhtml:link rel="alternate" hreflang="x-default" href="https://openclaw101.dev/terms"/>
|
||||
<lastmod>2026-07-01T00:31:09.104Z</lastmod>
|
||||
<lastmod>2026-07-20T21:18:50.927Z</lastmod>
|
||||
<changefreq>yearly</changefreq>
|
||||
<priority>0.3</priority>
|
||||
</url>
|
||||
@@ -86,7 +86,7 @@
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://openclaw101.dev/day/1"/>
|
||||
<xhtml:link rel="alternate" hreflang="zh-CN" href="https://openclaw101.dev/zh/day/1"/>
|
||||
<xhtml:link rel="alternate" hreflang="x-default" href="https://openclaw101.dev/day/1"/>
|
||||
<lastmod>2026-07-01T00:28:00.498Z</lastmod>
|
||||
<lastmod>2026-07-20T21:18:50.927Z</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
@@ -95,7 +95,7 @@
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://openclaw101.dev/day/1"/>
|
||||
<xhtml:link rel="alternate" hreflang="zh-CN" href="https://openclaw101.dev/zh/day/1"/>
|
||||
<xhtml:link rel="alternate" hreflang="x-default" href="https://openclaw101.dev/day/1"/>
|
||||
<lastmod>2026-07-01T00:28:00.498Z</lastmod>
|
||||
<lastmod>2026-07-20T21:18:50.927Z</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
@@ -104,7 +104,7 @@
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://openclaw101.dev/day/2"/>
|
||||
<xhtml:link rel="alternate" hreflang="zh-CN" href="https://openclaw101.dev/zh/day/2"/>
|
||||
<xhtml:link rel="alternate" hreflang="x-default" href="https://openclaw101.dev/day/2"/>
|
||||
<lastmod>2026-07-01T00:28:00.498Z</lastmod>
|
||||
<lastmod>2026-07-20T21:18:50.927Z</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
@@ -113,7 +113,7 @@
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://openclaw101.dev/day/2"/>
|
||||
<xhtml:link rel="alternate" hreflang="zh-CN" href="https://openclaw101.dev/zh/day/2"/>
|
||||
<xhtml:link rel="alternate" hreflang="x-default" href="https://openclaw101.dev/day/2"/>
|
||||
<lastmod>2026-07-01T00:28:00.498Z</lastmod>
|
||||
<lastmod>2026-07-20T21:18:50.927Z</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
@@ -122,7 +122,7 @@
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://openclaw101.dev/day/3"/>
|
||||
<xhtml:link rel="alternate" hreflang="zh-CN" href="https://openclaw101.dev/zh/day/3"/>
|
||||
<xhtml:link rel="alternate" hreflang="x-default" href="https://openclaw101.dev/day/3"/>
|
||||
<lastmod>2026-07-01T00:28:00.498Z</lastmod>
|
||||
<lastmod>2026-07-20T21:18:50.927Z</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
@@ -131,7 +131,7 @@
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://openclaw101.dev/day/3"/>
|
||||
<xhtml:link rel="alternate" hreflang="zh-CN" href="https://openclaw101.dev/zh/day/3"/>
|
||||
<xhtml:link rel="alternate" hreflang="x-default" href="https://openclaw101.dev/day/3"/>
|
||||
<lastmod>2026-07-01T00:28:00.498Z</lastmod>
|
||||
<lastmod>2026-07-20T21:18:50.927Z</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
@@ -140,7 +140,7 @@
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://openclaw101.dev/day/4"/>
|
||||
<xhtml:link rel="alternate" hreflang="zh-CN" href="https://openclaw101.dev/zh/day/4"/>
|
||||
<xhtml:link rel="alternate" hreflang="x-default" href="https://openclaw101.dev/day/4"/>
|
||||
<lastmod>2026-07-01T00:28:00.498Z</lastmod>
|
||||
<lastmod>2026-07-20T21:18:50.927Z</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
@@ -149,7 +149,7 @@
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://openclaw101.dev/day/4"/>
|
||||
<xhtml:link rel="alternate" hreflang="zh-CN" href="https://openclaw101.dev/zh/day/4"/>
|
||||
<xhtml:link rel="alternate" hreflang="x-default" href="https://openclaw101.dev/day/4"/>
|
||||
<lastmod>2026-07-01T00:28:00.498Z</lastmod>
|
||||
<lastmod>2026-07-20T21:18:50.927Z</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
@@ -158,7 +158,7 @@
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://openclaw101.dev/day/5"/>
|
||||
<xhtml:link rel="alternate" hreflang="zh-CN" href="https://openclaw101.dev/zh/day/5"/>
|
||||
<xhtml:link rel="alternate" hreflang="x-default" href="https://openclaw101.dev/day/5"/>
|
||||
<lastmod>2026-07-01T00:28:00.498Z</lastmod>
|
||||
<lastmod>2026-07-20T21:18:50.927Z</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
@@ -167,7 +167,7 @@
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://openclaw101.dev/day/5"/>
|
||||
<xhtml:link rel="alternate" hreflang="zh-CN" href="https://openclaw101.dev/zh/day/5"/>
|
||||
<xhtml:link rel="alternate" hreflang="x-default" href="https://openclaw101.dev/day/5"/>
|
||||
<lastmod>2026-07-01T00:28:00.498Z</lastmod>
|
||||
<lastmod>2026-07-20T21:18:50.927Z</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
@@ -176,7 +176,7 @@
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://openclaw101.dev/day/6"/>
|
||||
<xhtml:link rel="alternate" hreflang="zh-CN" href="https://openclaw101.dev/zh/day/6"/>
|
||||
<xhtml:link rel="alternate" hreflang="x-default" href="https://openclaw101.dev/day/6"/>
|
||||
<lastmod>2026-07-01T00:28:00.498Z</lastmod>
|
||||
<lastmod>2026-07-20T21:18:50.927Z</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
@@ -185,7 +185,7 @@
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://openclaw101.dev/day/6"/>
|
||||
<xhtml:link rel="alternate" hreflang="zh-CN" href="https://openclaw101.dev/zh/day/6"/>
|
||||
<xhtml:link rel="alternate" hreflang="x-default" href="https://openclaw101.dev/day/6"/>
|
||||
<lastmod>2026-07-01T00:28:00.498Z</lastmod>
|
||||
<lastmod>2026-07-20T21:18:50.927Z</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
@@ -194,7 +194,7 @@
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://openclaw101.dev/day/7"/>
|
||||
<xhtml:link rel="alternate" hreflang="zh-CN" href="https://openclaw101.dev/zh/day/7"/>
|
||||
<xhtml:link rel="alternate" hreflang="x-default" href="https://openclaw101.dev/day/7"/>
|
||||
<lastmod>2026-07-01T00:28:00.498Z</lastmod>
|
||||
<lastmod>2026-07-20T21:18:50.927Z</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
@@ -203,7 +203,7 @@
|
||||
<xhtml:link rel="alternate" hreflang="en" href="https://openclaw101.dev/day/7"/>
|
||||
<xhtml:link rel="alternate" hreflang="zh-CN" href="https://openclaw101.dev/zh/day/7"/>
|
||||
<xhtml:link rel="alternate" hreflang="x-default" href="https://openclaw101.dev/day/7"/>
|
||||
<lastmod>2026-07-01T00:28:00.498Z</lastmod>
|
||||
<lastmod>2026-07-20T21:18:50.927Z</lastmod>
|
||||
<changefreq>monthly</changefreq>
|
||||
<priority>0.9</priority>
|
||||
</url>
|
||||
|
||||
@@ -167,6 +167,16 @@ const conversionContractRows = [
|
||||
];
|
||||
|
||||
|
||||
const dayPathLinks = [
|
||||
{ day: 1, title: 'Meet OpenClaw' },
|
||||
{ day: 2, title: 'Build Your Assistant in 10 Minutes' },
|
||||
{ day: 3, title: 'Give Your Assistant a Soul' },
|
||||
{ day: 4, title: 'Connect Your Digital Life' },
|
||||
{ day: 5, title: 'Unlock the Skill Tree' },
|
||||
{ day: 6, title: 'Make Your Assistant Work Proactively' },
|
||||
{ day: 7, title: 'Advanced Techniques & Future Outlook' },
|
||||
];
|
||||
|
||||
const nextStepCards = [
|
||||
{
|
||||
title: 'Need the shortest route?',
|
||||
@@ -373,6 +383,28 @@ export default function OpenClawTutorialPage() {
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section className="px-4 pb-20">
|
||||
<div className="mx-auto max-w-5xl">
|
||||
<div className="mb-8 max-w-3xl">
|
||||
<h2 className="text-3xl font-black">Continue with the 7-day OpenClaw course</h2>
|
||||
<p className="mt-3 leading-7 text-white/62">
|
||||
After the first reply works, follow the full path in order. Each day builds on the previous setup: soul design, digital life access, skills, proactive jobs, and automation.
|
||||
</p>
|
||||
</div>
|
||||
<div className="grid gap-4 sm:grid-cols-2 lg:grid-cols-3">
|
||||
{dayPathLinks.map((item) => (
|
||||
<article key={item.day} className="rounded-2xl border border-white/10 bg-white/[0.04] p-5">
|
||||
<div className="text-xs font-bold uppercase tracking-[0.16em] text-emerald-200/75">Day {item.day}</div>
|
||||
<h3 className="mt-2 text-base font-black text-white">{item.title}</h3>
|
||||
<TutorialTrackedLink href={`/day/${item.day}`} eventName="tutorial_step_click" source="day_path_grid" intent={`day_${item.day}_guide`} className="mt-4 inline-flex text-sm font-bold text-blue-300 hover:text-blue-200">
|
||||
Open Day {item.day} →
|
||||
</TutorialTrackedLink>
|
||||
</article>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section className="px-4 pb-20">
|
||||
<div className="mx-auto max-w-5xl rounded-3xl border border-blue-400/20 bg-blue-400/10 p-6 sm:p-8">
|
||||
<div className="max-w-3xl">
|
||||
|
||||
@@ -48,6 +48,7 @@ const copy = {
|
||||
],
|
||||
commandLabel: 'Install command',
|
||||
command: 'curl -fsSL https://openclaw.ai/install.sh | bash',
|
||||
botfatherCta: 'Open @BotFather in Telegram ↗',
|
||||
trust: ['Native Windows supported', 'QuickStart wizard', 'Telegram first channel', 'No platform lock-in'],
|
||||
safetyTitle: 'Do not paste secrets into public chats',
|
||||
safety:
|
||||
@@ -92,6 +93,7 @@ const copy = {
|
||||
],
|
||||
commandLabel: '安装命令',
|
||||
command: 'curl -fsSL https://openclaw.ai/install.sh | bash',
|
||||
botfatherCta: '打开 Telegram @BotFather ↗',
|
||||
trust: ['支持原生 Windows', 'QuickStart 向导', 'Telegram 首选通道', '不绑定平台'],
|
||||
safetyTitle: '不要把 secrets 发到公开聊天里',
|
||||
safety:
|
||||
@@ -247,6 +249,10 @@ export default function StartSetupPage({ locale }: StartSetupPageProps) {
|
||||
{t.secondaryCta}
|
||||
</a>
|
||||
</div>
|
||||
<div className="mt-6 rounded-2xl border border-emerald-400/20 bg-emerald-400/10 p-4 lg:hidden">
|
||||
<h2 className="text-base font-black text-emerald-100">{t.noteTitle}</h2>
|
||||
<p className="mt-2 text-sm leading-6 text-emerald-50/75">{t.note}</p>
|
||||
</div>
|
||||
<div className="mt-8 grid gap-3 sm:grid-cols-4">
|
||||
{t.trust.map((item) => (
|
||||
<div key={item} className="rounded-2xl border border-white/10 bg-white/[0.04] px-4 py-3 text-sm text-white/70">
|
||||
@@ -275,6 +281,24 @@ export default function StartSetupPage({ locale }: StartSetupPageProps) {
|
||||
<div>
|
||||
<h3 className="font-bold text-white">{title}</h3>
|
||||
<p className="mt-2 text-sm leading-6 text-white/62">{desc}</p>
|
||||
{id === 'access' ? (
|
||||
<a
|
||||
href="https://t.me/BotFather"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
onClick={() =>
|
||||
trackEvent('botfather_click', {
|
||||
locale,
|
||||
page: '/start',
|
||||
source: 'access_step',
|
||||
target: 'https://t.me/BotFather',
|
||||
})
|
||||
}
|
||||
className="mt-3 inline-flex items-center gap-1 rounded-lg border border-sky-300/25 bg-sky-300/10 px-3 py-1.5 text-xs font-bold text-sky-100 transition hover:bg-sky-300/15"
|
||||
>
|
||||
{t.botfatherCta}
|
||||
</a>
|
||||
) : null}
|
||||
<div className="mt-3 inline-flex rounded-full border border-white/10 px-3 py-1.5 text-xs font-bold text-blue-200">
|
||||
{locale === 'zh' ? `第 ${number} 步` : `Step ${number}`}
|
||||
</div>
|
||||
@@ -286,7 +310,7 @@ export default function StartSetupPage({ locale }: StartSetupPageProps) {
|
||||
</div>
|
||||
|
||||
<aside className="space-y-6">
|
||||
<div className="rounded-3xl border border-emerald-400/20 bg-emerald-400/10 p-6">
|
||||
<div className="hidden rounded-3xl border border-emerald-400/20 bg-emerald-400/10 p-6 lg:block">
|
||||
<h2 className="text-xl font-black text-emerald-100">{t.noteTitle}</h2>
|
||||
<p className="mt-3 text-sm leading-6 text-emerald-50/75">{t.note}</p>
|
||||
</div>
|
||||
|
||||
@@ -32,7 +32,8 @@ export type AnalyticsEventName =
|
||||
| 'resource_no_results'
|
||||
| 'resource_recovery_click'
|
||||
| 'utm_copy_click'
|
||||
| 'hero_scroll_indicator_click';
|
||||
| 'hero_scroll_indicator_click'
|
||||
| 'botfather_click';
|
||||
|
||||
interface AnalyticsEventProperties {
|
||||
[key: string]: string | number | boolean | undefined;
|
||||
|
||||
Reference in New Issue
Block a user