Skip to content

Commit 8545618

Browse files
alvarogonjimclaude
andcommitted
Generalize ranking copy and remove em-dashes from landing page
Reframe the ranking message away from a single metric: the principle card is now "Ranked on real metrics" and speaks to multiple interface and confidence metrics rather than ipSAE alone. ipSAE remains listed among the scoring tools. Rewrite sentences that leaned on em-dashes so they read naturally, and drop the en-dash and a few fussy hyphenated compounds. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1 parent b163291 commit 8545618

1 file changed

Lines changed: 41 additions & 41 deletions

File tree

index.html

Lines changed: 41 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@
33
<head>
44
<meta charset="utf-8" />
55
<meta name="viewport" content="width=device-width, initial-scale=1" />
6-
<title>fova design proteins in your terminal</title>
7-
<meta name="description" content="fova is a terminal agent for de novo protein design. It plans, runs, and ranks design jobs — and ships the survivors to a wet lab from a single Go binary. Free by default." />
6+
<title>fova: design proteins in your terminal</title>
7+
<meta name="description" content="fova is a terminal agent for de novo protein design. It plans, runs, and ranks design jobs, then ships the survivors to a wet lab, all from a single Go binary. Free by default." />
88
<meta name="theme-color" content="#0d1f15" />
99
<meta name="color-scheme" content="dark" />
1010

1111
<meta property="og:type" content="website" />
12-
<meta property="og:title" content="fova design proteins in your terminal" />
13-
<meta property="og:description" content="A terminal agent for de novo protein design. It plans, runs, ranks and ships the survivors to a wet lab. Free by default." />
12+
<meta property="og:title" content="fova: design proteins in your terminal" />
13+
<meta property="og:description" content="A terminal agent for de novo protein design. It plans, runs, ranks, and ships the survivors to a wet lab. Free by default." />
1414
<meta property="og:url" content="https://github.com/alvarogonjim/fova" />
1515
<meta name="twitter:card" content="summary_large_image" />
1616

@@ -22,7 +22,7 @@
2222

