Skip to content

Commit 461e9e6

Browse files
authored
Merge pull request #2 from libredb/feat/deploy-homepage-prominence
feat: surface deploy story in hero + 'runs anywhere' logo strip
2 parents 7cef01e + 54b3b6f commit 461e9e6

4 files changed

Lines changed: 61 additions & 4 deletions

File tree

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "libredb-studio-website",
33
"type": "module",
4-
"version": "0.3.1",
4+
"version": "0.3.2",
55
"scripts": {
66
"dev": "astro dev",
77
"build": "node scripts/sync-docker-compose.mjs && astro build",

src/components/DeployStrip.astro

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
---
2+
import { deployTargets } from '../data/deploy-targets';
3+
4+
// Curated, widely-recognized brands (must have a vendored logo) for the trust
5+
// strip directly under the hero. Order = recognition, not category.
6+
const STRIP_SLUGS = [
7+
'docker', 'kubernetes', 'helm', 'railway', 'caprover', 'render',
8+
'koyeb', 'netlify', 'fly', 'digitalocean', 'gcp', 'coolify',
9+
];
10+
11+
const bySlug = new Map(deployTargets.map((t) => [t.slug, t]));
12+
const logos = STRIP_SLUGS
13+
.map((slug) => bySlug.get(slug))
14+
.filter((t) => t?.logo)
15+
.map((t) => ({ name: t!.name, logo: t!.logo! }));
16+
17+
const moreCount = Math.max(0, deployTargets.length - logos.length);
18+
---
19+
20+
<section aria-label="Deploy anywhere" class="relative border-y border-slate-800/60 bg-slate-950/40">
21+
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8 py-5 md:py-7">
22+
<div class="flex flex-col lg:flex-row items-center justify-center gap-4 lg:gap-10">
23+
<a href="/deploy" class="group shrink-0 inline-flex items-center gap-2 text-sm md:text-base font-semibold">
24+
<span class="gradient-text">Deploy anywhere</span>
25+
<span class="text-primary-300 group-hover:translate-x-0.5 transition-transform" aria-hidden="true">&rarr;</span>
26+
</a>
27+
28+
<ul class="flex flex-wrap items-center justify-center gap-x-6 md:gap-x-8 gap-y-3" role="list">
29+
{logos.map((logo) => (
30+
<li>
31+
<a href="/deploy" aria-label={`Deploy LibreDB Studio — see all options including ${logo.name}`} class="block">
32+
<img
33+
src={logo.logo}
34+
alt={logo.name}
35+
title={logo.name}
36+
width="28"
37+
height="28"
38+
loading="lazy"
39+
class="h-6 md:h-7 w-auto object-contain opacity-60 hover:opacity-100 transition-opacity duration-200"
40+
/>
41+
</a>
42+
</li>
43+
))}
44+
{moreCount > 0 && (
45+
<li>
46+
<a href="/deploy" class="text-xs md:text-sm font-medium text-slate-400 hover:text-white transition-colors whitespace-nowrap">
47+
+{moreCount} more
48+
</a>
49+
</li>
50+
)}
51+
</ul>
52+
</div>
53+
</div>
54+
</section>

src/components/Hero.astro

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,14 @@
5858
Try Live Demo
5959
</a>
6060
<a
61-
href="#get-started"
61+
href="/deploy"
6262
class="w-full sm:w-auto inline-flex items-center justify-center gap-2 px-6 md:px-8 py-3 md:py-4 bg-slate-800 hover:bg-slate-700 text-white font-semibold rounded-xl transition-all border border-slate-700"
6363
>
6464
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
65-
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 6.253v13m0-13C10.832 5.477 9.246 5 7.5 5S4.168 5.477 3 6.253v13C4.168 18.477 5.754 18 7.5 18s3.332.477 4.5 1.253m0-13C13.168 5.477 14.754 5 16.5 5c1.747 0 3.332.477 4.5 1.253v13C19.832 18.477 18.247 18 16.5 18c-1.746 0-3.332.477-4.5 1.253"></path>
65+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 10V3L4 14h7v7l9-11h-7z"></path>
6666
</svg>
67-
Documentation
67+
Deploy in one click
68+
<span aria-hidden="true">&rarr;</span>
6869
</a>
6970
</div>
7071

src/pages/index.astro

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import Layout from '../layouts/Layout.astro';
33
import Header from '../components/Header.astro';
44
import Hero from '../components/Hero.astro';
5+
import DeployStrip from '../components/DeployStrip.astro';
56
import Features from '../components/Features.astro';
67
import WhyLibreDB from '../components/WhyLibreDB.astro';
78
import Databases from '../components/Databases.astro';
@@ -18,6 +19,7 @@ import BottomNav from '../components/BottomNav.astro';
1819
<Header />
1920
<main>
2021
<Hero />
22+
<DeployStrip />
2123
<Features />
2224
<WhyLibreDB />
2325
<Databases />

0 commit comments

Comments
 (0)