'use client'; import dynamic from 'next/dynamic'; import Link from 'next/link'; import { useRef } from 'react'; import { motion, useReducedMotion, useScroll, useTransform } from 'framer-motion'; import { ArrowRight, Database, FlowArrow, Brain, CaretDown as ChevronDown } from '@phosphor-icons/react'; import { TiltCard } from '@/components/ui/TiltCard'; import { ThemeToggle } from '@/components/ui/ThemeToggle'; import { JsonLd } from '@/components/seo/JsonLd'; import { ORG_ID, SOFTWARE_ID, SITE_NAME, SITE_URL, WEBPAGE_ID, WEBSITE_ID } from '@/lib/seo'; const DNAHelix = dynamic( () => import('@/components/three/DNAHelix'), { ssr: false, loading: () =>
} ); const DATABASES = ['NCBI', 'UniProt', 'PDB', 'AlphaFold', 'EMBL', 'InterPro', 'KEGG', 'STRING']; const DB_GROUPS = [ { label: 'Portals', names: 'NCBI · EMBL-EBI' }, { label: 'Annotation', names: 'UniProt · InterPro' }, { label: 'Structure', names: 'RCSB PDB · AlphaFold' }, { label: 'Systems', names: 'KEGG · STRING' }, ]; const CONFIDENCE_BANDS = [ { label: 'Very high', dot: 'bg-confidence-very-high' }, { label: 'High', dot: 'bg-confidence-high' }, { label: 'Moderate', dot: 'bg-confidence-moderate' }, { label: 'Low', dot: 'bg-confidence-low' }, ]; const REVEAL = { initial: { opacity: 0, y: 28 }, whileInView: { opacity: 1, y: 0 }, viewport: { once: true, margin: '-80px' } }; const PIPELINE = [ { tag: 'input', label: 'Sequence Input', sub: 'FASTA / accession ID' }, { tag: 'blast', label: 'BLAST Search', sub: 'EBI BLAST + NCBI' }, { tag: 'uniprot', label: 'UniProt Lookup', sub: 'Annotation & function' }, { tag: 'fold', label: 'Structure Prediction', sub: 'AlphaFold 3D viewer' }, { tag: 'ai', label: 'AI Interpretation', sub: 'Plain-language insight' }, ]; const FEATURES = [ { icon: Database, title: 'Unified Access', body: 'NCBI, UniProt, PDB, KEGG, STRING and more — one plain-English query retrieves across every major database simultaneously.', span: 'md:col-span-2', }, { icon: FlowArrow, title: 'Pipeline Automation', body: 'BLAST → UniProt → AlphaFold runs sequentially, hands-free. Real-time progress via SSE, results assembled automatically.', span: 'md:col-span-1', }, { icon: Brain, title: 'AI Interpretation', body: 'Every result is narrated in plain language. Clinical relevance, evolutionary context, functional insights — streamed live.', span: 'md:col-span-3', }, ]; export default function LandingPage() { const heroRef = useRef(null); const { scrollYProgress } = useScroll({ target: heroRef, offset: ['start start', 'end start'], }); const reduceMotion = useReducedMotion(); // Parallax slides the hero as you scroll — flattened to a cross-fade under // reduced motion (apple-design §14). const contentY = useTransform(scrollYProgress, [0, 1], reduceMotion ? ['0%', '0%'] : ['0%', '12%']); const contentOpacity = useTransform(scrollYProgress, [0, 0.6], [1, 0.2]); return (
Stop tab-switching
between eight databases.
Paste a sequence. Synteny runs BLAST, annotation, structure and AI interpretation — assembled on one page, in one query. Start analyzing See the pipeline No API keys · results streamed live
DOUBLE HELIX · LIVE
5′ — 3′ 4.2 kb
{[...DATABASES, ...DATABASES].map((db, i) => ( {db} ))}

From sequence to insight

Five automated stages, zero manual database switching.

{PIPELINE.map(({ tag, label, sub }, i) => (

{tag}

{label}

{sub}

))}

What you get back

BLAST hits, annotation, structure and AI insight — cross-referenced on one page, exportable as PDF or JSON.

P01308 · Insulin [Homo sapiens]
sample

BLAST hits · top 3 of 14

  • P01308 · INS_HUMAN 100% · e 0.0
  • insulin [mouse] 87% · e 1e-97
  • insulin-like INSL3 41% · e 3e-14

AI interpretation

> Insulin — reviewed UniProt entry with an experimental structure. Function, family and disease annotations cross-referenced from the source databases.

{CONFIDENCE_BANDS.map((b) => ( {b.label} ))} NCBI · UniProt · PDB · AlphaFold

All your databases, one query

One query retrieves across every major database simultaneously — results cross-referenced on a single page.

{FEATURES.map((f, i) => { const Icon = f.icon; const wide = f.span === 'md:col-span-2'; const full = f.span === 'md:col-span-3'; return (

{f.title}

{f.body}

{wide && (
{DB_GROUPS.map((g) => (
{g.label} {g.names}
))}
)} {full && (

> docking · 7 poses scored against target pocket

Best pose: binding affinity −8.4 kcal/mol, ligand efficiency 0.31 — narrated in plain language alongside the raw AutoDock Vina output.

engine · AutoDock Vina · CPU-based, no GPU required

)}
); })}

Ready to decode your sequences?

Free to start. No API keys required to run your first analysis.

Your sequences stay yours — never shared or used beyond the analysis you ask for.

Start analyzing
Synteny · Built at Jamia Millia Islamia
Sign in © 2026
); }