2323
<style>
2424
/* ============================================================
25-
fova landing page
25+
fova landing page
2626
Palette mirrors internal/tui/theme.go (DefaultPalette):
2727
forest #0d1f15 · sand #d4cfc0 · moss #7fc14a · saffron #EF9F27
2828
============================================================ */
@@ -558,7 +558,7 @@
558558
<!-- ===================================================== NAV -->
559559
<nav class="nav" aria-label="Primary">
560560
<div class="shell nav-in">
561-
<a class="brand" href="#top" aria-label="fova home">
561+
<a class="brand" href="#top" aria-label="fova home">
562562
<svg viewBox="0 0 200 240" aria-hidden="true">
563563
<path d="M52 38V206" stroke="#7fc14a" stroke-width="15" stroke-linecap="round"/>
564564
<path d="M52 90H150" stroke="#7fc14a" stroke-width="15" stroke-linecap="round"/>
@@ -594,8 +594,8 @@ <h1 class="headline rise d2">
594594
</h1>
595595
<p class="lead rise d3">
596596
fova is a terminal agent for <b>de novo protein design</b>. It plans, runs,
597-
and ranks design jobs — and ships the survivors to a wet lab from a single
598-
Go binary.
597+
and ranks design jobs, then ships the survivors to a wet lab, all from a
598+
single Go binary.
599599
</p>
600600
<div class="hero-cta rise d4">
601601
<a class="btn btn-primary" href="#install" data-magnetic>Download fova</a>
@@ -628,17 +628,17 @@ <h1 class="headline rise d2">
628628
<path d="M52 142H112" stroke="#7fc14a" stroke-width="16" stroke-linecap="round"/>
629629
<circle cx="150" cy="90" r="16" fill="#ef9f27"/>
630630
</svg>
631-
<span class="term-title">fova&nbsp;<span class="dim"> protein design agent</span></span>
631+
<span class="term-title">fova&nbsp;<span class="dim">· protein design agent</span></span>
632632
<span class="term-live"><i aria-hidden="true"></i> session</span>
633633
</div>
634634
<div class="term-body" id="termBody" role="img"
635-
aria-label="fova running a binder design pipeline: planning, scaffolding with RFdiffusion, sequence design with ProteinMPNN, structure prediction with AlphaFold3, ranking by ipSAE to a shortlist of 47 designs, then a wet-lab submission prompt.">
635+
aria-label="fova running a binder design pipeline: planning, scaffolding with RFdiffusion, sequence design with ProteinMPNN, structure prediction with AlphaFold3, ranking and filtering to a shortlist of 47 designs, then a wet lab submission prompt.">
636636
<div class="t-line"><span class="t-prompt"></span><span class="t-cmd">fova design --target PD-L1 --n 50</span></div>
637637
<div class="t-line"><span class="t-mark ok"></span><span class="t-label">planning</span><span class="t-detail">retrieved <i>12</i> papers · BindCraft + ProteinMPNN</span></div>
638638
<div class="t-line"><span class="t-mark ok"></span><span class="t-label">scaffolding</span><span class="t-detail">RFdiffusion · <i>200</i> backbones · <i>4m 12s</i></span></div>
639639
<div class="t-line"><span class="t-mark ok"></span><span class="t-label">sequence design</span><span class="t-detail">ProteinMPNN · <i>200</i> sequences · <i>2m 41s</i></span></div>
640640
<div class="t-line"><span class="t-mark ok"></span><span class="t-label">predict</span><span class="t-detail">AlphaFold3 · <i>1m 08s</i></span></div>
641-
<div class="t-line"><span class="t-mark ok"></span><span class="t-label">rank · ipSAE</span><span class="t-detail">shortlist: <i>47</i> designs · top score <i>0.84</i></span></div>
641+
<div class="t-line"><span class="t-mark ok"></span><span class="t-label">rank</span><span class="t-detail">shortlist: <i>47</i> designs · top score <i>0.84</i></span></div>
642642
<div class="t-line t-confirm"><span class="t-arrow"></span><span>confirm wet-lab submission? [y/N]</span><span class="t-cursor"></span></div>
643643
</div>
644644
</div>
@@ -655,18 +655,18 @@ <h1 class="headline rise d2">
655655
<span class="moss">Free</span> by default.<br>No account needed.
656656
</p>
657657
<p class="sub" data-reveal style="--d:.16s">
658-
Every feature works without a paid account. Local LLMs Ollama, vLLM,
659-
LM&nbsp;Studio run out of the box, and the whole free knowledge stack is
660-
no-auth. Paid LLMs and wet-lab submission are the only opt-ins, and they
661-
stay optional.
658+
Every feature works without a paid account. Local LLMs like Ollama, vLLM,
659+
and LM&nbsp;Studio run out of the box, and the whole free knowledge stack
660+
needs no keys. Paid LLMs and wet lab submission are the only opt-ins, and
661+
they stay optional.
662662
</p>
663663
<div class="opt" data-reveal style="--d:.24s">
664664
<span class="tag on">Local LLMs</span>
665665
<span class="tag on">Literature retrieval</span>
666666
<span class="tag on">Design &amp; scoring</span>
667667
<span class="tag on">SQLite provenance</span>
668-
<span class="tag opt-in">Paid LLMs opt-in</span>
669-
<span class="tag opt-in">Adaptyv wet lab opt-in</span>
668+
<span class="tag opt-in">Paid LLMs · opt-in</span>
669+
<span class="tag opt-in">Adaptyv wet lab · opt-in</span>
670670
</div>
671671
</div>
672672
</section>
@@ -678,7 +678,7 @@ <h1 class="headline rise d2">
678678
<p class="eyebrow" data-reveal>The loop</p>
679679
<h2 data-reveal style="--d:.08s">From a sentence to the bench.</h2>
680680
<p data-reveal style="--d:.16s">
681-
Describe a target in plain language. fova does the rest and tracks
681+
Describe a target in plain language. fova does the rest, and tracks
682682
every design back to the intent that produced it.
683683
</p>
684684
</div>
@@ -693,19 +693,19 @@ <h3>Plans</h3>
693693
<div class="node"></div>
694694
<span class="idx">02 ▸ STEP</span>
695695
<h3>Orchestrates</h3>
696-
<p>Runs experimentally validated tools BindCraft, RFdiffusion, ProteinMPNN, AlphaFold3 — locally or on your own Modal GPUs.</p>
696+
<p>Runs experimentally validated tools like BindCraft, RFdiffusion, ProteinMPNN, and AlphaFold3, locally or on your own Modal GPUs.</p>
697697
</article>
698698
<article class="step" data-reveal style="--d:.23s">
699699
<div class="node"></div>
700700
<span class="idx">03 ▸ STEP</span>
701701
<h3>Ranks</h3>
702-
<p>Scores every design by <code>ipSAE</code> — the modern interface metric — then filters to a small, high-confidence shortlist.</p>
702+
<p>Scores every design on interface and confidence metrics, then filters to a small, trustworthy shortlist.</p>
703703
</article>
704704
<article class="step" data-reveal style="--d:.32s">
705705
<div class="node"></div>
706706
<span class="idx">04 ▸ STEP</span>
707707
<h3>Ships</h3>
708-
<p>Sends the survivors to the bench through the Adaptyv Foundry APIthen closes the design–test–learn loop with real results.</p>
708+
<p>Sends the survivors to the bench through the Adaptyv Foundry API, then closes the loop with real results.</p>
709709
</article>
710710
</div>
711711
</div>
@@ -731,17 +731,17 @@ <h3>Free by default</h3>
731731
<article class="card" data-reveal style="--d:.1s">
732732
<div class="ico"></div>
733733
<h3>Validated tools only</h3>
734-
<p>Every built-in design tool has <span class="hi">documented wet-lab success</span>. No unproven methods ship in the box.</p>
734+
<p>Every built-in design tool has <span class="hi">documented wet lab success</span>. No unproven methods ship in the box.</p>
735735
</article>
736736
<article class="card" data-reveal style="--d:.15s">
737737
<div class="ico"></div>
738-
<h3>Ranked by ipSAE</h3>
739-
<p>The interface metric that outperformed ipTM across <span class="hi">3,766 tested binders</span> on 15 targets.</p>
738+
<h3>Ranked on real metrics</h3>
739+
<p>fova scores every design on <span class="hi">multiple interface and confidence metrics</span>, never a single number, so the shortlist holds up at the bench.</p>
740740
</article>
741741
<article class="card" data-reveal style="--d:.2s">
742742
<div class="ico"></div>
743743
<h3>Provenance everywhere</h3>
744-
<p>Every design carries full lineage <span class="hi">intent → tool versions → wet-lab result</span> — in local SQLite.</p>
744+
<p>Every design carries its full lineage in local SQLite: <span class="hi">intent → tool versions → wet lab result</span>.</p>
745745
</article>
746746
<article class="card" data-reveal style="--d:.25s">
747747
<div class="ico"></div>
@@ -751,7 +751,7 @@ <h3>Local-first, cloud-elastic</h3>
751751
<article class="card" data-reveal style="--d:.3s">
752752
<div class="ico"></div>
753753
<h3>Human-in-the-loop</h3>
754-
<p>A confirmation checkpoint before anything <span class="hi">slow, costly, or irreversible</span>including every wet-lab submission.</p>
754+
<p>A confirmation checkpoint before anything <span class="hi">slow, costly, or irreversible</span>, including every wet lab submission.</p>
755755
</article>
756756
</div>
757757
</div>
@@ -762,15 +762,15 @@ <h3>Human-in-the-loop</h3>
762762
<div class="shell">
763763
<div class="section-head">
764764
<p class="eyebrow" data-reveal>Orchestrated tools</p>
765-
<h2 data-reveal style="--d:.08s">Only tools with wet-lab receipts.</h2>
765+
<h2 data-reveal style="--d:.08s">Only tools with wet lab receipts.</h2>
766766
<p data-reveal style="--d:.16s">
767-
fova drives state-of-the-art design, structure, and knowledge tools
768-
and shows the LLM type-safe outputs, never raw stdout.
767+
fova drives the best design, structure, and knowledge tools available,
768+
and shows the model structured outputs instead of raw stdout.
769769
</p>
770770
</div>
771771

