1<!DOCTYPE html><!--IP2rebxIu_RR2_DPBHQdM--><html lang="en" class="jetbrains_mono_707233f-module__9hS9bG__variable bebas_neue_57205a5d-module__XKtsIW__variable"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/70bc3e132a0a741e-s.p.15008bfb.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="/_next/static/media/fabcf92ba1ccea36-s.p.19f28380.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="preload" href="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=1172114&theme=light&t=1781509839879" as="image"/><link rel="stylesheet" href="/_next/static/chunks/7d783d28d01f41b6.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/e943752a3627effb.js"/>
1<script src="/_next/static/chunks/33d89f943245c129.js" async=""></script>
1<script src="/_next/static/chunks/92bd936749280a22.js" async=""></script>
1<script src="/_next/static/chunks/turbopack-56d512780873f3ff.js" async=""></script>
1<script src="/_next/static/chunks/9b231ecf8984e28d.js" async=""></script>
1<script src="/_next/static/chunks/c9907f856bf37aca.js" async=""></script>
1<script src="/_next/static/chunks/33868fb9c860a3d1.js" async=""></script>
1<script src="/_next/static/chunks/6ca20bcff9c7228d.js" async=""></script>
1<script src="/_next/static/chunks/f680eea0828bea15.js" async=""></script>
1<meta name="next-size-adjust" content=""/><title>Syllogic - Self-Hosted Personal Finance</title><meta name="description" content="Self-hosted personal finance dashboard with AI categorization, recurring spend tracking, and a live demo."/><link rel="icon" href="/favicon.ico?favicon.41065c94.ico" sizes="48x48" type="image/x-icon"/>
1<script src="/_next/static/chunks/a6dad97d9634a72d.js" noModule=""></script>
1</head><body class="font-mono bg-bg text-fg"><div hidden=""><!--$--><!--/$--></div><canvas class="fixed inset-0 pointer-events-none z-10 opacity-30"></canvas><main><nav class="fixed left-6 top-1/2 -translate-y-1/2 z-50 hidden lg:flex flex-col gap-5"><a href="#hero" class="flex items-center gap-2 group" style="color:var(--color-accent)"><span class="block w-4 h-px transition-all duration-300" style="background-color:var(--color-accent);width:20px"></span><span class="text-xs font-mono transition-colors duration-200 group-hover:text-fg">00</span></a><a href="#signals" class="flex items-center gap-2 group" style="color:var(--color-muted)"><span class="block w-4 h-px transition-all duration-300" style="background-color:var(--color-muted);width:12px"></span><span class="text-xs font-mono transition-colors duration-200 group-hover:text-fg">01</span></a><a href="#preview" class="flex items-center gap-2 group" style="color:var(--color-muted)"><span class="block w-4 h-px transition-all duration-300" style="background-color:var(--color-muted);width:12px"></span><span class="text-xs font-mono transition-colors duration-200 group-hover:text-fg">02</span></a><a href="#why" class="flex items-center gap-2 group" style="color:var(--color-muted)"><span class="block w-4 h-px transition-all duration-300" style="background-color:var(--color-muted);width:12px"></span><span class="text-xs font-mono transition-colors duration-200 group-hover:text-fg">03</span></a><a href="#work" class="flex items-center gap-2 group" style="color:var(--color-muted)"><span class="block w-4 h-px transition-all duration-300" style="background-color:var(--color-muted);width:12px"></span><span class="text-xs font-mono transition-colors duration-200 group-hover:text-fg">04</span></a><a href="#install" class="flex items-center gap-2 group" style="color:var(--color-muted)"><span class="block w-4 h-px transition-all duration-300" style="background-color:var(--color-muted);width:12px"></span><span class="text-xs font-mono transition-colors duration-200 group-hover:text-fg">05</span></a><a href="#roadmap" class="flex items-center gap-2 group" style="color:var(--color-muted)"><span class="block w-4 h-px transition-all duration-300" style="background-color:var(--color-muted);width:12px"></span><span class="text-xs font-mono transition-colors duration-200 group-hover:text-fg">06</span></a><a href="#colophon" class="flex items-center gap-2 group" style="color:var(--color-muted)"><span class="block w-4 h-px transition-all duration-300" style="background-color:var(--color-muted);width:12px"></span><span class="text-xs font-mono transition-colors duration-200 group-hover:text-fg">07</span></a><a href="#authors" class="flex items-center gap-2 group" style="color:var(--color-muted)"><span class="block w-4 h-px transition-all duration-300" style="background-color:var(--color-muted);width:12px"></span><span class="text-xs font-mono transition-colors duration-200 group-hover:text-fg">08</span></a></nav><section id="hero" class="relative min-h-screen flex flex-col justify-center px-8 lg:px-24 pt-20 pb-16"><p class="text-xs font-mono uppercase tracking-[0.25em] mb-10 overflow-hidden" style="color:var(--color-muted)"><span class="relative inline-block overflow-hidden"><span class="block transition-transform duration-700 ease-out" style="transform:translateY(110%)">OPEN SOURCE · SELF-HOSTED · PERSONAL FINANCE</span></span></p><h1 class="font-display leading-none mb-8" style="font-size:clamp(4rem, 14vw, 13rem);color:var(--color-fg)"><span><span class="inline-block transition-colors duration-100" style="color:var(--color-accent)"> </span><span class="inline-block transition-colors duration-100" style="color:var(--color-accent)"> </span><span class="inline-block transition-colors duration-100" style="color:var(--color-accent)"> </span><span class="inline-block transition-colors duration-100" style="color:var(--color-accent)"> </span><span class="inline-block transition-colors duration-100" style="color:var(--color-accent)"> </span><span class="inline-block transition-colors duration-100" style="color:var(--color-accent)"> </span><span class="inline-block transition-colors duration-100" style="color:var(--color-accent)"> </span><span class="inline-block transition-colors duration-100" style="color:var(--color-accent)"> </span></span></h1><div class="font-mono text-base leading-relaxed max-w-lg mb-12" style="color:var(--color-fg)"><p>Self-hosted personal finance dashboard with AI categorization, recurring spend tracking, and a live demo.</p><p style="color:var(--color-muted)">Run it on Docker or Railway and keep your financial data on infrastru
1cture you control.</p></div><div class="flex flex-wrap items-center gap-4"><a href="https://app.syllogic.ai/login?demo=1&utm_source=landing&utm_medium=site&utm_campaign=oss_promotion&utm_content=hero_demo" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-2 px-6 py-3 font-mono text-sm uppercase tracking-widest transition-opacity hover:opacity-80" style="background-color:var(--color-accent);color:var(--color-bg)">Try Live Demo<svg width="9" height="9" viewBox="0 0 10 10" fill="none" class="inline-block shrink-0 -rotate-90"><path d="M1 3L5 7L9 3" stroke="currentColor" stroke-width="1.5" stroke-linecap="square" stroke-linejoin="miter"></path></svg></a><a href="#install" class="inline-flex items-center gap-2 px-6 py-3 font-mono text-sm uppercase tracking-widest transition-colors hover:border-fg" style="border:1px solid var(--color-border);color:var(--color-fg)">Self-Host In 10 Minutes<svg width="9" height="9" viewBox="0 0 10 10" fill="none" class="inline-block shrink-0 -rotate-90"><path d="M1 3L5 7L9 3" stroke="currentColor" stroke-width="1.5" stroke-linecap="square" stroke-linejoin="miter"></path></svg></a><a href="/start" class="inline-flex items-center gap-2 px-6 py-3 font-mono text-sm uppercase tracking-widest transition-colors hover:border-fg" style="border:1px solid var(--color-border);color:var(--color-muted)">Start Here<svg width="9" height="9" viewBox="0 0 10 10" fill="none" class="inline-block shrink-0 -rotate-90"><path d="M1 3L5 7L9 3" stroke="currentColor" stroke-width="1.5" stroke-linecap="square" stroke-linejoin="miter"></path></svg></a></div><div class="mt-8"><a href="https://www.producthunt.com/products/syllogic?embed=true&utm_source=badge-featured&utm_medium=badge&utm_campaign=badge-syllogic" target="_blank" rel="noopener noreferrer" class="inline-block transition-opacity hover:opacity-80"><img alt="Syllogic - Self-hosted personal finance. Your data, your server. | Product Hunt" width="250" height="54" src="https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=1172114&theme=light&t=1781509839879"/></a></div><div class="absolute bottom-8 left-8 lg:left-24 flex items-center gap-2 text-xs font-mono uppercase tracking-widest" style="color:var(--color-muted)"><span>Scroll</span><svg width="8" height="8" viewBox="0 0 10 10" fill="none" class="inline-block shrink-0"><path d="M1 3L5 7L9 3" stroke="currentColor" stroke-width="1.5" stroke-linecap="square" stroke-linejoin="miter"></path></svg></div></section><section id="signals" class="py-8 px-8 lg:px-24" style="border-top:1px solid var(--color-border)"><div class="grid grid-cols-2 md:grid-cols-3 lg:grid-cols-6 gap-8"><div class="flex flex-col gap-1.5"><span class="text-xs font-mono uppercase tracking-widest" style="color:var(--color-muted)">LICENSE</span><span class="text-sm font-mono" style="color:var(--color-fg)">AGPL-3.0</span></div><div class="flex flex-col gap-1.5"><span class="text-xs font-mono uppercase tracking-widest" style="color:var(--color-muted)">DEPLOY</span><span class="text-sm font-mono" style="color:var(--color-fg)">Docker / Railway / CasaOS</span></div><div class="flex flex-col gap-1.5"><span class="text-xs font-mono uppercase tracking-widest" style="color:var(--color-muted)">DEMO</span><span class="text-sm font-mono" style="color:var(--color-fg)">Live</span></div><div class="flex flex-col gap-1.5"><span class="text-xs font-mono uppercase tracking-widest" style="color:var(--color-muted)">RELEASE</span><span class="text-sm font-mono" style="color:var(--color-fg)">v1.0.0</span></div><div class="flex flex-col gap-1.5"><span class="text-xs font-mono uppercase tracking-widest" style="color:var(--color-muted)">DATA</span><span class="text-sm font-mono" style="color:var(--color-fg)">PostgreSQL 16</span></div><div class="flex flex-col gap-1.5"><span class="text-xs font-mono uppercase tracking-widest" style="color:var(--color-muted)">AI</span><span class="text-sm font-mono" style="color:var(--color-fg)">Optional OpenAI</span></div></div></section><section id="preview" class="py-24 px-8 lg:px-24" style="border-top:1px solid var(--color-border)"><div class="flex items-baseline gap-4 mb-16"><span class="font-mono text-sm" style="color:var(--color-accent)">02</span><h2 class="font-display text-5xl" style="color:var(--color-fg)">WHAT IT LOOKS LIKE</h2></div><p class="font-mono text-sm leading-relaxed max-w-3xl mb-12" style="color:var(--color-muted)">Real UI, real workflows, and a live demo you can click through before you ever deploy the stack.</p><div class="grid grid-cols-1 lg:grid-cols-2 gap-3"><div class="relative overflow-hidden lg:col-span-2" style="background-color:rgba(255,255,255,0.02);border:1px solid var(--color-border)"><div class="flex items-center gap-1.5 px-3" style="height:32px;border-bottom:1px solid var(--color-border);background-color:rgba(255,255,255,0.02)"><div class="w-2.5 h-2.5 rounded-full" style="background-color:#ff5f57;opacity:0.65"></div><div class="w-2.5 h-2.5 rounded-full" style="background-color:#febc2e;opacity:0.65"></div><div class="w-2.5 h-2.5 rounded-full" style="background-color:#28c840;opacity:0.65"></div><div class="flex-1 mx-4 h-4 rounded-sm" style="background-color:rgba(255,255,255,0.08)"></div></div><img alt="Dashboard Overview" loading="lazy" width="3776" height="1810" decoding="async" data-nimg="1" class="block h-auto w-full" style="color:transparent" sizes="(min-width: 1024px) calc(100vw - 12rem), calc(100vw - 4rem)" srcSet="/_next/image?url=%2Fimages%2Fscreenshots%2Fdashboard.png&w=32&q=75 32w, /_next/image?url=%2Fimages%2Fscreenshots%2Fdashboard.png&w=48&q=75 48w, /_next/image?url=%2Fimages%2Fscreenshots%2Fdashboard.png&w=64&q=75 64w, /_next/image?url=%2Fimages%2Fscreenshots%2Fdashboard.png&w=96&q=75 96w, /_next/image?url=%2Fimages%2Fscreenshots%2Fdashboard.png&w=128&q=75 128w, /_next/image?url=%2Fimages%2Fscreenshots%2Fdashboard.png&w=256&q=75 256w, /_next/image?url=%2Fimages%2Fscreenshots%2Fdashboard.png&w=384&q=75 384w, /_next/image?url=%2Fimages%2Fscreenshots%2Fdashboard.png&w=640&q=75 640w, /_next/image?url=%2Fimages%2Fscreenshots%2Fdashboard.png&w=750&q=75 750w, /_next/image?url=%2Fimages%2Fscreenshots%2Fdashboard.png&w=828&q=75 828w, /_next/image?url=%2Fimages%2Fscreenshots%2Fdashboard.png&w=1080&q=75 1080w, /_next/image?url=%2Fimages%2Fscreenshots%2Fdashboard.png&w=1200&q=75 1200w, /_next/image?url=%2Fimages%2Fscreenshots%2Fdashboard.png&w=1920&q=75 1920w, /_next/image?url=%2Fimages%2Fscreenshots%2Fdashboard.png&w=2048&q=75 2048w, /_next/image?url=%2Fimages%2Fscreenshots%2Fdashboard.png&w=3840&q=75 3840w" src="/_next/image?url=%2Fimages%2Fscreenshots%2Fdashboard.png&w=3840&q=75"/></div><div class="relative overflow-hidden " style="background-color:rgba(255,255,255,0.02);border:1px solid var(--color-border)"><div class="flex items-center gap-1.5 px-3" style="height:32px;border-bottom:1px solid var(--color-border);background-color:rgba(255,255,255,0.02)"><div class="w-2.5 h-2.5 rounded-full" style="background-color:#ff5f57;opacity:0.65"></div><div class="w-2.5 h-2.5 rounded-full" style="background-color:#febc2e;opacity:0.65"></div><div class="w-2.5 h-2.5 rounded-full" style="background-color:#28c840;opacity:0.65"></div><div class="flex-1 mx-4 h-4 rounded-sm" style="background-color:rgba(255,255,255,0.08)"></div></div><img alt="Transactions" loading="lazy" width="2946" height="1624" decoding="async" data-nimg="1" class="block h-auto w-full" style="color:transparent" sizes="(min-width: 1024px) calc((100vw - 12rem - 0.75rem) / 2), calc(100vw - 4rem)" srcSet="/_next/image?url=%2Fimages%2Fscreenshots%2Ftransactions.png&w=32&q=75 32w, /_next/image?url=%2Fimages%2Fscreenshots%2Ftransactions.png&w=48&q=75 48w, /_next/image?url=%2Fimages%2Fscreenshots%2Ftransactions.png&w=64&q=75 64w, /_next/image?url=%2Fimages%2Fscreenshots%2Ftransactions.png&w=96&q=75 96w, /_next/image?url=%2Fimages%2Fscreenshots%2Ftransactions.png&w=128&q=75 128w, /_next/image?url=%2Fimages%2Fscreenshots%2Ftransactions.png&w=256&q=75 256w, /_next/image?url=%2Fimages%2Fscreenshots%2Ftransactions.png&w=384&q=75 384w, /_next/image?url=%2Fimages%2Fscreenshots%2Ftransactions.png&w=640&q=75 640w, /_next/image?url=%2Fimages%2Fscreenshots%2Ftransactions.png&w=750&q=75 750w, /_next/image?url=%2Fimages%2Fscreenshots%2Ftransactions.png&w=828&q=75 828w, /_next/image?url=%2Fimages%2Fscreenshots%2Ftransactions.png&w=1080&q=75 1080w, /_next/image?url=%2Fimages%2Fscreenshots%2Ftransactions.png&w=1200&q=75 1200w, /_next/image?url=%2Fimages%2Fscreenshots%2Ftransactions.png&w=1920&q=75 1920w, /_next/image?url=%2Fimages%2Fscreenshots%2Ftransactions.png&w=2048&q=75 2048w, /_next/image?url=%2Fimages%2Fscreenshots%2Ftransactions.png&w=3840&q=75 3840w" src="/_next/image?url=%2Fimages%2Fscreenshots%2Ftransactions.png&w=3840&q=75"/></div><div class="relative overflow-hidden " style="background-color:rgba(255,255,255,0.02);border:1px solid var(--color-border)"><div class="flex items-center gap-1.5 px-3" style="height:32px;border-bottom:1px solid var(--color-border);background-color:rgba(255,255,255,0.02)"><div class="w-2.5 h-2.5 rounded-full" style="background-color:#ff5f57;opacity:0.65"></div><div class="w-2.5 h-2.5 rounded-full" style="background-color:#febc2e;opacity:0.65"></div><div class="w-2.5 h-2.5 rounded-full" style="background-color:#28c840;opacity:0.65"></div><div class="flex-1 mx-4 h-4 rounded-sm" style="background-color:rgba(255,255,255,0.08)"></div></div><img alt="Category Analytics" loading="lazy" width="2934" height="1604" decoding="async" data-nimg="1" class="block h-auto w-full" style="color:transparent" sizes="(min-width: 1024px) calc((100vw - 12rem - 0.75rem) / 2), calc(100vw - 4rem)" srcSet="/_next/image?url=%2Fimages%2Fscreenshots%2Fspending-category.png&w=32&q=75 32w, /_next/image?url=%2Fimages%2Fscreenshots%2Fspending-category.png&w=48&q=75 48w, /_next/image?url=%2Fimages%2Fscreenshots%2Fspending-category.png&w=64&q=75 64w, /_next/image?url=%2Fimages%2Fscreenshots%2Fspending-category.png&w=96&q=75 96w, /_next/image?url=%2Fimages%2Fscreenshots%2Fspending-category.png&w=128&q=75 128w, /_next/image?url=%2Fimages%2Fscreenshots%2Fspending-category.png&w=256&q=75 256w, /_next/image?url=%2Fimages%2Fscreenshots%2Fspending-category.png&w=384&q=75 384w, /_next/image?url=%2Fimages%2Fscreenshots%2Fspending-category.png&w=640&q=75 640w, /_next/image?url=%2Fimages%2Fscreenshots%2Fspending-category.png&w=750&q=75 750w, /_next/image?url=%2Fimages%2Fscreenshots%2Fspending-category.png&w=828&q=75 828w, /_next/image?url=%2Fimages%2Fscreenshots%2Fspending-category.png&w=1080&q=75 1080w, /_next/image?url=%2Fimages%2Fscreenshots%2Fspending-category.png&w=1200&q=75 1200w, /_next/image?url=%2Fimages%2Fscreenshots%2Fspending-category.png&w=1920&q=75 1920w, /_next/image?url=%2Fimages%2Fscreenshots%2Fspending-category.png&w=2048&q=75 2048w, /_next/image?url=%2Fimages%2Fscreenshots%2Fspending-category.png&w=3840&q=75 3840w" src="/_next/image?url=%2Fimages%2Fscreenshots%2Fspending-category.png&w=3840&q=75"/></div></div></section><section id="why" class="py-24 px-8 lg:px-24" style="border-top:1px solid var(--color-border)"><div class="flex items-baseline gap-4 mb-8"><span class="font-mono text-sm" style="color:var(--color-accent)">03</span><h2 class="font-display text-5xl" style="color:var(--color-fg)">WHY SELF-HOST</h2></div><p class="max-w-3xl font-mono text-sm leading-relaxed mb-12" style="color:var(--color-muted)">Syllogic is designed for people who want more control over their financial data than hosted budgeting products typically allow. The app is usable today, export-friendly, and deployable without a week of infrastru
1cture work.</p><div class="grid grid-cols-1 lg:grid-cols-3 gap-px mb-px" style="background-color:var(--color-border)"><div class="p-8" style="background-color:var(--color-bg)"><p class="font-mono text-xs mb-4" style="color:var(--color-accent)">01</p><h3 class="font-display text-3xl mb-3" style="color:var(--color-fg)">OWN THE STACK</h3><p class="font-mono text-sm leading-relaxed" style="color:var(--color-muted)">Run Syllogic on your own VPS, homelab, or NAS. Docker Compose is the default path, and Railway is there when you want a faster hosted setup.</p></div><div class="p-8" style="background-color:var(--color-bg)"><p class="font-mono text-xs mb-4" style="color:var(--color-accent)">02</p><h3 class="font-display text-3xl mb-3" style="color:var(--color-fg)">KEEP FINANCIAL DATA UNDER YOUR CONTROL</h3><p class="font-mono text-sm leading-relaxed" style="color:var(--color-muted)">Balances, transactions, recurring spend, and imports stay on infrastructure you control. Export data when you want. Leave when you want.</p></div><div class="p-8" style="background-color:var(--color-bg)"><p class="font-mono text-xs mb-4" style="color:var(--color-accent)">03</p><h3 class="font-display text-3xl mb-3" style="color:var(--color-fg)">USE AI ONLY WHEN IT HELPS</h3><p class="font-mono text-sm leading-relaxed" style="color:var(--color-muted)">OpenAI-powered categorization is optional. If you do not set an API key, Syllogic still works with rule-based matching and manual cleanup.</p></div></div><div class="grid grid-cols-1 lg:grid-cols-[1.4fr_1fr] gap-px" style="background-color:var(--color-border)"><div class="p-8" style="background-color:var(--color-bg)"><p class="font-mono text-xs uppercase tracking-widest mb-5" style="color:var(--color-muted)">Who it is for</p><div class="space-y-4"><p class="font-mono text-sm leading-relaxed" style="color:var(--color-fg)">Self-hosters who want a real finance dashboard, not a spreadsheet maze.</p><p class="font-mono text-sm leading-relaxed" style="color:var(--color-fg)">Privacy-focused developers who do not want their transaction history locked into a hosted SaaS.</p><p class="font-mono text-sm leading-relaxed" style="color:var(--color-fg)">Homelab users who want a polished app with Docker, Railway, and CasaOS paths.</p></div></div><div class="p-8" style="background-color:var(--color-bg)"><p class="font-mono text-xs uppercase tracking-widest mb-5" style="color:var(--color-muted)">Next step</p><p class="font-mono text-sm leading-relaxed mb-8" style="color:var(--color-muted)">Start with the live demo if you want to see the product first, or go straight to the quick-start guide if you are ready to self-host.</p><div class="flex flex-wrap gap-3"><a href="https://app.syllogic.ai/login?demo=1&utm_source=landing&utm_medium=site&utm_campaign=oss_promotion&utm_content=hero_demo" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-5 py-3 font-mono text-xs uppercase tracking-widest" style="background-color:var(--color-accent);color:var(--color-bg)">Try the demo</a><a href="/start" class="inline-flex items-center px-5 py-3 font-mono text-xs uppercase tracking-widest" style="border:1px solid var(--color-border);color:var(--color-fg)">Start here</a></div></div></div></section><section id="work" class="py-24 px-8 lg:px-24" style="border-top:1px solid var(--color-border)"><div class="flex items-baseline gap-4 mb-4"><span class="font-mono text-sm" style="color:var(--color-accent)">04</span><h2 class="font-display text-5xl" style="color:var(--color-fg)">WHAT WORKS TODAY</h2></div><p class="font-mono text-xs mb-4" style="color:var(--color-muted)">Click any card to learn more</p><p class="font-mono text-sm leading-relaxed max-w-3xl mb-16" style="color:var(--color-muted)">Syllogic already covers the workflows a self-hoster needs to evaluate the product honestly: dashboards, imports, recurring spend, optional AI enrichment, and exportable data.</p><div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-px" style="background-color:var(--color-border)"><button class="feature-card group p-8 text-left transition-colors duration-200 cursor-pointer lg:col-span-2" style="background-color:var(--color-bg);opacity:0"><div class="flex items-center justify-between mb-6"><div class="flex items-center gap-3"><span class="font-mono text-xs" style="color:var(--color-accent)">01</span></div><span class="font-mono text-xs opacity-0 group-hover:opacity-100 transition-opacity duration-200" style="color:var(--color-muted)">VIEW â</span></div><h3 class="font-display text-2xl mb-3 transition-colors duration-200 group-hover:text-accent" style="color:var(--color-fg)">Balances and cash flow</h3><p class="font-mono text-sm leading-relaxed" style="color:var(--color-muted)">Live balances, savings, spending, and cash-flow views that make it obvious where your money goes.</p></button><button class="feature-card group p-8 text-left transition-colors duration-200 cursor-pointer " style="background-color:var(--color-bg);opacity:0"><div class="flex items-center justify-between mb-6"><div class="flex items-center gap-3"><span class="font-mono text-xs" style="color:var(--color-accent)">02</span></div><span class="font-mono text-xs opacity-0 group-hover:opacity-100 transition-opacity duration-200" style="color:var(--color-muted)">VIEW â</span></div><h3 class="font-display text-2xl mb-3 transition-colors duration-200 group-hover:text-accent" style="color:var(--color-fg)">AI Categorization</h3><p class="font-mono text-sm leading-relaxed" style="color:var(--color-muted)">Optional OpenAI-powered categorization with a fallback path when no API key is set.</p></button><button class="feature-card group p-8 text-left transition-colors duration-200 cursor-pointer " style="background-color:var(--color-bg);opacity:0"><div class="flex items-center justify-between mb-6"><div class="flex items-center gap-3"><span class="font-mono text-xs" style="color:var(--color-accent)">03</span></div><span class="font-mono text-xs opacity-0 group-hover:opacity-100 transition-opacity duration-200" style="color:var(--color-muted)">VIEW â</span></div><h3 class="font-display text-2xl mb-3 transition-colors duration-200 group-hover:text-accent" style="color:var(--color-fg)">Subscription Tracking</h3><p class="font-mono text-sm leading-relaxed" style="color:var(--color-muted)">Detect recurring charges, group them by merchant, and understand monthly subscription drag.</p></button><button class="feature-card group p-8 text-left transition-colors duration-200 cursor-pointer " style="background-color:var(--color-bg);opacity:0"><div class="flex items-center justify-between mb-6"><div class="flex items-center gap-3"><span class="font-mono text-xs" style="color:var(--color-accent)">04</span></div><span class="font-mono text-xs opacity-0 group-hover:opacity-100 transition-opacity duration-200" style="color:var(--color-muted)">VIEW â</span></div><h3 class="font-display text-2xl mb-3 transition-colors duration-200 group-hover:text-accent" style="color:var(--color-fg)">Category Analytics</h3><p class="font-mono text-sm leading-relaxed" style="color:var(--color-muted)">Break spending down by category, compare periods, and spot trends before they become habits.</p></button><button class="feature-card group p-8 text-left transition-colors duration-200 cursor-pointer " style="background-color:var(--color-bg);opacity:0"><div class="flex items-center justify-between mb-6"><div class="flex items-center gap-3"><span class="font-mono text-xs" style="color:var(--color-accent)">05</span></div><span class="font-mono text-xs opacity-0 group-hover:opacity-100 transition-opacity duration-200" style="color:var(--color-muted)">VIEW â</span></div><h3 class="font-display text-2xl mb-3 transition-colors duration-200 group-hover:text-accent" style="color:var(--color-fg)">Transfer and reimbursement linking</h3><p class="font-mono text-sm leading-relaxed" style="color:var(--color-muted)">Link related transactions across accounts to avoid double-counting.</p></button><button class="feature-card group p-8 text-left transition-colors duration-200 cursor-pointer " style="background-color:var(--color-bg);opacity:0"><div class="flex items-center justify-between mb-6"><div class="flex items-center gap-3"><span class="font-mono text-xs" style="color:var(--color-accent)">06</span></div><span class="font-mono text-xs opacity-0 group-hover:opacity-100 transition-opacity duration-200" style="color:var(--color-muted)">VIEW â</span></div><h3 class="font-display text-2xl mb-3 transition-colors duration-200 group-hover:text-accent" style="color:var(--color-fg)">CSV Import / Export</h3><p class="font-mono text-sm leading-relaxed" style="color:var(--color-muted)">Import from bank CSVs and export your data whenever you want. No lock-in.</p></button><button class="feature-card group p-8 text-left transition-colors duration-200 cursor-pointer lg:col-span-2" style="background-color:var(--color-bg);opacity:0"><div class="flex items-center justify-between mb-6"><div class="flex items-center gap-3"><span class="font-mono text-xs" style="color:var(--color-accent)">07</span><span class="font-mono text-xs px-2 py-0.5 uppercase tracking-widest" style="border:1px solid rgba(249,115,22,0.35);color:var(--color-accent)">NEW</span></div><span class="font-mono text-xs opacity-0 group-hover:opacity-100 transition-opacity duration-200" style="color:var(--color-muted)">VIEW â</span></div><h3 class="font-display text-2xl mb-3 transition-colors duration-200 group-hover:text-accent" style="color:var(--color-fg)">MCP Server</h3><p class="font-mono text-sm leading-relaxed" style="color:var(--color-muted)">Connect Claude Desktop or any MCP-compatible LLM directly to your financial data. Ask questions, run bulk operations, and get AI-driven insights â all in natural language.</p><ul class="mt-5 space-y-1.5"><li class="font-mono text-xs leading-relaxed" style="color:rgba(232,230,225,0.45)"><span style="color:var(--color-accent)">âº</span> <!-- -->How much did I spend on dining last month compared to the month before?</li><li class="font-mono text-xs leading-relaxed" style="color:rgba(232,230,225,0.45)"><span style="color:var(--color-accent)">âº</span> <!-- -->Recategorize all transactions from Amazon as Shopping instead of Other.</li><li class="font-mono text-xs leading-relaxed" style="color:rgba(232,230,225,0.45)"><span style="color:var(--color-accent)">âº</span> <!-- -->Which subscriptions am I paying for that I haven't used in 3 months?</li></ul></button></div></section><section id="install" class="py-24 px-8 lg:px-24" style="border-top:1px solid var(--color-border)"><div class="flex items-baseline gap-4 mb-8"><span class="font-mono text-sm" style="color:var(--color-accent)">05</span><h2 class="font-display text-5xl" style="color:var(--color-fg)">INSTALL IN 10 MINUTES</h2></div><p class="font-mono text-sm leading-relaxed max-w-3xl mb-16" style="color:var(--color-muted)">
1Choose the path that matches how you like to run software. Start with the live demo, self-host with Docker, or use Railway when you want the quickest production path.</p><div class="grid grid-cols-1 lg:grid-cols-2 gap-px" style="background-color:var(--color-border)"><div class="p-10" style="background-color:var(--color-bg)"><div class="flex items-center gap-3 mb-6"><div class="w-7 h-7 flex items-center justify-center text-xs font-mono" style="border:1px solid var(--color-accent);color:var(--color-accent)">R</div><h3 class="font-display text-3xl" style="color:var(--color-fg)">RAILWAY</h3></div><p class="font-mono text-sm leading-relaxed mb-8" style="color:var(--color-muted)">Fastest path to a working hosted stack. Use the published template, add your secrets, and validate the product before you commit to a longer self-hosted setup.</p><ul class="space-y-3 mb-10"><li class="flex items-start gap-3 font-mono text-sm" style="color:rgba(232,230,225,0.75)"><svg width="8" height="8" viewBox="0 0 10 10" fill="none" class="inline-block -rotate-90 mt-1 shrink-0" style="color:var(--color-accent)"><path d="M1 3L5 7L9 3" stroke="currentColor" stroke-width="1.5" stroke-linecap="square" stroke-linejoin="miter"></path></svg>One-click deploy from Railway template</li><li class="flex items-start gap-3 font-mono text-sm" style="color:rgba(232,230,225,0.75)"><svg width="8" height="8" viewBox="0 0 10 10" fill="none" class="inline-block -rotate-90 mt-1 shrink-0" style="color:var(--color-accent)"><path d="M1 3L5 7L9 3" stroke="currentColor" stroke-width="1.5" stroke-linecap="square" stroke-linejoin="miter"></path></svg>Auto-scaling with zero config</li><li class="flex items-start gap-3 font-mono text-sm" style="color:rgba(232,230,225,0.75)"><svg width="8" height="8" viewBox="0 0 10 10" fill="none" class="inline-block -rotate-90 mt-1 shrink-0" style="color:var(--color-accent)"><path d="M1 3L5 7L9 3" stroke="currentColor" stroke-width="1.5" stroke-linecap="square" stroke-linejoin="miter"></path></svg>Managed PostgreSQL + Redis included</li><li class="flex items-start gap-3 font-mono text-sm" style="color:rgba(232,230,225,0.75)"><svg width="8" height="8" viewBox="0 0 10 10" fill="none" class="inline-block -rotate-90 mt-1 shrink-0" style="color:var(--color-accent)"><path d="M1 3L5 7L9 3" stroke="currentColor" stroke-width="1.5" stroke-linecap="square" stroke-linejoin="miter"></path></svg>Custom domain with SSL</li><li class="flex items-start gap-3 font-mono text-sm" style="color:rgba(232,230,225,0.75)"><svg width="8" height="8" viewBox="0 0 10 10" fill="none" class="inline-block -rotate-90 mt-1 shrink-0" style="color:var(--color-accent)"><path d="M1 3L5 7L9 3" stroke="currentColor" stroke-width="1.5" stroke-linecap="square" stroke-linejoin="miter"></path></svg>Environment variable management</li></ul><a href="https://railway.com/deploy/syllogic?referralCode=25KFsK&utm_source=landing&utm_medium=site&utm_campaign=oss_promotion&utm_content=install_railway" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-2 px-6 py-3 font-mono text-sm uppercase tracking-widest transition-opacity hover:opacity-80" style="background-color:var(--color-accent);color:var(--color-bg)">Deploy on Railway<svg width="8" height="8" viewBox="0 0 10 10" fill="none" class="inline-block shrink-0 -rotate-90"><path d="M1 3L5 7L9 3" stroke="currentColor" stroke-width="1.5" stroke-linecap="square" stroke-linejoin="miter"></path></svg></a></div><div class="p-10" style="background-color:var(--color-bg)"><div class="flex items-center gap-3 mb-6"><div class="w-7 h-7 flex items-center justify-center text-xs font-mono" style="border:1px solid var(--color-border);color:var(--color-fg)">D</div><h3 class="font-display text-3xl" style="color:var(--color-fg)">DOCKER</h3></div><p class="font-mono text-sm leading-relaxed mb-8" style="color:var(--color-muted)">Self-host on your own machine, VPS, or homelab. Full control, no vendor lock-in, and a documented path from demo to production.</p><ul class="space-y-3 mb-8"><li class="flex items-start gap-3 font-mono text-sm" style="color:rgba(232,230,225,0.75)"><svg width="8" height="8" viewBox="0 0 10 10" fill="none" class="inline-block -rotate-90 mt-1 shrink-0" style="color:var(--color-muted)"><path d="M1 3L5 7L9 3" stroke="currentColor" stroke-width="1.5" stroke-linecap="square" stroke-linejoin="miter"></path></svg>
1Full control over infrastructure</li><li class="flex items-start gap-3 font-mono text-sm" style="color:rgba(232,230,225,0.75)"><svg width="8" height="8" viewBox="0 0 10 10" fill="none" class="inline-block -rotate-90 mt-1 shrink-0" style="color:var(--color-muted)"><path d="M1 3L5 7L9 3" stroke="currentColor" stroke-width="1.5" stroke-linecap="square" stroke-linejoin="miter"></path></svg>Run on any VPS or homelab</li><li class="flex items-start gap-3 font-mono text-sm" style="color:rgba(232,230,225,0.75)"><svg width="8" height="8" viewBox="0 0 10 10" fill="none" class="inline-block -rotate-90 mt-1 shrink-0" style="color:var(--color-muted)"><path d="M1 3L5 7L9 3" stroke="currentColor" stroke-width="1.5" stroke-linecap="square" stroke-linejoin="miter"></path></svg>Docker Compose for all services</li></ul><div class="mb-8"><p class="font-mono text-xs uppercase tracking-widest mb-4" style="color:var(--color-muted)">Services</p><div class="divide-y" style="border-color:var(--color-border)"><div class="py-3 grid grid-cols-[6rem_1fr] gap-4 items-start" style="border-color:var(--color-border)"><div><span class="font-mono text-xs" style="color:var(--color-accent)">frontend</span><p class="font-mono text-xs mt-0.5" style="color:var(--color-muted)">Next.js 16</p></div><p class="font-mono text-xs leading-relaxed" style="color:rgba(232,230,225,0.6)">UI, authentication, and all data operations via server actions.</p></div><div class="py-3 grid grid-cols-[6rem_1fr] gap-4 items-start" style="border-color:var(--color-border)"><div><span class="font-mono text-xs" style="color:var(--color-accent)">backend</span><p class="font-mono text-xs mt-0.5" style="color:var(--color-muted)">FastAPI + Celery</p></div><p class="font-mono text-xs leading-relaxed" style="color:rgba(232,230,225,0.6)">AI categorization pipeline and scheduled background jobs.</p></div><div class="py-3 grid grid-cols-[6rem_1fr] gap-4 items-start" style="border-color:var(--color-border)"><div><span class="font-mono text-xs" style="color:var(--color-accent)">postgres</span><p class="font-mono text-xs mt-0.5" style="color:var(--color-muted)">PostgreSQL 16</p></div><p class="font-mono text-xs leading-relaxed" style="color:rgba(232,230,225,0.6)">Shared database â the single source of truth for all your data.</p></div><div class="py-3 grid grid-cols-[6rem_1fr] gap-4 items-start" style="border-color:var(--color-border)"><div><span class="font-mono text-xs" style="color:var(--color-accent)">redis</span><p class="font-mono text-xs mt-0.5" style="color:var(--color-muted)">Redis 7</p></div><p class="font-mono text-xs leading-relaxed" style="color:rgba(232,230,225,0.6)">Job queue and cache for async task processing.</p></div></div></div><div class="flex items-stretch gap-0"><div class="flex-1 min-w-0 px-4 py-3 overflow-x-auto" style="background-color:rgba(255,255,255,0.03);border:1px solid var(--color-border);border-right:none"><span class="font-mono text-xs whitespace-nowrap" style="color:var(--color-accent)">$<!-- --> </span><span class="font-mono text-xs whitespace-nowrap" style="color:var(--color-fg)">curl -fsSL https://github.com/syllogic-ai/syllogic/releases/latest/download/install.sh | sudo bash</span></div><button class="flex items-center justify-center px-3 shrink-0 transition-colors" style="background-color:rgba(255,255,255,0.03);border:1px solid var(--color-border);color:var(--color-muted)" aria-label="Copy to clipboard"><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="square"><rect x="9" y="9" width="13" height="13" rx="0"></rect><path d="M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1"></path></svg></button></div><div class="flex flex-wrap gap-3 mt-6"><a href="/start" class="inline-flex items-center gap-2 font-mono text-xs uppercase tracking-widest" style="color:var(--color-fg)">Read the quick-start guide</a><a href="https://app.syllogic.ai/login?demo=1&utm_source=landing&utm_medium=site&utm_campaign=oss_promotion&utm_content=hero_demo" target="_blank" rel="noopener noreferrer" class="inline-flex items-center gap-2 font-mono text-xs uppercase tracking-widest" style="color:var(--color-muted)">Try the live demo first</a></div></div></div></section><section id="roadmap" class="py-24 px-8 lg:px-24" style="border-top:1px solid var(--color-border)"><div class="flex items-baseline gap-4 mb-8"><span class="font-mono text-sm" style="color:var(--color-accent)">06</span><h2 class="font-display text-5xl" style="color:var(--color-fg)">ROADMAP</h2></div><p class="max-w-3xl font-mono text-sm leading-relaxed mb-12" style="color:var(--color-muted)">Syllogic is already deployable. The next phase is focused on trust, onboarding, and sharper community feedback loops instead of adding abstract surface area.</p><div class="grid grid-cols-1 lg:grid-cols-3 gap-px" style="background-color:var(--color-border)"><div class="p-8" style="background-color:var(--color-bg)"><p class="font-mono text-xs uppercase tracking-widest mb-5" style="color:var(--color-muted)">Shipping now</p><div class="space-y-4"><p class="font-mono text-sm leading-relaxed" style="color:var(--color-fg)">Self-host with Docker Compose or deploy with Railway.</p><p class="font-mono text-sm leading-relaxed" style="color:var(--color-fg)">Track balances, categories, recurring spend, and cash-flow trends.</p><p class="font-mono text-sm leading-relaxed" style="color:var(--color-fg)">Import and export transactions with CSV workflows.</p><p class="font-mono text-sm leading-relaxed" style="color:var(--color-fg)">Use optional AI categorization and merchant enrichment.</p></div></div><div class="p-8" style="background-color:var(--color-bg)"><p class="font-mono text-xs uppercase tracking-widest mb-5" style="color:var(--color-muted)">Coming next</p><div class="space-y-4"><p class="font-mono text-sm leading-relaxed" style="color:var(--color-fg)">Smoother onboarding for first-time imports and shared demos.</p><p class="font-mono text-sm leading-relaxed" style="color:var(--color-fg)">
1More self-host content: GIF walkthroughs, comparison pages, and install proof.</p><p class="font-mono text-sm leading-relaxed" style="color:var(--color-fg)">Community-driven prioritization via issues and GitHub Discussions.</p></div></div><div class="p-8" style="background-color:var(--color-bg)"><p class="font-mono text-xs uppercase tracking-widest mb-5" style="color:var(--color-muted)">Help shape it</p><div class="space-y-4 mb-8"><a href="https://github.com/syllogic-ai/syllogic/issues/new?template=install_help.yml" target="_blank" rel="noopener noreferrer" class="block font-mono text-sm" style="color:var(--color-fg)">Install help</a><a href="https://github.com/syllogic-ai/syllogic/issues/new?template=demo_feedback.yml" target="_blank" rel="noopener noreferrer" class="block font-mono text-sm" style="color:var(--color-fg)">Demo feedback</a><a href="https://github.com/syllogic-ai/syllogic/issues/new?template=feature_request.yml" target="_blank" rel="noopener noreferrer" class="block font-mono text-sm" style="color:var(--color-fg)">Feature request</a></div><div class="flex flex-wrap gap-3"><a href="https://github.com/syllogic-ai/syllogic/blob/main/ROADMAP.md" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-5 py-3 font-mono text-xs uppercase tracking-widest" style="background-color:var(--color-accent);color:var(--color-bg)">View roadmap</a><a href="https://github.com/syllogic-ai/syllogic/discussions" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-5 py-3 font-mono text-xs uppercase tracking-widest" style="border:1px solid var(--color-border);color:var(--color-fg)">
1Join discussions</a></div></div></div></section><section id="colophon" class="py-24 px-8 lg:px-24" style="border-top:1px solid var(--color-border)"><div class="flex items-baseline gap-4 mb-16"><span class="font-mono text-sm" style="color:var(--color-accent)">07</span><h2 class="font-display text-5xl" style="color:var(--color-fg)">STACK AND LINKS</h2></div><div class="grid grid-cols-1 lg:grid-cols-3 gap-px mb-px" style="background-color:var(--color-border)"><div class="p-8 lg:col-span-2" style="background-color:var(--color-bg)"><h3 class="font-mono text-xs uppercase tracking-widest mb-6" style="color:var(--color-muted)">STACK</h3><div class="grid grid-cols-2 gap-x-8 gap-y-5"><div class="flex flex-col gap-0.5"><span class="font-mono text-xs uppercase tracking-wide" style="color:var(--color-muted)">Frontend</span><span class="font-mono text-sm" style="color:var(--color-fg)">Next.js 16 + Drizzle ORM</span></div><div class="flex flex-col gap-0.5"><span class="font-mono text-xs uppercase tracking-wide" style="color:var(--color-muted)">Backend</span><span class="font-mono text-sm" style="color:var(--color-fg)">FastAPI + Celery</span></div><div class="flex flex-col gap-0.5"><span class="font-mono text-xs uppercase tracking-wide" style="color:var(--color-muted)">Database</span><span class="font-mono text-sm" style="color:var(--color-fg)">PostgreSQL 16</span></div><div class="flex flex-col gap-0.5"><span class="font-mono text-xs uppercase tracking-wide" style="color:var(--color-muted)">Cache</span><span class="font-mono text-sm" style="color:var(--color-fg)">Redis 7</span></div><div class="flex flex-col gap-0.5"><span class="font-mono text-xs uppercase tracking-wide" style="color:var(--color-muted)">Auth</span><span class="font-mono text-sm" style="color:var(--color-fg)">BetterAuth</span></div><div class="flex flex-col gap-0.5"><span class="font-mono text-xs uppercase tracking-wide" style="color:var(--color-muted)">AI</span><span class="font-mono text-sm" style="color:var(--color-fg)">OpenAI API</span></div><div class="flex flex-col gap-0.5"><span class="font-mono text-xs uppercase tracking-wide" style="color:var(--color-muted)">UI</span><span class="font-mono text-sm" style="color:var(--color-fg)">shadcn/ui + Recharts</span></div><div class="flex flex-col gap-0.5"><span class="font-mono text-xs uppercase tracking-wide" style="color:var(--color-muted)">License</span><span class="font-mono text-sm" style="color:var(--color-fg)">AGPL-3.0</span></div></div></div><div class="p-8" style="background-color:var(--color-bg)"><h3 class="font-mono text-xs uppercase tracking-widest mb-6" style="color:var(--color-muted)">START HERE</h3><div class="flex flex-col gap-4"><a href="https://github.com/syllogic-ai/syllogic" target="_blank" rel="noopener noreferrer" class="font-mono text-sm flex items-center gap-2 group transition-colors duration-150 hover:text-accent" style="color:var(--color-fg)"><span class="opacity-0 group-hover:opacity-100 transition-opacity duration-150" style="color:var(--color-accent)">â</span>GitHub</a><a href="https://github.com/syllogic-ai/syllogic/blob/main/START_HERE.md" target="_blank" rel="noopener noreferrer" class="font-mono text-sm flex items-center gap-2 group transition-colors duration-150 hover:text-accent" style="color:var(--color-fg)"><span class="opacity-0 group-hover:opacity-100 transition-opacity duration-150" style="color:var(--color-accent)">â</span>Start Here</a><a href="https://github.com/syllogic-ai/syllogic/blob/main/ROADMAP.md" target="_blank" rel="noopener noreferrer" class="font-mono text-sm flex items-center gap-2 group transition-colors duration-150 hover:text-accent" style="color:var(--color-fg)"><span class="opacity-0 group-hover:opacity-100 transition-opacity duration-150" style="color:var(--color-accent)">â</span>Roadmap</a><a href="https://app.syllogic.ai/login?demo=1&utm_source=landing&utm_medium=site&utm_campaign=oss_promotion&utm_content=hero_demo" target="_blank" rel="noopener noreferrer" class="font-mono text-sm flex items-center gap-2 group transition-colors duration-150 hover:text-accent" style="color:var(--color-fg)"><span class="opacity-0 group-hover:opacity-100 transition-opacity duration-150" style="color:var(--color-accent)">â</span>Live Demo</a><a href="https://github.com/syllogic-ai/syllogic/issues/new?template=install_help.yml" target="_blank" rel="noopener noreferrer" class="font-mono text-sm flex items-center gap-2 group transition-colors duration-150 hover:text-accent" style="color:var(--color-fg)"><span class="opacity-0 group-hover:opacity-100 transition-opacity duration-150" style="color:var(--color-accent)">â</span>Install Help</a><a href="https://github.com/syllogic-ai/syllogic/discussions" target="_blank" rel="noopener noreferrer" class="font-mono text-sm flex items-center gap-2 group transition-colors duration-150 hover:text-accent" style="color:var(--color-fg)"><span class="opacity-0 group-hover:opacity-100 transition-opacity duration-150" style="color:var(--color-accent)">â</span>Discussions</a></div></div></div></section><section id="authors" class="px-8 lg:px-24" style="border-top:1px solid var(--color-border)"><div class="py-24"><div class="flex items-baseline gap-4 mb-16"><span class="font-mono text-sm" style="color:var(--color-accent)">08</span><h2 class="font-display text-5xl" style="color:var(--color-fg)">AUTHORS</h2></div><div class="grid grid-cols-1 md:grid-cols-2 gap-px" style="background-color:var(--color-border)"><div class="p-8 flex flex-col gap-6" style="background-color:var(--color-bg)"><div class="relative w-20 h-20 overflow-hidden" style="border:1px solid var(--color-border)"><img alt="Giannis Kotsakiachidis" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-top grayscale" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="100vw" srcSet="/_next/image?url=%2Fimages%2Fgiannis.jpg&w=640&q=75 640w, /_next/image?url=%2Fimages%2Fgiannis.jpg&w=750&q=75 750w, /_next/image?url=%2Fimages%2Fgiannis.jpg&w=828&q=75 828w, /_next/image?url=%2Fimages%2Fgiannis.jpg&w=1080&q=75 1080w, /_next/image?url=%2Fimages%2Fgiannis.jpg&w=1200&q=75 1200w, /_next/image?url=%2Fimages%2Fgiannis.jpg&w=1920&q=75 1920w, /_next/image?url=%2Fimages%2Fgiannis.jpg&w=2048&q=75 2048w, /_next/image?url=%2Fimages%2Fgiannis.jpg&w=3840&q=75 3840w" src="/_next/image?url=%2Fimages%2Fgiannis.jpg&w=3840&q=75"/><div class="absolute inset-0 items-center justify-center font-display text-2xl" style="display:none;background-color:rgba(255,255,255,0.03);color:var(--color-accent)">GK</div></div><div><p class="font-display text-2xl mb-1" style="color:var(--color-fg)">GIANNIS KOTSAKIACHIDIS</p><p class="font-mono text-sm" style="color:var(--color-muted)">Solution Engineer<!-- --> <span style="color:var(--color-accent)">@</span> <!-- -->Palm</p></div><div class="flex items-center gap-5"><a href="https://www.linkedin.com/in/gianniskotsas/" target="_blank" rel="noopener noreferrer" class="transition-colors" style="color:var(--color-muted)" aria-label="LinkedIn">
1<svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"></path></svg></a><a href="https://x.com/gianniskotsas" target="_blank" rel="noopener noreferrer" class="transition-colors" style="color:var(--color-muted)" aria-label="X / Twitter"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-4.714-6.231-5.401 6.231H2.742l7.73-8.835L1.254 2.25H8.08l4.259 5.63 5.905-5.63zm-1.161 17.52h1.833L7.084 4.126H5.117z"></path></svg></a><a href="https://github.com/gianniskotsas" target="_blank" rel="noopener noreferrer" class="transition-colors" style="color:var(--color-muted)" aria-label="GitHub"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"></path></svg></a></div></div><div class="p-8 flex flex-col gap-6" style="background-color:var(--color-bg)"><div class="relative w-20 h-20 overflow-hidden" style="border:1px solid var(--color-border)"><img alt="Kostas Krachtopoulos" loading="lazy" decoding="async" data-nimg="fill" class="object-cover object-top grayscale" style="position:absolute;height:100%;width:100%;left:0;top:0;right:0;bottom:0;color:transparent" sizes="100vw" srcSet="/_next/image?url=%2Fimages%2Fkostas.jpg&w=640&q=75 640w, /_next/image?url=%2Fimages%2Fkostas.jpg&w=750&q=75 750w, /_next/image?url=%2Fimages%2Fkostas.jpg&w=828&q=75 828w, /_next/image?url=%2Fimages%2Fkostas.jpg&w=1080&q=75 1080w, /_next/image?url=%2Fimages%2Fkostas.jpg&w=1200&q=75 1200w, /_next/image?url=%2Fimages%2Fkostas.jpg&w=1920&q=75 1920w, /_next/image?url=%2Fimages%2Fkostas.jpg&w=2048&q=75 2048w, /_next/image?url=%2Fimages%2Fkostas.jpg&w=3840&q=75 3840w" src="/_next/image?url=%2Fimages%2Fkostas.jpg&w=3840&q=75"/><div class="absolute inset-0 items-center justify-center font-display text-2xl" style="display:none;background-color:rgba(255,255,255,0.03);color:var(--color-accent)">KK</div></div><div><p class="font-display text-2xl mb-1" style="color:var(--color-fg)">KOSTAS KRACHTOPOULOS</p><p class="font-mono text-sm" style="color:var(--color-muted)">Data Science<!-- --> <span style="color:var(--color-accent)">@</span> <!-- -->Booking.com</p></div><div class="flex items-center gap-5"><a href="https://www.linkedin.com/in/konstantinoskrachtopoulos/" target="_blank" rel="noopener noreferrer" class="transition-colors" style="color:var(--color-muted)" aria-label="LinkedIn"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"></path></svg></a><a href="https://x.com/thisiskostas" target="_blank" rel="noopener noreferrer" class="transition-colors" style="color:var(--color-muted)" aria-label="X / Twitter">
1<svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-4.714-6.231-5.401 6.231H2.742l7.73-8.835L1.254 2.25H8.08l4.259 5.63 5.905-5.63zm-1.161 17.52h1.833L7.084 4.126H5.117z"></path></svg></a><a href="https://github.com/kostaskracht" target="_blank" rel="noopener noreferrer" class="transition-colors" style="color:var(--color-muted)" aria-label="GitHub"><svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"></path></svg></a></div></div></div></div><div class="py-8 flex flex-col md:flex-row items-start md:items-center justify-between gap-4" style="border-top:1px solid var(--color-border)"><div class="flex items-center gap-4"><span class="font-display text-2xl" style="color:var(--color-fg)">SYLLOGIC</span><span class="font-mono text-xs px-2 py-0.5" style="border:1px solid var(--color-border);color:var(--color-muted)">AGPL-3.0</span></div><p class="font-mono text-xs" style="color:var(--color-muted)">Open source. Self-hosted. Your data, your rules.</p></div></section></main><!--$--><!--/$-->
1<script src="/_next/static/chunks/e943752a3627effb.js" id="_R_" async=""></script>
1<script>(self.__next_f=self.__next_f||[]).push([0])</script>
1<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[31537,[\"/_next/static/chunks/9b231ecf8984e28d.js\"],\"AnimatedNoise\"]\n3:I[87670,[\"/_next/static/chunks/9b231ecf8984e28d.js\"],\"SmoothScroll\"]\n4:I[22750,[\"/_next/static/chunks/c9907f856bf37aca.js\",\"/_next/static/chunks/33868fb9c860a3d1.js\"],\"default\"]\n5:I[15530,[\"/_next/static/chunks/c9907f856bf37aca.js\",\"/_next/static/chunks/33868fb9c860a3d1.js\"],\"default\"]\n6:I[82303,[\"/_next/static/chunks/9b231ecf8984e28d.js\",\"/_next/static/chunks/6ca20bcff9c7228d.js\",\"/_next/static/chunks/f680eea0828bea15.js\"],\"SideNav\"]\n7:I[64264,[\"/_next/static/chunks/9b231ecf8984e28d.js\",\"/_next/static/chunks/6ca20bcff9c7228d.js\",\"/_next/static/chunks/f680eea0828bea15.js\"],\"DrawText\"]\n8:I[51941,[\"/_next/static/chunks/9b231ecf8984e28d.js\",\"/_next/static/chunks/6ca20bcff9c7228d.js\",\"/_next/static/chunks/f680eea0828bea15.js\"],\"SplitFlapText\"]\n18:I[1911,[],\"default\"]\n:HL[\"/_next/static/chunks/7d783d28d01f41b6.css\",\"style\"]\n:HL[\"/_next/static/media/70bc3e132a0a741e-s.p.15008bfb.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n:HL[\"/_next/static/media/fabcf92ba1ccea36-s.p.19f28380.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n"])</script>
1<script>self.__next_f.push([1,"0:{\"P\":null,\"b\":\"IP2rebxIu-RR2-DPBHQdM\",\"c\":[\"\",\"\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"__PAGE__\",{}]},\"$undefined\",\"$undefined\",true],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/7d783d28d01f41b6.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/9b231ecf8984e28d.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"className\":\"jetbrains_mono_707233f-module__9hS9bG__variable bebas_neue_57205a5d-module__XKtsIW__variable\",\"children\":[\"$\",\"body\",null,{\"className\":\"font-mono bg-bg text-fg\",\"children\":[[\"$\",\"$L2\",null,{}],[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":404}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]]}]}]]}],{\"children\":[[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"main\",null,{\"children\":[[\"$\",\"$L6\",null,{}],[\"$\",\"section\",null,{\"id\":\"hero\",\"className\":\"relative min-h-screen flex flex-col justify-center px-8 lg:px-24 pt-20 pb-16\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-xs font-mono uppercase tracking-[0.25em] mb-10 overflow-hidden\",\"style\":{\"color\":\"var(--color-muted)\"},\"children\":[\"$\",\"$L7\",null,{\"children\":\"OPEN SOURCE · SELF-HOSTED · PERSONAL FINANCE\"}]}],[\"$\",\"h1\",null,{\"className\":\"font-display leading-none mb-8\",\"style\":{\"fontSize\":\"clamp(4rem, 14vw, 13rem)\",\"color\":\"var(--color-fg)\"},\"children\":[\"$\",\"$L8\",null,{\"text\":\"SYLLOGIC\",\"startDelay\":400,\"charDelay\":100}]}],[\"$\",\"div\",null,{\"className\":\"font-mono text-base leading-relaxed max-w-lg mb-12\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":[[\"$\",\"p\",null,{\"children\":\"Self-hosted personal finance dashboard with AI categorization, recurring spend tracking, and a live demo.\"}],[\"$\",\"p\",null,{\"style\":{\"color\":\"var(--color-muted)\"},\"children\":\"Run it on Docker or Railway and keep your financial data on infrastructure you control.\"}]]}],[\"$\",\"div\",null,{\"className\":\"flex flex-wrap items-center gap-4\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://app.syllogic.ai/login?demo=1\u0026utm_source=landing\u0026utm_medium=site\u0026utm_campaign=oss_promotion\u0026utm_content=hero_demo\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"inline-flex items-center gap-2 px-6 py-3 font-mono text-sm uppercase tracking-widest transition-opacity hover:opacity-80\",\"style\":{\"backgroundColor\":\"var(--color-accent)\",\"color\":\"var(--color-bg)\"},\"children\":[\"Try Live Demo\",[\"$\",\"svg\",null,{\"width\":9,\"height\"
1:9,\"viewBox\":\"0 0 10 10\",\"fill\":\"none\",\"className\":\"inline-block shrink-0 -rotate-90\",\"style\":\"$undefined\",\"children\":[\"$\",\"path\",null,{\"d\":\"M1 3L5 7L9 3\",\"stroke\":\"currentColor\",\"strokeWidth\":\"1.5\",\"strokeLinecap\":\"square\",\"strokeLinejoin\":\"miter\"}]}]]}],[\"$\",\"a\",null,{\"href\":\"#install\",\"className\":\"inline-flex items-center gap-2 px-6 py-3 font-mono text-sm uppercase tracking-widest transition-colors hover:border-fg\",\"style\":{\"border\":\"1px solid var(--color-border)\",\"color\":\"var(--color-fg)\"},\"children\":[\"Self-Host In 10 Minutes\",[\"$\",\"svg\",null,{\"width\":9,\"height\":9,\"viewBox\":\"0 0 10 10\",\"fill\":\"none\",\"className\":\"inline-block shrink-0 -rotate-90\",\"style\":\"$undefined\",\"children\":[\"$\",\"path\",null,{\"d\":\"M1 3L5 7L9 3\",\"stroke\":\"currentColor\",\"strokeWidth\":\"1.5\",\"strokeLinecap\":\"square\",\"strokeLinejoin\":\"miter\"}]}]]}],\"$L9\"]}],\"$La\",\"$Lb\"]}],\"$Lc\",\"$Ld\",\"$Le\",\"$Lf\",\"$L10\",\"$L11\",\"$L12\",\"$L13\"]}],[\"$L14\",\"$L15\"],\"$L16\"]}],{},null,false,false]},null,false,false],\"$L17\",false]],\"m\":\"$undefined\",\"G\":[\"$18\",[]],\"S\":true}\n"])</script>
1<script>self.__next_f.push([1,"19:I[30098,[\"/_next/static/chunks/9b231ecf8984e28d.js\",\"/_next/static/chunks/6ca20bcff9c7228d.js\",\"/_next/static/chunks/f680eea0828bea15.js\"],\"Image\"]\n1d:I[92134,[\"/_next/static/chunks/9b231ecf8984e28d.js\",\"/_next/static/chunks/6ca20bcff9c7228d.js\",\"/_next/static/chunks/f680eea0828bea15.js\"],\"WorkSection\"]\n1e:I[62879,[\"/_next/static/chunks/9b231ecf8984e28d.js\",\"/_next/static/chunks/6ca20bcff9c7228d.js\",\"/_next/static/chunks/f680eea0828bea15.js\"],\"PrinciplesSection\"]\n25:I[15408,[\"/_next/static/chunks/9b231ecf8984e28d.js\",\"/_next/static/chunks/6ca20bcff9c7228d.js\",\"/_next/static/chunks/f680eea0828bea15.js\"],\"AuthorsSection\"]\n26:I[31061,[\"/_next/static/chunks/c9907f856bf37aca.js\",\"/_next/static/chunks/33868fb9c860a3d1.js\"],\"OutletBoundary\"]\n27:\"$Sreact.suspense\"\n29:I[31061,[\"/_next/static/chunks/c9907f856bf37aca.js\",\"/_next/static/chunks/33868fb9c860a3d1.js\"],\"ViewportBoundary\"]\n2b:I[31061,[\"/_next/static/chunks/c9907f856bf37aca.js\",\"/_next/static/chunks/33868fb9c860a3d1.js\"],\"MetadataBoundary\"]\n:HL[\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=1172114\u0026theme=light\u0026t=1781509839879\",\"image\"]\n9:[\"$\",\"a\",null,{\"href\":\"/start\",\"className\":\"inline-flex items-center gap-2 px-6 py-3 font-mono text-sm uppercase tracking-widest transition-colors hover:border-fg\",\"style\":{\"border\":\"1px solid var(--color-border)\",\"color\":\"var(--color-muted)\"},\"children\":[\"Start Here\",[\"$\",\"svg\",null,{\"width\":9,\"height\":9,\"viewBox\":\"0 0 10 10\",\"fill\":\"none\",\"className\":\"inline-block shrink-0 -rotate-90\",\"style\":\"$undefined\",\"children\":[\"$\",\"path\",null,{\"d\":\"M1 3L5 7L9 3\",\"stroke\":\"currentColor\",\"strokeWidth\":\"1.5\",\"strokeLinecap\":\"square\",\"strokeLinejoin\":\"miter\"}]}]]}]\na:[\"$\",\"div\",null,{\"className\":\"mt-8\",\"children\":[\"$\",\"a\",null,{\"href\":\"https://www.producthunt.com/products/syllogic?embed=true\u0026utm_source=badge-featured\u0026utm_medium=badge\u0026utm_campaign=badge-syllogic\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"inline-block transition-opacity hover:opacity-80\",\"children\":[\"$\",\"img\",null,{\"alt\":\"Syllogic - Self-hosted personal finance. Your data, your server. | Product Hunt\",\"width\":250,\"height\":54,\"src\":\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=1172114\u0026theme=light\u0026t=1781509839879\"}]}]}]\nb:[\"$\",\"div\",null,{\"className\":\"absolute bottom-8 left-8 lg:left-24 flex items-center gap-2 text-xs font-mono uppercase tracking-widest\",\"style\":{\"color\":\"var(--color-muted)\"},\"children\":[[\"$\",\"span\",null,{\"children\":\"Scroll\"}],[\"$\",\"svg\",null,{\"width\":8,\"height\":8,\"viewBox\":\"0 0 10 10\",\"fill\":\"none\",\"className\":\"inline-block shrink-0\",\"style\":\"$undefined\",\"children\":[\"$\",\"path\",null,{\"d\":\"M1 3L5 7L9 3\",\"stroke\":\"currentColor\",\"strokeWidth\":\"1.5\",\"strokeLinecap\":\"square\",\"strokeLinejoin\":\"miter\"}]}]]}]\n"])</script>
1<script>self.__next_f.push([1,"c:[\"$\",\"section\",null,{\"id\":\"signals\",\"className\":\"py-8 px-8 lg:px-24\",\"style\":{\"borderTop\":\"1px solid var(--color-border)\"},\"children\":[\"$\",\"div\",null,{\"className\":\"grid grid-cols-2 md:grid-cols-3 lg:grid-cols-6 gap-8\",\"children\":[[\"$\",\"div\",\"LICENSE\",{\"className\":\"flex flex-col gap-1.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-xs font-mono uppercase tracking-widest\",\"style\":{\"color\":\"var(--color-muted)\"},\"children\":\"LICENSE\"}],[\"$\",\"span\",null,{\"className\":\"text-sm font-mono\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":\"AGPL-3.0\"}]]}],[\"$\",\"div\",\"DEPLOY\",{\"className\":\"flex flex-col gap-1.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-xs font-mono uppercase tracking-widest\",\"style\":{\"color\":\"var(--color-muted)\"},\"children\":\"DEPLOY\"}],[\"$\",\"span\",null,{\"className\":\"text-sm font-mono\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":\"Docker / Railway / CasaOS\"}]]}],[\"$\",\"div\",\"DEMO\",{\"className\":\"flex flex-col gap-1.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-xs font-mono uppercase tracking-widest\",\"style\":{\"color\":\"var(--color-muted)\"},\"children\":\"DEMO\"}],[\"$\",\"span\",null,{\"className\":\"text-sm font-mono\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":\"Live\"}]]}],[\"$\",\"div\",\"RELEASE\",{\"className\":\"flex flex-col gap-1.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-xs font-mono uppercase tracking-widest\",\"style\":{\"color\":\"var(--color-muted)\"},\"children\":\"RELEASE\"}],[\"$\",\"span\",null,{\"className\":\"text-sm font-mono\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":\"v1.0.0\"}]]}],[\"$\",\"div\",\"DATA\",{\"className\":\"flex flex-col gap-1.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-xs font-mono uppercase tracking-widest\",\"style\":{\"color\":\"var(--color-muted)\"},\"children\":\"DATA\"}],[\"$\",\"span\",null,{\"className\":\"text-sm font-mono\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":\"PostgreSQL 16\"}]]}],[\"$\",\"div\",\"AI\",{\"className\":\"flex flex-col gap-1.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"text-xs font-mono uppercase tracking-widest\",\"style\":{\"color\":\"var(--color-muted)\"},\"children\":\"AI\"}],[\"$\",\"span\",null,{\"className\":\"text-sm font-mono\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":\"Optional OpenAI\"}]]}]]}]}]\n"])</script>
1<script>self.__next_f.push([1,"d:[\"$\",\"section\",null,{\"id\":\"preview\",\"className\":\"py-24 px-8 lg:px-24\",\"style\":{\"borderTop\":\"1px solid var(--color-border)\"},\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-baseline gap-4 mb-16\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-mono text-sm\",\"style\":{\"color\":\"var(--color-accent)\"},\"children\":\"02\"}],[\"$\",\"h2\",null,{\"className\":\"font-display text-5xl\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":\"WHAT IT LOOKS LIKE\"}]]}],[\"$\",\"p\",null,{\"className\":\"font-mono text-sm leading-relaxed max-w-3xl mb-12\",\"style\":{\"color\":\"var(--color-muted)\"},\"children\":\"Real UI, real workflows, and a live demo you can click through before you ever deploy the stack.\"}],[\"$\",\"div\",null,{\"className\":\"grid grid-cols-1 lg:grid-cols-2 gap-3\",\"children\":[[\"$\",\"div\",\"Dashboard Overview\",{\"className\":\"relative overflow-hidden lg:col-span-2\",\"style\":{\"backgroundColor\":\"rgba(255,255,255,0.02)\",\"border\":\"1px solid var(--color-border)\"},\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1.5 px-3\",\"style\":{\"height\":\"32px\",\"borderBottom\":\"1px solid var(--color-border)\",\"backgroundColor\":\"rgba(255,255,255,0.02)\"},\"children\":[[[\"$\",\"div\",\"#ff5f57\",{\"className\":\"w-2.5 h-2.5 rounded-full\",\"style\":{\"backgroundColor\":\"#ff5f57\",\"opacity\":0.65}}],[\"$\",\"div\",\"#febc2e\",{\"className\":\"w-2.5 h-2.5 rounded-full\",\"style\":{\"backgroundColor\":\"#febc2e\",\"opacity\":0.65}}],[\"$\",\"div\",\"#28c840\",{\"className\":\"w-2.5 h-2.5 rounded-full\",\"style\":{\"backgroundColor\":\"#28c840\",\"opacity\":0.65}}]],[\"$\",\"div\",null,{\"className\":\"flex-1 mx-4 h-4 rounded-sm\",\"style\":{\"backgroundColor\":\"rgba(255,255,255,0.08)\"}}]]}],[\"$\",\"$L19\",null,{\"src\":\"/images/screenshots/dashboard.png\",\"alt\":\"Dashboard Overview\",\"width\":3776,\"height\":1810,\"sizes\":\"(min-width: 1024px) calc(100vw - 12rem), calc(100vw - 4rem)\",\"className\":\"block h-auto w-full\"}]]}],[\"$\",\"div\",\"Transactions\",{\"className\":\"relative overflow-hidden \",\"style\":{\"backgroundColor\":\"rgba(255,255,255,0.02)\",\"border\":\"1px solid var(--color-border)\"},\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1.5 px-3\",\"style\":{\"height\":\"32px\",\"borderBottom\":\"1px solid var(--color-border)\",\"backgroundColor\":\"rgba(255,255,255,0.02)\"},\"children\":[[[\"$\",\"div\",\"#ff5f57\",{\"className\":\"w-2.5 h-2.5 rounded-full\",\"style\":{\"backgroundColor\":\"#ff5f57\",\"opacity\":0.65}}],[\"$\",\"div\",\"#febc2e\",{\"className\":\"w-2.5 h-2.5 rounded-full\",\"style\":{\"backgroundColor\":\"#febc2e\",\"opacity\":0.65}}],[\"$\",\"div\",\"#28c840\",{\"className\":\"w-2.5 h-2.5 rounded-full\",\"style\":{\"backgroundColor\":\"#28c840\",\"opacity\":0.65}}]],[\"$\",\"div\",null,{\"className\":\"flex-1 mx-4 h-4 rounded-sm\",\"style\":{\"backgroundColor\":\"rgba(255,255,255,0.08)\"}}]]}],[\"$\",\"$L19\",null,{\"src\":\"/images/screenshots/transactions.png\",\"alt\":\"Transactions\",\"width\":2946,\"height\":1624,\"sizes\":\"(min-width: 1024px) calc((100vw - 12rem - 0.75rem) / 2), calc(100vw - 4rem)\",\"className\":\"block h-auto w-full\"}]]}],[\"$\",\"div\",\"Category Analytics\",{\"className\":\"relative overflow-hidden \",\"style\":{\"backgroundColor\":\"rgba(255,255,255,0.02)\",\"border\":\"1px solid var(--color-border)\"},\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-center gap-1.5 px-3\",\"style\":{\"height\":\"32px\",\"borderBottom\":\"1px solid var(--color-border)\",\"backgroundColor\":\"rgba(255,255,255,0.02)\"},\"children\":[[[\"$\",\"div\",\"#ff5f57\",{\"className\":\"w-2.5 h-2.5 rounded-full\",\"style\":{\"backgroundColor\":\"#ff5f57\",\"opacity\":0.65}}],[\"$\",\"div\",\"#febc2e\",{\"className\":\"w-2.5 h-2.5 rounded-full\",\"style\":{\"backgroundColor\":\"#febc2e\",\"opacity\":0.65}}],[\"$\",\"div\",\"#28c840\",{\"className\":\"w-2.5 h-2.5 rounded-full\",\"style\":{\"backgroundColor\":\"#28c840\",\"opacity\":0.65}}]],[\"$\",\"div\",null,{\"className\":\"flex-1 mx-4 h-4 rounded-sm\",\"style\":{\"backgroundColor\":\"rgba(255,255,255,0.08)\"}}]]}],[\"$\",\"$L19\",null,{\"src\":\"/images/screenshots/spending-category.png\",\"alt\":\"Category Analytics\",\"width\":2934,\"height\"
1:1604,\"sizes\":\"(min-width: 1024px) calc((100vw - 12rem - 0.75rem) / 2), calc(100vw - 4rem)\",\"className\":\"block h-auto w-full\"}]]}]]}]]}]\n"])</script>
1<script>self.__next_f.push([1,"e:[\"$\",\"section\",null,{\"id\":\"why\",\"className\":\"py-24 px-8 lg:px-24\",\"style\":{\"borderTop\":\"1px solid var(--color-border)\"},\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-baseline gap-4 mb-8\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-mono text-sm\",\"style\":{\"color\":\"var(--color-accent)\"},\"children\":\"03\"}],[\"$\",\"h2\",null,{\"className\":\"font-display text-5xl\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":\"WHY SELF-HOST\"}]]}],[\"$\",\"p\",null,{\"className\":\"max-w-3xl font-mono text-sm leading-relaxed mb-12\",\"style\":{\"color\":\"var(--color-muted)\"},\"children\":\"Syllogic is designed for people who want more control over their financial data than hosted budgeting products typically allow. The app is usable today, export-friendly, and deployable without a week of infrastructure work.\"}],[\"$\",\"div\",null,{\"className\":\"grid grid-cols-1 lg:grid-cols-3 gap-px mb-px\",\"style\":{\"backgroundColor\":\"var(--color-border)\"},\"children\":[[\"$\",\"div\",\"01\",{\"className\":\"p-8\",\"style\":{\"backgroundColor\":\"var(--color-bg)\"},\"children\":[[\"$\",\"p\",null,{\"className\":\"font-mono text-xs mb-4\",\"style\":{\"color\":\"var(--color-accent)\"},\"children\":\"01\"}],[\"$\",\"h3\",null,{\"className\":\"font-display text-3xl mb-3\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":\"OWN THE STACK\"}],[\"$\",\"p\",null,{\"className\":\"font-mono text-sm leading-relaxed\",\"style\":{\"color\":\"var(--color-muted)\"},\"children\":\"Run Syllogic on your own VPS, homelab, or NAS. Docker Compose is the default path, and Railway is there when you want a faster hosted setup.\"}]]}],[\"$\",\"div\",\"02\",{\"className\":\"p-8\",\"style\":{\"backgroundColor\":\"var(--color-bg)\"},\"children\":[[\"$\",\"p\",null,{\"className\":\"font-mono text-xs mb-4\",\"style\":{\"color\":\"var(--color-accent)\"},\"children\":\"02\"}],[\"$\",\"h3\",null,{\"className\":\"font-display text-3xl mb-3\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":\"KEEP FINANCIAL DATA UNDER YOUR CONTROL\"}],[\"$\",\"p\",null,{\"className\":\"font-mono text-sm leading-relaxed\",\"style\":{\"color\":\"var(--color-muted)\"},\"children\":\"Balances, transactions, recurring spend, and imports stay on infrastructure you control. Export data when you want. Leave when you want.\"}]]}],[\"$\",\"div\",\"03\",{\"className\":\"p-8\",\"style\":{\"backgroundColor\":\"var(--color-bg)\"},\"children\":[[\"$\",\"p\",null,{\"className\":\"font-mono text-xs mb-4\",\"style\":{\"color\":\"var(--color-accent)\"},\"children\":\"03\"}],[\"$\",\"h3\",null,{\"className\":\"font-display text-3xl mb-3\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":\"USE AI ONLY WHEN IT HELPS\"}],[\"$\",\"p\",null,{\"className\":\"font-mono text-sm leading-relaxed\",\"style\":{\"color\":\"var(--color-muted)\"},\"children\":\"OpenAI-powered categorization is optional. If you do not set an API key, Syllogic still works with rule-based matching and manual cleanup.\"}]]}]]}],[\"$\",\"div\",null,{\"className\":\"grid grid-cols-1 lg:grid-cols-[1.4fr_1fr] gap-px\",\"style\":{\"backgroundColor\":\"var(--color-border)\"},\"children\":[[\"$\",\"div\",null,{\"className\":\"p-8\",\"style\":{\"backgroundColor\":\"var(--color-bg)\"},\"children\":[[\"$\",\"p\",null,{\"className\":\"font-mono text-xs uppercase tracking-widest mb-5\",\"style\":{\"color\":\"var(--color-muted)\"},\"children\":\"Who it is for\"}],[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"p\",\"Self-hosters who want a real finance dashboard, not a spreadsheet maze.\",{\"className\":\"font-mono text-sm leading-relaxed\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":\"Self-hosters who want a real finance dashboard, not a spreadsheet maze.\"}],[\"$\",\"p\",\"Privacy-focused developers who do not want their transaction history locked into a hosted SaaS.\",{\"className\":\"font-mono text-sm leading-relaxed\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":\"Privacy-focused developers who do not want their transaction history locked into a hosted SaaS.\"}],[\"$\",\"p\",\"Homelab users who want a polished app with Docker, Railway, and CasaOS paths.\",{\"className\":\"font-mono text-sm leading-relaxed\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":\"Homelab users who want a polished app with Docker, Railway, and CasaOS paths.\"}]]}]]}],[\"$\",\"div\",null,{\"className\":\"p-8\",\"style\":{\"backgroundColor\":\"var(--color-bg)\"},\"children\":[\"$L1a\",\"$L1b\",\"$L1c\"]}]]}]]}]\n"])</script>
1<script>self.__next_f.push([1,"f:[\"$\",\"$L1d\",null,{}]\n10:[\"$\",\"$L1e\",null,{}]\n"])</script>
1<script>self.__next_f.push([1,"11:[\"$\",\"section\",null,{\"id\":\"roadmap\",\"className\":\"py-24 px-8 lg:px-24\",\"style\":{\"borderTop\":\"1px solid var(--color-border)\"},\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-baseline gap-4 mb-8\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-mono text-sm\",\"style\":{\"color\":\"var(--color-accent)\"},\"children\":\"06\"}],[\"$\",\"h2\",null,{\"className\":\"font-display text-5xl\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":\"ROADMAP\"}]]}],[\"$\",\"p\",null,{\"className\":\"max-w-3xl font-mono text-sm leading-relaxed mb-12\",\"style\":{\"color\":\"var(--color-muted)\"},\"children\":\"Syllogic is already deployable. The next phase is focused on trust, onboarding, and sharper community feedback loops instead of adding abstract surface area.\"}],[\"$\",\"div\",null,{\"className\":\"grid grid-cols-1 lg:grid-cols-3 gap-px\",\"style\":{\"backgroundColor\":\"var(--color-border)\"},\"children\":[[\"$\",\"div\",null,{\"className\":\"p-8\",\"style\":{\"backgroundColor\":\"var(--color-bg)\"},\"children\":[[\"$\",\"p\",null,{\"className\":\"font-mono text-xs uppercase tracking-widest mb-5\",\"style\":{\"color\":\"var(--color-muted)\"},\"children\":\"Shipping now\"}],[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"p\",\"Self-host with Docker Compose or deploy with Railway.\",{\"className\":\"font-mono text-sm leading-relaxed\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":\"Self-host with Docker Compose or deploy with Railway.\"}],[\"$\",\"p\",\"Track balances, categories, recurring spend, and cash-flow trends.\",{\"className\":\"font-mono text-sm leading-relaxed\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":\"Track balances, categories, recurring spend, and cash-flow trends.\"}],[\"$\",\"p\",\"Import and export transactions with CSV workflows.\",{\"className\":\"font-mono text-sm leading-relaxed\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":\"Import and export transactions with CSV workflows.\"}],[\"$\",\"p\",\"Use optional AI categorization and merchant enrichment.\",{\"className\":\"font-mono text-sm leading-relaxed\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":\"Use optional AI categorization and merchant enrichment.\"}]]}]]}],[\"$\",\"div\",null,{\"className\":\"p-8\",\"style\":{\"backgroundColor\":\"var(--color-bg)\"},\"children\":[[\"$\",\"p\",null,{\"className\":\"font-mono text-xs uppercase tracking-widest mb-5\",\"style\":{\"color\":\"var(--color-muted)\"},\"children\":\"Coming next\"}],[\"$\",\"div\",null,{\"className\":\"space-y-4\",\"children\":[[\"$\",\"p\",\"Smoother onboarding for first-time imports and shared demos.\",{\"className\":\"font-mono text-sm leading-relaxed\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":\"Smoother onboarding for first-time imports and shared demos.\"}],[\"$\",\"p\",\"More self-host content: GIF walkthroughs, comparison pages, and install proof.\",{\"className\":\"font-mono text-sm leading-relaxed\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":\"More self-host content: GIF walkthroughs, comparison pages, and install proof.\"}],[\"$\",\"p\",\"Community-driven prioritization via issues and GitHub Discussions.\",{\"className\":\"font-mono text-sm leading-relaxed\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":\"Community-driven prioritization via issues and GitHub Discussions.\"}]]}]]}],[\"$\",\"div\",null,{\"className\":\"p-8\",\"style\":{\"backgroundColor\":\"var(--color-bg)\"},\"children\":[[\"$\",\"p\",null,{\"className\":\"font-mono text-xs uppercase tracking-widest mb-5\",\"style\":{\"color\":\"var(--color-muted)\"},\"children\":\"Help shape it\"}],[\"$\",\"div\",null,{\"className\":\"space-y-4 mb-8\",\"children\":[[\"$\",\"a\",\"Install help\",{\"href\":\"https://github.com/syllogic-ai/syllogic/issues/new?template=install_help.yml\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"block font-mono text-sm\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":\"Install help\"}],[\"$\",\"a\",\"Demo feedback\",{\"href\":\"https://github.com/syllogic-ai/syllogic/issues/new?template=demo_feedback.yml\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"block font-mono text-sm\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":\"Demo feedback\"}],[\"$\",\"a\",\"Feature request\",{\"href\":\"https://github.com/syllogic-ai/syllogic/issues/new?template=feature_request.yml\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"block font-mono text-sm\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":\"Feature request\"}]]}],\"$L1f\"]}]]}]]}]\n"])</script>
1<script>self.__next_f.push([1,"12:[\"$\",\"section\",null,{\"id\":\"colophon\",\"className\":\"py-24 px-8 lg:px-24\",\"style\":{\"borderTop\":\"1px solid var(--color-border)\"},\"children\":[[\"$\",\"div\",null,{\"className\":\"flex items-baseline gap-4 mb-16\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-mono text-sm\",\"style\":{\"color\":\"var(--color-accent)\"},\"children\":\"07\"}],[\"$\",\"h2\",null,{\"className\":\"font-display text-5xl\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":\"STACK AND LINKS\"}]]}],[\"$\",\"div\",null,{\"className\":\"grid grid-cols-1 lg:grid-cols-3 gap-px mb-px\",\"style\":{\"backgroundColor\":\"var(--color-border)\"},\"children\":[[\"$\",\"div\",null,{\"className\":\"p-8 lg:col-span-2\",\"style\":{\"backgroundColor\":\"var(--color-bg)\"},\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-mono text-xs uppercase tracking-widest mb-6\",\"style\":{\"color\":\"var(--color-muted)\"},\"children\":\"STACK\"}],[\"$\",\"div\",null,{\"className\":\"grid grid-cols-2 gap-x-8 gap-y-5\",\"children\":[[\"$\",\"div\",\"Frontend\",{\"className\":\"flex flex-col gap-0.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-mono text-xs uppercase tracking-wide\",\"style\":{\"color\":\"var(--color-muted)\"},\"children\":\"Frontend\"}],[\"$\",\"span\",null,{\"className\":\"font-mono text-sm\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":\"Next.js 16 + Drizzle ORM\"}]]}],[\"$\",\"div\",\"Backend\",{\"className\":\"flex flex-col gap-0.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-mono text-xs uppercase tracking-wide\",\"style\":{\"color\":\"var(--color-muted)\"},\"children\":\"Backend\"}],[\"$\",\"span\",null,{\"className\":\"font-mono text-sm\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":\"FastAPI + Celery\"}]]}],[\"$\",\"div\",\"Database\",{\"className\":\"flex flex-col gap-0.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-mono text-xs uppercase tracking-wide\",\"style\":{\"color\":\"var(--color-muted)\"},\"children\":\"Database\"}],[\"$\",\"span\",null,{\"className\":\"font-mono text-sm\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":\"PostgreSQL 16\"}]]}],[\"$\",\"div\",\"Cache\",{\"className\":\"flex flex-col gap-0.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-mono text-xs uppercase tracking-wide\",\"style\":{\"color\":\"var(--color-muted)\"},\"children\":\"Cache\"}],[\"$\",\"span\",null,{\"className\":\"font-mono text-sm\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":\"Redis 7\"}]]}],[\"$\",\"div\",\"Auth\",{\"className\":\"flex flex-col gap-0.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-mono text-xs uppercase tracking-wide\",\"style\":{\"color\":\"var(--color-muted)\"},\"children\":\"Auth\"}],[\"$\",\"span\",null,{\"className\":\"font-mono text-sm\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":\"BetterAuth\"}]]}],[\"$\",\"div\",\"AI\",{\"className\":\"flex flex-col gap-0.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-mono text-xs uppercase tracking-wide\",\"style\":{\"color\":\"var(--color-muted)\"},\"children\":\"AI\"}],[\"$\",\"span\",null,{\"className\":\"font-mono text-sm\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":\"OpenAI API\"}]]}],[\"$\",\"div\",\"UI\",{\"className\":\"flex flex-col gap-0.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-mono text-xs uppercase tracking-wide\",\"style\":{\"color\":\"var(--color-muted)\"},\"children\":\"UI\"}],[\"$\",\"span\",null,{\"className\":\"font-mono text-sm\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":\"shadcn/ui + Recharts\"}]]}],[\"$\",\"div\",\"License\",{\"className\":\"flex flex-col gap-0.5\",\"children\":[[\"$\",\"span\",null,{\"className\":\"font-mono text-xs uppercase tracking-wide\",\"style\":{\"color\":\"var(--color-muted)\"},\"children\":\"License\"}],[\"$\",\"span\",null,{\"className\":\"font-mono text-sm\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":\"AGPL-3.0\"}]]}]]}]]}],[\"$\",\"div\",null,{\"className\":\"p-8\",\"style\":{\"backgroundColor\":\"var(--color-bg)\"},\"children\":[[\"$\",\"h3\",null,{\"className\":\"font-mono text-xs uppercase tracking-widest mb-6\",\"style\":{\"color\":\"var(--color-muted)\"},\"children\":\"START HERE\"}],[\"$\",\"div\",null,{\"className\":\"flex flex-col gap-4\",\"children\":[[\"$\",\"a\",\"GitHub\",{\"href\":\"https://github.com/syllogic-ai/syllogic\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"font-mono text-sm flex items-center gap-2 group transition-colors duration-150 hover:text-accent\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":[[\"$\",\"span\",null,{\"className\":\"opacity-0 group-hover:opacity-100 transition-opacity duration-150\",\"style\":{\"color\":\"var(--color-accent)\"},\"children\":\"â\"}],\"GitHub\"]}],[\"$\",\"a\",\"Start Here\",{\"href\":\"https://github.com/syllogic-ai/syllogic/blob/main/START_HERE.md\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"font-mono text-sm flex items-center gap-2 group transition-colors duration-150 hover:text-accent\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":[\"$L20\",\"Start Here\"]}],\"$L21\",\"$L22\",\"$L23\",\"$L24\"]}]]}]]}]]}]\n"])</script>
1<script>self.__next_f.push([1,"13:[\"$\",\"$L25\",null,{}]\n14:[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/6ca20bcff9c7228d.js\",\"async\":true,\"nonce\":\"$undefined\"}]\n15:[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/f680eea0828bea15.js\",\"async\":true,\"nonce\":\"$undefined\"}]\n16:[\"$\",\"$L26\",null,{\"children\":[\"$\",\"$27\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@28\"}]}]\n17:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L29\",null,{\"children\":\"$L2a\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L2b\",null,{\"children\":[\"$\",\"$27\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L2c\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\n"])</script>
1<script>self.__next_f.push([1,"1a:[\"$\",\"p\",null,{\"className\":\"font-mono text-xs uppercase tracking-widest mb-5\",\"style\":{\"color\":\"var(--color-muted)\"},\"children\":\"Next step\"}]\n1b:[\"$\",\"p\",null,{\"className\":\"font-mono text-sm leading-relaxed mb-8\",\"style\":{\"color\":\"var(--color-muted)\"},\"children\":\"Start with the live demo if you want to see the product first, or go straight to the quick-start guide if you are ready to self-host.\"}]\n1c:[\"$\",\"div\",null,{\"className\":\"flex flex-wrap gap-3\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://app.syllogic.ai/login?demo=1\u0026utm_source=landing\u0026utm_medium=site\u0026utm_campaign=oss_promotion\u0026utm_content=hero_demo\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"inline-flex items-center px-5 py-3 font-mono text-xs uppercase tracking-widest\",\"style\":{\"backgroundColor\":\"var(--color-accent)\",\"color\":\"var(--color-bg)\"},\"children\":\"Try the demo\"}],[\"$\",\"a\",null,{\"href\":\"/start\",\"className\":\"inline-flex items-center px-5 py-3 font-mono text-xs uppercase tracking-widest\",\"style\":{\"border\":\"1px solid var(--color-border)\",\"color\":\"var(--color-fg)\"},\"children\":\"Start here\"}]]}]\n1f:[\"$\",\"div\",null,{\"className\":\"flex flex-wrap gap-3\",\"children\":[[\"$\",\"a\",null,{\"href\":\"https://github.com/syllogic-ai/syllogic/blob/main/ROADMAP.md\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"inline-flex items-center px-5 py-3 font-mono text-xs uppercase tracking-widest\",\"style\":{\"backgroundColor\":\"var(--color-accent)\",\"color\":\"var(--color-bg)\"},\"children\":\"View roadmap\"}],[\"$\",\"a\",null,{\"href\":\"https://github.com/syllogic-ai/syllogic/discussions\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"inline-flex items-center px-5 py-3 font-mono text-xs uppercase tracking-widest\",\"style\":{\"border\":\"1px solid var(--color-border)\",\"color\":\"var(--color-fg)\"},\"children\":\"Join discussions\"}]]}]\n20:[\"$\",\"span\",null,{\"className\":\"opacity-0 group-hover:opacity-100 transition-opacity duration-150\",\"style\":{\"color\":\"var(--color-accent)\"},\"children\":\"â\"}]\n21:[\"$\",\"a\",\"Roadmap\",{\"href\":\"https://github.com/syllogic-ai/syllogic/blob/main/ROADMAP.md\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"font-mono text-sm flex items-center gap-2 group transition-colors duration-150 hover:text-accent\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":[[\"$\",\"span\",null,{\"className\":\"opacity-0 group-hover:opacity-100 transition-opacity duration-150\",\"style\":{\"color\":\"var(--color-accent)\"},\"children\":\"â\"}],\"Roadmap\"]}]\n22:[\"$\",\"a\",\"Live Demo\",{\"href\":\"https://app.syllogic.ai/login?demo=1\u0026utm_source=landing\u0026utm_medium=site\u0026utm_campaign=oss_promotion\u0026utm_content=hero_demo\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"font-mono text-sm flex items-center gap-2 group transition-colors duration-150 hover:text-accent\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":[[\"$\",\"span\",null,{\"className\":\"opacity-0 group-hover:opacity-100 transition-opacity duration-150\",\"style\":{\"color\":\"var(--color-accent)\"},\"children\":\"â\"}],\"Live Demo\"]}]\n23:[\"$\",\"a\",\"Install Help\",{\"href\":\"https://github.com/syllogic-ai/syllogic/issues/new?template=install_help.yml\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"font-mono text-sm flex items-center gap-2 group transition-colors duration-150 hover:text-accent\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":[[\"$\",\"span\",null,{\"className\":\"opacity-0 group-hover:opacity-100 transition-opacity duration-150\",\"style\":{\"color\":\"var(--color-accent)\"},\"children\":\"â\"}],\"Install Help\"]}]\n24:[\"$\",\"a\",\"Discussions\",{\"href\":\"https://github.com/syllogic-ai/syllogic/discussions\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"font-mono text-sm flex items-center gap-2 group transition-colors duration-150 hover:text-accent\",\"style\":{\"color\":\"var(--color-fg)\"},\"children\":[[\"$\",\"span\",null,{\"className\":\"opacity-0 group-hover:opacity-100 transition-opacity duration-150\",\"style\":{\"color\":\"var(--color-accent)\"},\"children\":\"â\"}],\"Discussions\"]}]\n"])</script>
1<script>self.__next_f.push([1,"2a:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script>
1<script>self.__next_f.push([1,"2d:I[66061,[\"/_next/static/chunks/c9907f856bf37aca.js\",\"/_next/static/chunks/33868fb9c860a3d1.js\"],\"IconMark\"]\n28:null\n2c:[[\"$\",\"title\",\"0\",{\"children\":\"Syllogic - Self-Hosted Personal Finance\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Self-hosted personal finance dashboard with AI categorization, recurring spend tracking, and a live demo.\"}],[\"$\",\"link\",\"2\",{\"rel\":\"icon\",\"href\":\"/favicon.ico?favicon.41065c94.ico\",\"sizes\":\"48x48\",\"type\":\"image/x-icon\"}],[\"$\",\"$L2d\",\"3\",{}]]\n"])</script>
1</body></html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.