Add freemium variant C: archetype persistence, dashboard banner, lesson gate

- User.archetype/utmSource/utmMedium/utmCampaign fields + migration
- register flow reads ?archetype/?utm_* and saves them on the User row
- dashboard ArchetypeBanner: per-archetype 'твой путь' block
- lesson gate after wow-moment lesson (WOW_MOMENT_LESSON_ID=obs-start-l2-006) → tripwire + full-course offer

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-06-23 11:26:34 +05:00
parent bb6c806cdd
commit 7bf3935c81
12 changed files with 241 additions and 3 deletions
@@ -0,0 +1,68 @@
// Персональный блок «твой путь» по типу второго мозга из квиза.
// Server component, без клиентского кода. ДС-2 (Aubade).
const TRIPWIRE_URL = "https://second-brain.ru/entrepreneur";
const ARCHETYPE_INFO: Record<
string,
{ emoji: string; name: string; desc: string; cta: string; href: string }
> = {
architect: {
emoji: "🏛",
name: "Архитектор",
desc: "Ты мыслишь системами: структура, иерархия, порядок. Тебе подойдёт системный путь.",
cta: "Полный курс «Obsidian»",
href: "https://obsidian.second-brain.ru/",
},
gardener: {
emoji: "🌱",
name: "Садовник",
desc: "Ты выращиваешь идеи и связи. Тебе подойдёт работа с мышлением и AI.",
cta: "Курс «Obsidian + AI»",
href: "https://obsidianai.second-brain.ru/",
},
librarian: {
emoji: "📚",
name: "Библиотекарь",
desc: "Ты собираешь и хранишь надёжно. Начни с готового хранилища и руководств.",
cta: "Демо-хранилище",
href: "https://second-brain.ru/sb-vault",
},
pragmatist: {
emoji: "⚡",
name: "Прагматик",
desc: "Тебе важен результат: заметки работают на дело, а не ради заметок.",
cta: "Второй мозг для предпринимателя",
href: TRIPWIRE_URL,
},
};
export function ArchetypeBanner({ archetype }: { archetype: string }) {
const info = ARCHETYPE_INFO[archetype];
if (!info) return null;
return (
<div className="card-aubade p-5 mb-8" style={{ background: "var(--accent)" }}>
<p
className="text-xs font-bold uppercase tracking-widest mb-1"
style={{ color: "var(--muted-foreground)" }}
>
Твой тип второго мозга
</p>
<h2 className="font-bold text-lg mb-1">
{info.emoji} {info.name}
</h2>
<p className="text-sm mb-3" style={{ color: "var(--foreground)" }}>
{info.desc} Начни с бесплатного курса «Obsidian. Старт» ниже а когда захочешь дальше, тебе откроется:
</p>
<a
href={info.href}
target="_blank"
rel="noopener noreferrer"
className="btn-aubade text-sm inline-block"
>
{info.cta}
</a>
</div>
);
}
@@ -0,0 +1,45 @@
// Gate-лестница после wow-урока (ежедневные заметки). Двойной оффер:
// основной — трипвайр «Второй мозг для предпринимателя», вторичный — полный курс.
// Server component, ДС-2 (Aubade).
const TRIPWIRE_URL = "https://second-brain.ru/entrepreneur";
const FULL_COURSE_URL = "https://obsidian.second-brain.ru/";
export function TripwireGateBanner() {
return (
<div
className="card-aubade p-6 mt-10"
style={{ background: "var(--accent)", boxShadow: "4px 4px 0 0 var(--foreground)" }}
>
<p
className="text-xs font-bold uppercase tracking-widest mb-2"
style={{ color: "var(--muted-foreground)" }}
>
Ты освоил главную привычку
</p>
<h2 className="font-bold text-xl mb-2">🎯 Что дальше?</h2>
<p className="text-sm mb-4" style={{ color: "var(--foreground)" }}>
Ежедневные заметки это фундамент второго мозга. Дальше система начинает
работать на тебя. Выбери свой следующий шаг:
</p>
<div className="flex flex-col sm:flex-row gap-3">
<a
href={TRIPWIRE_URL}
target="_blank"
rel="noopener noreferrer"
className="btn-aubade btn-aubade-accent text-sm flex-1 text-center font-bold"
>
Второй мозг для предпринимателя
</a>
<a
href={FULL_COURSE_URL}
target="_blank"
rel="noopener noreferrer"
className="btn-aubade text-sm flex-1 text-center"
>
🏛 Полный курс «Obsidian»
</a>
</div>
</div>
);
}