772772
<div class="tool-group" data-reveal>
773-
<div class="glab">Design <span class="ct"> binders · antibodies · enzymes</span></div>
773+
<div class="glab">Design <span class="ct">· binders · antibodies · enzymes</span></div>
774774
<div class="chips">
775775
<span class="chip">BindCraft</span>
776776
<span class="chip">RFdiffusion</span>
@@ -783,7 +783,7 @@ <h2 data-reveal style="--d:.08s">Only tools with wet-lab receipts.</h2>
783783
</div>
784784

785785
<div class="tool-group" data-reveal style="--d:.08s">
786-
<div class="glab">Structure &amp; scoring <span class="ct"> predict · ipSAE · filter</span></div>
786+
<div class="glab">Structure &amp; scoring <span class="ct">· predict · ipSAE · filter</span></div>
787787
<div class="chips">
788788
<span class="chip">AlphaFold3</span>
789789
<span class="chip">ESMFold</span>
@@ -796,7 +796,7 @@ <h2 data-reveal style="--d:.08s">Only tools with wet-lab receipts.</h2>
796796
</div>
797797

798798
<div class="tool-group" data-reveal style="--d:.16s">
799-
<div class="glab">Knowledge <span class="ct"> free · no-auth</span></div>
799+
<div class="glab">Knowledge <span class="ct">· free · no keys</span></div>
800800
<div class="chips">
801801
<span class="chip">Europe PMC</span>
802802
<span class="chip">OpenAlex</span>
@@ -810,7 +810,7 @@ <h2 data-reveal style="--d:.08s">Only tools with wet-lab receipts.</h2>
810810
</div>
811811

