diff --git a/src/components/mika/FaqSection.tsx b/src/components/mika/FaqSection.tsx index aefd37c..295908a 100644 --- a/src/components/mika/FaqSection.tsx +++ b/src/components/mika/FaqSection.tsx @@ -1,6 +1,6 @@ import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "@/components/ui/accordion"; -const faqs = [ +export const faqs = [ { q: "O que é o Mika?", a: "Mika é uma plataforma brasileira que entrega para você um agente de IA pessoal hospedado em VPS gerenciada, acessível direto pelo Telegram. Ele aprende com você, lembra de contexto e executa tarefas com integrações reais.", diff --git a/src/integrations/supabase/auth-attacher.ts b/src/integrations/supabase/auth-attacher.ts new file mode 100644 index 0000000..5bc57b7 --- /dev/null +++ b/src/integrations/supabase/auth-attacher.ts @@ -0,0 +1,15 @@ +// This file is automatically generated. Do not edit it directly. +import { createMiddleware } from '@tanstack/react-start' +import { supabase } from './client' + +// Must be registered as a global `functionMiddleware` in `src/start.ts`; otherwise +// the browser never attaches the bearer token to serverFn RPCs. +export const attachSupabaseAuth = createMiddleware({ type: 'function' }).client( + async ({ next }) => { + const { data } = await supabase.auth.getSession() + const token = data.session?.access_token + return next({ + headers: token ? { Authorization: `Bearer ${token}` } : {}, + }) + }, +) diff --git a/src/routeTree.gen.ts b/src/routeTree.gen.ts index 9de1967..b960641 100644 --- a/src/routeTree.gen.ts +++ b/src/routeTree.gen.ts @@ -649,12 +649,3 @@ const rootRouteChildren: RootRouteChildren = { export const routeTree = rootRouteImport ._addFileChildren(rootRouteChildren) ._addFileTypes() - -import type { getRouter } from './router.tsx' -import type { createStart } from '@tanstack/react-start' -declare module '@tanstack/react-start' { - interface Register { - ssr: true - router: Awaited> - } -} diff --git a/src/routes/__root.tsx b/src/routes/__root.tsx index f65dfe7..464fe5e 100644 --- a/src/routes/__root.tsx +++ b/src/routes/__root.tsx @@ -33,50 +33,61 @@ function NotFoundComponent() { ); } +const OG_IMAGE = + "https://pub-bb2e103a32db4e198524a2e9ed8f35b4.r2.dev/be92ada2-f87d-43b5-bd30-333f14e189e4/id-preview-6e3a7096--798b89e5-0dc6-412a-81be-a4b6dfea7b6c.lovable.app-1776957543862.png"; + export const Route = createRootRouteWithContext()({ head: () => ({ meta: [ { charSet: "utf-8" }, { name: "viewport", content: "width=device-width, initial-scale=1" }, - { title: "Mika — Assistente Pessoal IA" }, + { title: "Mika — Assistente Pessoal IA no Telegram" }, { name: "description", content: - "Agentes de IA personalizados que aprendem com você e te atendem direto no Telegram. Planos a partir de R$ 69,90/mês.", + "Agentes de IA personalizados que aprendem com você e atendem direto no Telegram. Planos a partir de R$ 69,90/mês.", }, { name: "author", content: "DOMCO" }, { name: "theme-color", content: "#F97316" }, - { property: "og:title", content: "Mika — Assistente Pessoal IA" }, - { - property: "og:description", - content: - "Agentes de IA personalizados que aprendem com você e te atendem direto no Telegram. Planos a partir de R$ 69,90/mês.", - }, + { property: "og:site_name", content: "Mika" }, { property: "og:type", content: "website" }, { property: "og:locale", content: "pt_BR" }, - { property: "og:url", content: "https://mika.domco.ai" }, - { property: "og:image", content: "https://pub-bb2e103a32db4e198524a2e9ed8f35b4.r2.dev/be92ada2-f87d-43b5-bd30-333f14e189e4/id-preview-6e3a7096--798b89e5-0dc6-412a-81be-a4b6dfea7b6c.lovable.app-1776957543862.png" }, + { property: "og:image", content: OG_IMAGE }, { name: "twitter:card", content: "summary_large_image" }, - { name: "twitter:title", content: "Mika — Assistente Pessoal IA" }, - { - name: "twitter:description", - content: "Agentes de IA personalizados, em português, direto no Telegram.", - }, - { name: "twitter:image", content: "https://pub-bb2e103a32db4e198524a2e9ed8f35b4.r2.dev/be92ada2-f87d-43b5-bd30-333f14e189e4/id-preview-6e3a7096--798b89e5-0dc6-412a-81be-a4b6dfea7b6c.lovable.app-1776957543862.png" }, - { name: "description", content: "Mika: Seu Agente Inteligente - IA pessoal no Telegram." }, - { property: "og:description", content: "Mika: Seu Agente Inteligente - IA pessoal no Telegram." }, - { name: "twitter:description", content: "Mika: Seu Agente Inteligente - IA pessoal no Telegram." }, + { name: "twitter:image", content: OG_IMAGE }, ], links: [ { rel: "stylesheet", href: appCss }, { rel: "icon", href: "/favicon.svg", type: "image/svg+xml" }, - { rel: "canonical", href: "https://mika.domco.ai" }, { rel: "preconnect", href: "https://rsms.me" }, { rel: "stylesheet", href: "https://rsms.me/inter/inter.css", }, ], + scripts: [ + { + type: "application/ld+json", + children: JSON.stringify({ + "@context": "https://schema.org", + "@graph": [ + { + "@type": "Organization", + name: "Mika", + url: "https://mika.domco.ai", + logo: "https://mika.domco.ai/favicon.svg", + parentOrganization: { "@type": "Organization", name: "DOMCO" }, + }, + { + "@type": "WebSite", + name: "Mika", + url: "https://mika.domco.ai", + inLanguage: "pt-BR", + }, + ], + }), + }, + ], }), shellComponent: RootShell, component: RootComponent, diff --git a/src/routes/index.tsx b/src/routes/index.tsx index 677ebb2..ec6fa46 100644 --- a/src/routes/index.tsx +++ b/src/routes/index.tsx @@ -4,10 +4,36 @@ import { HeroSection } from "@/components/mika/HeroSection"; import { FeaturesSection } from "@/components/mika/FeaturesSection"; import { HowItWorksSection } from "@/components/mika/HowItWorksSection"; import { PlansSection } from "@/components/mika/PlansSection"; -import { FaqSection } from "@/components/mika/FaqSection"; +import { FaqSection, faqs } from "@/components/mika/FaqSection"; import { LandingFooter } from "@/components/mika/LandingFooter"; export const Route = createFileRoute("/")({ + head: () => ({ + meta: [ + { property: "og:title", content: "Mika — Assistente Pessoal IA no Telegram" }, + { + property: "og:description", + content: + "Agentes de IA personalizados que aprendem com você e atendem direto no Telegram. Planos a partir de R$ 69,90/mês.", + }, + { property: "og:url", content: "https://mika.domco.ai/" }, + ], + links: [{ rel: "canonical", href: "https://mika.domco.ai/" }], + scripts: [ + { + type: "application/ld+json", + children: JSON.stringify({ + "@context": "https://schema.org", + "@type": "FAQPage", + mainEntity: faqs.map((f) => ({ + "@type": "Question", + name: f.q, + acceptedAnswer: { "@type": "Answer", text: f.a }, + })), + }), + }, + ], + }), component: LandingPage, }); diff --git a/src/routes/login.tsx b/src/routes/login.tsx index 7d78314..2afd297 100644 --- a/src/routes/login.tsx +++ b/src/routes/login.tsx @@ -27,6 +27,24 @@ export const Route = createFileRoute("/login")({ validateSearch: (search: Record): LoginSearch => ({ redirect: typeof search.redirect === "string" ? search.redirect : undefined, }), + head: () => ({ + meta: [ + { title: "Entrar na Mika — Acesse seu agente de IA" }, + { + name: "description", + content: + "Faça login na sua conta Mika para acessar seu agente de IA pessoal, integrações e configurações no painel.", + }, + { property: "og:title", content: "Entrar na Mika" }, + { + property: "og:description", + content: "Acesse seu agente de IA pessoal no painel da Mika.", + }, + { property: "og:url", content: "https://mika.domco.ai/login" }, + { name: "robots", content: "noindex,follow" }, + ], + links: [{ rel: "canonical", href: "https://mika.domco.ai/login" }], + }), component: LoginPage, }); diff --git a/src/routes/signup.tsx b/src/routes/signup.tsx index c4f2583..0ad19aa 100644 --- a/src/routes/signup.tsx +++ b/src/routes/signup.tsx @@ -40,6 +40,25 @@ export const Route = createFileRoute("/signup")({ plan: typeof search.plan === "string" ? search.plan : undefined, cycle: search.cycle === "yearly" || search.cycle === "monthly" ? search.cycle : undefined, }), + head: () => ({ + meta: [ + { title: "Criar conta na Mika — Comece seu agente de IA" }, + { + name: "description", + content: + "Crie sua conta Mika em minutos e tenha um agente de IA pessoal no Telegram. Garantia de 30 dias para reembolso integral.", + }, + { property: "og:title", content: "Criar conta na Mika" }, + { + property: "og:description", + content: + "Comece em minutos. Agente de IA pessoal no Telegram com garantia de 30 dias.", + }, + { property: "og:url", content: "https://mika.domco.ai/signup" }, + { name: "robots", content: "noindex,follow" }, + ], + links: [{ rel: "canonical", href: "https://mika.domco.ai/signup" }], + }), component: SignupPage, });