Feature: Public landing site on GitHub Pages (Astro) #59

Closed
opened 2026-04-26 16:46:15 +00:00 by icub3d · 0 comments
Owner

Migrated from GitHub issue icub3d/decentcom#81
Original Author: @icub3d
Original Date: 2026-04-17T22:00:30Z


Feature: Public landing site on GitHub Pages (Astro)

Overview

Build a software-app-style marketing and download site for decentcom, hosted on GitHub Pages. The site should let regular users understand what decentcom does, see its features, and download the client. Initially hosted at icub3d.github.io/decentcom; a custom domain can be added later without restructuring.

Background

Split from #78. Today we have nothing public-facing beyond the GitHub repo README. A dedicated marketing/download site serves a different audience (non-technical users evaluating the product) than the repo README (developers and contributors).

Tech Stack

  • Astro — chosen for fast content-focused sites: minimal JS by default, great SEO, Tailwind-native, renders Markdown (can pull from docs/ if useful later), progressive React islands available if interactive widgets are ever needed.
  • Tailwind CSS with Catppuccin Mocha variables — visual consistency with the app.
  • GitHub Pages via a GitHub Actions workflow that builds Astro and deploys to the gh-pages branch. No Jekyll.

Requirements

  • New Astro project at site/ in the repo root.
  • Pages:
    • / — Hero with tagline and value props, features section, "Why decentcom?" comparison, CTA to download.
    • /features — longer feature tour (expandable over time).
    • /download — v1: "Binaries coming soon" messaging + prominent "Build from source" link to the repo. Replace with real release artifacts when those ship (separate issue).
  • Shared layout: nav, footer, favicon, OpenGraph + Twitter Card meta tags.
  • Responsive: mobile, tablet, desktop.
  • Accessibility: semantic HTML, alt text, keyboard navigation.
  • Lighthouse targets: 90+ on Performance, Accessibility, Best Practices, SEO (enforced in CI if feasible).
  • Deploy pipeline: GitHub Actions workflow builds on push to main when site/** changes; publishes to gh-pages branch; GH Pages source set to that branch.
  • URL: icub3d.github.io/decentcom. Astro site and base config set accordingly; CNAME file omitted for now.
  • Copy sourced from docs/brand.md (see #79).

Design

Repository layout

site/
├── astro.config.mjs
├── package.json
├── pnpm-lock.yaml
├── public/                  # favicon, OG images, static assets
├── src/
│   ├── layouts/
│   │   └── BaseLayout.astro
│   ├── components/
│   │   ├── Nav.astro
│   │   ├── Hero.astro
│   │   ├── FeatureCards.astro
│   │   ├── Comparison.astro
│   │   └── Footer.astro
│   └── pages/
│       ├── index.astro
│       ├── features.astro
│       └── download.astro
└── tailwind.config.mjs

CI / Deploy

.github/workflows/deploy-site.yml:

  • Trigger on push to main with path filter site/**.
  • Setup Node + pnpm, install, build Astro.
  • Deploy site/dist to gh-pages branch using an official action (e.g. peaceiris/actions-gh-pages).
  • Enable GH Pages in repo settings with source = gh-pages branch.

Task List

Phase 1: Scaffold

  • pnpm create astro@latest site with minimal starter.
  • Configure site / base in astro.config.mjs for icub3d.github.io/decentcom.
  • Install Tailwind integration; set up Catppuccin Mocha palette to match the client.
  • Base layout, nav, footer, 404.
  • GitHub Actions deploy workflow.
  • Enable GH Pages for the repo.

Phase 2: Content

  • Hero (tagline + 1-2 sentence value prop, from docs/brand.md).
  • Features section (cards with icon + one-line each).
  • "Why decentcom?" comparison section (strengths-forward, "other products" framing).
  • Download page with "coming soon" + build-from-source guidance.
  • Favicon and OpenGraph image.
  • Meta tags on every page (title, description, og:, twitter:).

Phase 3: Quality

  • Responsive QA on mobile / tablet / desktop breakpoints.
  • Keyboard navigation and semantic HTML pass.
  • Lighthouse run (local) — address anything below 90.
  • Optional: Lighthouse CI job in the deploy workflow.

Test List

  • pnpm --dir site build succeeds locally.
  • Deploy workflow succeeds on main and publishes to gh-pages.
  • Deployed site is reachable at https://icub3d.github.io/decentcom and all internal links work.
  • Lighthouse: all four categories ≥ 90 on the homepage.
  • Manual: OpenGraph preview looks correct (check via Slack/Twitter/Facebook debugger).
  • Manual: site is readable on a 375px-wide viewport (mobile).

Open Questions

  • Do we want /docs on the site pulling from repo Markdown, or keep docs on GitHub for v1? (Recommendation: v1 scope is marketing only; docs stay on GitHub. Revisit when the docs set stabilizes.)
  • Analytics? Privacy-respecting options (Plausible, simple-analytics) vs. none. (Recommendation: none for v1; reconsider once traffic matters.)
  • Download page — list the checksums / signing keys once releases ship (separate issue tracks that).

Future work (not this issue)

  • Custom domain + CNAME.
  • Real release artifact links.
  • /blog or changelog page.
  • i18n.

Dependencies

  • Split from #78.
  • Blocked by #79 (brand voice + copy source).
  • Related: #80 (In-app About — links to /download on this site).
**Migrated from GitHub issue icub3d/decentcom#81** **Original Author:** @icub3d **Original Date:** 2026-04-17T22:00:30Z --- # Feature: Public landing site on GitHub Pages (Astro) ## Overview Build a software-app-style marketing and download site for decentcom, hosted on GitHub Pages. The site should let regular users understand what decentcom does, see its features, and download the client. Initially hosted at `icub3d.github.io/decentcom`; a custom domain can be added later without restructuring. ## Background Split from #78. Today we have nothing public-facing beyond the GitHub repo README. A dedicated marketing/download site serves a different audience (non-technical users evaluating the product) than the repo README (developers and contributors). ## Tech Stack - **Astro** — chosen for fast content-focused sites: minimal JS by default, great SEO, Tailwind-native, renders Markdown (can pull from `docs/` if useful later), progressive React islands available if interactive widgets are ever needed. - **Tailwind CSS** with Catppuccin Mocha variables — visual consistency with the app. - **GitHub Pages** via a GitHub Actions workflow that builds Astro and deploys to the `gh-pages` branch. No Jekyll. ## Requirements - [x] New Astro project at `site/` in the repo root. - [x] Pages: - [x] `/` — Hero with tagline and value props, features section, "Why decentcom?" comparison, CTA to download. - [x] `/features` — longer feature tour (expandable over time). - [x] `/download` — v1: "Binaries coming soon" messaging + prominent "Build from source" link to the repo. Replace with real release artifacts when those ship (separate issue). - [x] Shared layout: nav, footer, favicon, OpenGraph + Twitter Card meta tags. - [x] Responsive: mobile, tablet, desktop. - [x] Accessibility: semantic HTML, alt text, keyboard navigation. - [ ] Lighthouse targets: **90+ on Performance, Accessibility, Best Practices, SEO** (enforced in CI if feasible). - [x] Deploy pipeline: GitHub Actions workflow builds on push to `main` when `site/**` changes; publishes to `gh-pages` branch; GH Pages source set to that branch. - [x] URL: `icub3d.github.io/decentcom`. Astro `site` and `base` config set accordingly; `CNAME` file omitted for now. - [x] Copy sourced from `docs/brand.md` (see #79). ## Design ### Repository layout ``` site/ ├── astro.config.mjs ├── package.json ├── pnpm-lock.yaml ├── public/ # favicon, OG images, static assets ├── src/ │ ├── layouts/ │ │ └── BaseLayout.astro │ ├── components/ │ │ ├── Nav.astro │ │ ├── Hero.astro │ │ ├── FeatureCards.astro │ │ ├── Comparison.astro │ │ └── Footer.astro │ └── pages/ │ ├── index.astro │ ├── features.astro │ └── download.astro └── tailwind.config.mjs ``` ### CI / Deploy `.github/workflows/deploy-site.yml`: - Trigger on `push` to `main` with path filter `site/**`. - Setup Node + pnpm, install, build Astro. - Deploy `site/dist` to `gh-pages` branch using an official action (e.g. `peaceiris/actions-gh-pages`). - Enable GH Pages in repo settings with source = `gh-pages` branch. ## Task List ### Phase 1: Scaffold - [x] `pnpm create astro@latest site` with minimal starter. - [x] Configure `site` / `base` in `astro.config.mjs` for `icub3d.github.io/decentcom`. - [x] Install Tailwind integration; set up Catppuccin Mocha palette to match the client. - [x] Base layout, nav, footer, 404. - [x] GitHub Actions deploy workflow. - [ ] Enable GH Pages for the repo. ### Phase 2: Content - [x] Hero (tagline + 1-2 sentence value prop, from `docs/brand.md`). - [x] Features section (cards with icon + one-line each). - [x] "Why decentcom?" comparison section (strengths-forward, "other products" framing). - [x] Download page with "coming soon" + build-from-source guidance. - [x] Favicon and OpenGraph image. - [x] Meta tags on every page (title, description, og:*, twitter:*). ### Phase 3: Quality - [ ] Responsive QA on mobile / tablet / desktop breakpoints. - [ ] Keyboard navigation and semantic HTML pass. - [ ] Lighthouse run (local) — address anything below 90. - [ ] Optional: Lighthouse CI job in the deploy workflow. ## Test List - [x] `pnpm --dir site build` succeeds locally. - [ ] Deploy workflow succeeds on `main` and publishes to `gh-pages`. - [ ] Deployed site is reachable at `https://icub3d.github.io/decentcom` and all internal links work. - [ ] Lighthouse: all four categories ≥ 90 on the homepage. - [ ] Manual: OpenGraph preview looks correct (check via Slack/Twitter/Facebook debugger). - [ ] Manual: site is readable on a 375px-wide viewport (mobile). ## Open Questions - Do we want `/docs` on the site pulling from repo Markdown, or keep docs on GitHub for v1? (Recommendation: v1 scope is marketing only; docs stay on GitHub. Revisit when the docs set stabilizes.) - Analytics? Privacy-respecting options (Plausible, simple-analytics) vs. none. (Recommendation: none for v1; reconsider once traffic matters.) - Download page — list the checksums / signing keys once releases ship (separate issue tracks that). ## Future work (not this issue) - Custom domain + CNAME. - Real release artifact links. - `/blog` or changelog page. - i18n. ## Dependencies - Split from #78. - Blocked by #79 (brand voice + copy source). - Related: #80 (In-app About — links to `/download` on this site).
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
icub3d/decentcom#59
No description provided.