812812
<div class="tool-group" data-reveal style="--d:.24s">
813-
<div class="glab">Wet lab <span class="ct"> close the loop</span></div>
813+
<div class="glab">Wet lab <span class="ct">· close the loop</span></div>
814814
<div class="chips">
815815
<span class="chip">Adaptyv Foundry</span>
816816
</div>
@@ -825,8 +825,8 @@ <h2 data-reveal style="--d:.08s">Only tools with wet-lab receipts.</h2>
825825
<p class="eyebrow" data-reveal>Get fova</p>
826826
<h2 data-reveal style="--d:.08s">Install in one line.</h2>
827827
<p data-reveal style="--d:.16s">
828-
One static binary no runtime, no dependencies. Pick the way that
829-
suits you, then run <code style="font-family:'JetBrains Mono',monospace;color:var(--moss)">fova</code>.
828+
One static binary with no runtime and no dependencies. Pick whichever
829+
way suits you, then run <code style="font-family:'JetBrains Mono',monospace;color:var(--moss)">fova</code>.
830830
</p>
831831
</div>
832832

@@ -913,7 +913,7 @@ <h2 data-reveal style="--d:.08s">Design. Test. Learn.<br>Then do it again.</h2>
913913
<div class="shell">
914914
<div class="foot-grid">
915915
<div class="foot-brand">
916-
<a class="brand" href="#top" aria-label="fova home">
916+
<a class="brand" href="#top" aria-label="fova home">
917917
<svg viewBox="0 0 200 240" aria-hidden="true">
918918
<path d="M52 38V206" stroke="#7fc14a" stroke-width="15" stroke-linecap="round"/>
919919
<path d="M52 90H150" stroke="#7fc14a" stroke-width="15" stroke-linecap="round"/>
@@ -922,7 +922,7 @@ <h2 data-reveal style="--d:.08s">Design. Test. Learn.<br>Then do it again.</h2>
922922
</svg>
923923
<span class="wm">fova</span>
924924
</a>
925-
<p>A terminal agent for de novo protein design — plan, run, rank, and ship designs to a wet lab from a single Go binary.</p>
925+
<p>A terminal agent for de novo protein design. Plan, run, rank, and ship designs to a wet lab from a single Go binary.</p>
926926
</div>
927927
<div class="foot-cols">
928928
<div class="foot-col">
@@ -943,7 +943,7 @@ <h4>Project</h4>
943943
</div>
944944
<div class="foot-base">
945945
<span>fova <span class="moss">·</span> v0.5 “fova” <span class="moss">·</span> MIT licensed <span class="moss">·</span> free software</span>
946-
<span>built for the terminal <span class="moss"></span> <span id="year">2026</span></span>
946+
<span>built for the terminal <span class="moss">·</span> <span id="year">2026</span></span>
947947
</div>
948948
</div>
949949
</footer>
@@ -1023,8 +1023,8 @@ <h4>Project</h4>
10231023
}
10241024

10251025
/* ---- animated terminal pipeline ---------------------------------
1026-
DOM is built node-by-node (createElement / textContent) — no
1027-
innerHTML, no HTML strings. All content below is static. */
1026+
DOM is built node by node with createElement and textContent.
1027+
No innerHTML, no HTML strings. All content below is static. */
10281028
const body = document.getElementById('termBody');
10291029
if (!body || reduce) return;
10301030

@@ -1044,7 +1044,7 @@ <h4>Project</h4>
10441044
['scaffolding', ['RFdiffusion · ', { n: '200' }, ' backbones · ', { n: '4m 12s' }]],
10451045
['sequence design', ['ProteinMPNN · ', { n: '200' }, ' sequences · ', { n: '2m 41s' }]],
10461046
['predict', ['AlphaFold3 · ', { n: '1m 08s' }]],
1047-
['rank · ipSAE', ['shortlist: ', { n: '47' }, ' designs · top score ', { n: '0.84' }]],
1047+
['rank', ['shortlist: ', { n: '47' }, ' designs · top score ', { n: '0.84' }]],
10481048
];
10491049
const frames = ['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'];
10501050

0 commit comments

Comments
 (0)