Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions src/components/SiteFooter.astro
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
<div>
<strong>Product</strong>
<a href="/">Overview</a>
<a href="/downloads/">Downloads</a>
<a href="/connect/">Connect</a>
<a href="/beta/">Connect beta waitlist</a>
<a href="/security/">Security</a>
Expand Down
3 changes: 2 additions & 1 deletion src/components/SiteHeader.astro
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,13 @@
import BrandMark from "./BrandMark.astro";

interface Props {
current?: "home" | "connect" | "sdk" | "runtime" | "spec";
current?: "home" | "downloads" | "connect" | "sdk" | "runtime" | "spec";
}

const { current } = Astro.props;
const links = [
{ href: "/", label: "Overview", key: "home" },
{ href: "/downloads/", label: "Download", key: "downloads" },
{ href: "/connect/", label: "Connect", key: "connect" },
{ href: "/sdk/", label: "Developers", key: "sdk" },
{ href: "/spec/", label: "Specification", key: "spec" }
Expand Down
2 changes: 1 addition & 1 deletion src/layouts/BaseLayout.astro
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import ThemeControlScript from "../components/ThemeControlScript.astro";
interface Props {
title: string;
description: string;
current?: "home" | "connect" | "sdk" | "runtime" | "spec";
current?: "home" | "downloads" | "connect" | "sdk" | "runtime" | "spec";
noIndex?: boolean;
}

Expand Down
185 changes: 185 additions & 0 deletions src/pages/downloads/index.astro
Original file line number Diff line number Diff line change
@@ -0,0 +1,185 @@
---
import BaseLayout from "../../layouts/BaseLayout.astro";

const version = "0.1.0-beta.46";
const tag = `v${version}`;
const releaseBase = `https://github.com/mdbase-dev/mdbase-connect/releases/download/${tag}`;
const releasePage = `https://github.com/mdbase-dev/mdbase-connect/releases/tag/${tag}`;

const desktopDownloads = [
{
platform: "macOS",
detail: "Apple Silicon",
note: "Beta preview · DMG · 131 MB",
file: `mdbase-connect-${version}-macos-arm64.dmg`,
label: "Download for Apple Silicon"
},
{
platform: "macOS",
detail: "Intel",
note: "Beta preview · DMG · 135 MB",
file: `mdbase-connect-${version}-macos-x64.dmg`,
label: "Download for Intel"
},
{
platform: "Windows",
detail: "64-bit",
note: "Unsigned beta preview · installer · 149 MB",
file: `mdbase-connect-${version}-windows-x64-UNSIGNED-Setup.exe`,
label: "Download for Windows"
},
{
platform: "Linux",
detail: "64-bit Debian or Ubuntu",
note: "DEB package · 103 MB",
file: `mdbase-connect-${version}-linux-x64.deb`,
label: "Download DEB"
},
{
platform: "Linux",
detail: "64-bit Fedora, RHEL, or compatible",
note: "RPM package · 108 MB",
file: `mdbase-connect-${version}-linux-x64.rpm`,
label: "Download RPM"
}
];

const cliDownloads = [
{
platform: "macOS",
detail: "Apple Silicon",
note: "Beta preview · tar.gz · 12 MB",
file: `mdbase-cli-${version}-macos-arm64.tar.gz`,
label: "Download CLI for Apple Silicon"
},
{
platform: "macOS",
detail: "Intel",
note: "Beta preview · tar.gz · 13 MB",
file: `mdbase-cli-${version}-macos-x64.tar.gz`,
label: "Download CLI for Intel"
},
{
platform: "Windows",
detail: "64-bit",
note: "Unsigned beta preview · tar.gz · 12 MB",
file: `mdbase-cli-${version}-windows-x64-UNSIGNED.tar.gz`,
label: "Download CLI for Windows"
},
{
platform: "Linux",
detail: "64-bit",
note: "tar.gz · 14 MB",
file: `mdbase-cli-${version}-linux-x64.tar.gz`,
label: "Download CLI for Linux"
}
];
---

<BaseLayout
title="Download"
description="Download the mdbase Connect desktop app or standalone command line tools for macOS, Windows, and Linux."
current="downloads"
>
<section class="page-hero">
<div class="page-hero__inner">
<div>
<h1>Download mdbase Connect</h1>
</div>
<div class="page-hero__aside">
<p>
The desktop app includes the local connector, background service,
and command line tools. The mdbase editor is available online. These
builds are public beta releases; hosted collections still require a
beta account.
</p>
<div class="download-summary" aria-label="Release details">
<span>Version <strong>{version}</strong></span>
<span>Published <strong><time datetime="2026-08-08">8 August 2026</time></strong></span>
</div>
</div>
</div>
</section>

<section class="content-section" aria-labelledby="desktop-heading">
<h2 id="desktop-heading">Desktop app</h2>
<p>
Choose the package for your computer. The app can open local mdbase
collections immediately; Connect service features require a beta account.
</p>

<div class="callout">
<strong>macOS builds are not notarized; Windows builds are unsigned previews.</strong>
<p>
Windows may show an Unknown Publisher or SmartScreen warning. macOS
requires a manual Privacy &amp; Security override and the app has not
been notarized. The release includes checksums and Sigstore provenance.
</p>
</div>

<div class="download-list">
{
desktopDownloads.map((download) => (
<article class="download-option">
<h3>{download.platform}</h3>
<div class="download-option__detail">
<p>{download.detail}</p>
<code>{download.note}</code>
</div>
<div class="download-option__actions">
<a class="button button--primary" href={`${releaseBase}/${download.file}`}>
{download.label}
</a>
</div>
</article>
))
}
</div>
<p class="download-note">
Portable Windows and macOS ZIP builds are available on the
<a href={releasePage}>release page</a>.
</p>
</section>

<section id="command-line" class="content-section" aria-labelledby="cli-heading">
<h2 id="cli-heading">Command line</h2>
<p>
The standalone archive contains the unified <code>mdbase</code> CLI and
Connect background service. It does not include the desktop interface.
</p>
<div class="download-list">
{
cliDownloads.map((download) => (
<article class="download-option">
<h3>{download.platform}</h3>
<div class="download-option__detail">
<p>{download.detail}</p>
<code>{download.note}</code>
</div>
<div class="download-option__actions">
<a class="button button--primary" href={`${releaseBase}/${download.file}`}>
{download.label}
</a>
</div>
</article>
))
}
</div>
<p class="download-note">
Follow the <a href={`https://github.com/mdbase-dev/mdbase-connect/blob/${tag}/docs/headless.md`}>headless installation guide</a>
to verify, install, and run the service.
</p>
</section>

<section class="content-section" aria-labelledby="verify-heading">
<h2 id="verify-heading">Release details</h2>
<p>
The GitHub release contains SHA-256 checksums, Sigstore bundles, portable
packages, release notes, and the complete artifact list.
</p>
<div class="button-row download-release-actions">
<a class="button button--primary" href={releasePage}>Open release {tag}</a>
<a class="button" href="https://github.com/mdbase-dev/mdbase-connect/releases">All releases</a>
</div>
</section>
</BaseLayout>
72 changes: 72 additions & 0 deletions src/styles/global.css
Original file line number Diff line number Diff line change
Expand Up @@ -504,6 +504,78 @@ main[tabindex="-1"]:focus {
font-weight: 700;
}

.download-summary {
display: flex;
margin-top: 1rem;
flex-wrap: wrap;
gap: 0.45rem 1.25rem;
color: var(--ink-muted);
font: 500 0.64rem/1.5 var(--mono);
}

.download-summary strong {
color: var(--ink);
font-weight: 500;
}

.download-list {
margin-top: 2rem;
border-top: 1px solid var(--line-strong);
}

.download-option {
display: grid;
max-width: none;
padding: 1.2rem 0;
align-items: start;
grid-template-columns: minmax(9rem, 0.28fr) minmax(0, 1fr) auto;
gap: 1rem;
border-bottom: 1px solid var(--line);
}

.download-option h3 {
font-size: 0.95rem;
}

.download-option__detail p {
color: var(--ink-soft);
font-size: 0.84rem;
}

.download-option__detail code {
display: block;
margin-top: 0.3rem;
color: var(--ink-muted);
font-size: 0.68rem;
}

.download-option__actions {
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
gap: 0.5rem;
}

.download-note {
margin-top: 1.25rem;
color: var(--ink-muted);
font-size: 0.78rem;
}

.download-release-actions {
margin-top: 1.25rem;
}

@media (max-width: 48rem) {
.download-option {
grid-template-columns: 1fr;
}

.download-option__actions {
justify-content: flex-start;
}
}

.docs-shell {
display: grid;
width: min(100% - 2rem, 96rem);
Expand Down