feat(www): landing page (#25)
* design: landing page spec + app icon asset * chore(www): add anime.js, fonts, and landing page screenshot assets * feat(www): add design tokens, fonts, shared layout * feat(www): add landing page sections and styling * feat(www): add theme toggle and anime.js viewport animations * feat(www): feedback updates — no hero card, os-aware download, footer email, lowercase colored heading * feat(www): remove screenshot borders, move macos hint below ctas, mobile github fallback * feat(www): keep hero CTAs side by side * feat(www): set initial nav border to transparent * feat(www): add Rybbit prod-only, sitemap, SEO head, OG image, robots.txt, 404 page * docs(AGENTS): include www landing page version in release sync checklist * chore(www): add railpack.json for Dokploy deploy (force node provider, TZ) * chore(www): use bun for Railpack deploy (packageManager + standalone www/bun.lock) * docs(AGENTS): note www/bun.lock sync for Railpack deploys * chore(www): add vitest test tooling * feat(www): add FAQ data source * feat(www): add SEO JSON-LD builders * feat(www): add Seo JSON-LD component * feat(www): wire Seo component and social/meta tags into Layout * feat(www): add homepage JSON-LD, keyword H1, data-driven FAQ * fix(www): point Roadmap footer link to GitHub * feat(www): add lastmod to sitemap * perf(www): self-host anime.js * refactor(www): move nav and footer into shared Layout * feat(www): add changelog page * fix(www): make shared component styles global in Layout * perf(www): optimize screenshots with Astro Image (webp/avif + srcset) * feat(www): add web app manifest * feat(www): add helpful links to 404 page * fix(www): shorten homepage H1 copy * fix(www): OS-aware navbar download + footer layout * feat(www): build full changelog from v0.7.0 to v0.7.10
This commit is contained in:
@@ -0,0 +1,47 @@
|
||||
---
|
||||
import Layout from "../layouts/Layout.astro";
|
||||
import { changelogEntries } from "../data/changelog";
|
||||
import { buildBreadcrumbJsonLd, buildTitle } from "../lib/seo";
|
||||
|
||||
const site = "https://getgridline.app";
|
||||
const jsonLd = [
|
||||
buildBreadcrumbJsonLd([
|
||||
{ name: "Home", url: `${site}/` },
|
||||
{ name: "Changelog", url: `${site}/changelog` },
|
||||
]),
|
||||
];
|
||||
---
|
||||
|
||||
<Layout
|
||||
title={buildTitle("Changelog")}
|
||||
description="Gridline release notes. Free, open-source database GUI for PostgreSQL, MySQL, SQLite, and Redis."
|
||||
jsonLd={jsonLd}
|
||||
>
|
||||
<main class="pt-32 pb-20 md:pt-44 md:pb-28">
|
||||
<div class="max-w-[800px] mx-auto px-6">
|
||||
<p class="font-mono text-xs tracking-[0.15em] uppercase text-[var(--accent)] mb-4">Changelog</p>
|
||||
<h1 class="font-serif text-4xl md:text-6xl leading-[1.05] tracking-tight mb-10">Release notes</h1>
|
||||
|
||||
<div class="space-y-6">
|
||||
{
|
||||
changelogEntries.map((entry) => (
|
||||
<article class="rounded-xl border border-[var(--border)] bg-[var(--surface)] p-6">
|
||||
<h2 class="text-xl font-semibold mb-1">v{entry.version}</h2>
|
||||
<p class="text-xs text-[var(--text-muted)] mb-3">{entry.date}</p>
|
||||
<ul class="space-y-2 text-sm text-[var(--text-muted)]">
|
||||
{entry.highlights.map((h) => <li>• {h}</li>)}
|
||||
</ul>
|
||||
</article>
|
||||
))
|
||||
}
|
||||
</div>
|
||||
|
||||
<p class="mt-8 text-sm text-[var(--text-muted)]">
|
||||
Full release history on{" "}
|
||||
<a href="https://github.com/AdrianBonpin/gridline/releases" target="_blank" rel="noopener" class="text-[var(--primary)] hover:text-[var(--primary-hover)]">
|
||||
GitHub Releases
|
||||
</a>.
|
||||
</p>
|
||||
</div>
|
||||
</main>
|
||||
</Layout>
|
||||
Reference in New Issue
Block a user