gitshark

Clone repository

git clone https://gitshark.ha1nz.de/git/workaround/Gitshark.git
git clone ssh://git@gitshark.ha1nz.de:22/workaround/Gitshark.git

landing-page Specification

Purpose

Serve a public landing page at the root URL for unauthenticated visitors that presents git-shark's product positioning, branding, and calls to action (log in, self-host, browse public repositories), while keeping the repository list unchanged for authenticated users.

Requirements

Requirement: Anonymous root serves the landing page

The system SHALL serve a dedicated landing page at GET / when the request is unauthenticated. The system SHALL serve the existing repository list to authenticated users, so the change is invisible to logged-in users.

Scenario: Anonymous visitor sees the landing page

  • WHEN an unauthenticated client requests GET /
  • THEN the system responds with 200 and renders the landing page (not the repository list)

Scenario: Authenticated user keeps the repository list

  • WHEN an authenticated user requests GET /
  • THEN the system renders their visible repository list, unchanged from prior behavior

Requirement: Landing page presents product positioning

The landing page SHALL display the three value propositions as visible text: "Use AI as a tool, not as a feature", "Focus on co-working, not lazy feeds", and "Easy and painless to self-host".

Scenario: Value propositions are rendered

  • WHEN an unauthenticated client requests GET /
  • THEN the response body contains all three value-proposition statements

Requirement: Landing page hero with branding

The landing page SHALL render a hero section with the git-shark logo and tagline, using the shared shark.css design system (no page-level inline <style> block), so branding stays consistent with the rest of the UI.

Scenario: Hero renders logo and shared stylesheet

  • WHEN an unauthenticated client requests GET /
  • THEN the response links /shark.css, contains the /img/shark-logo.png logo, and carries no inline <style> block

Requirement: Landing page calls to action

The landing page SHALL provide a primary "Log in" call to action that initiates the existing OIDC login flow, a link to self-hosting documentation/repository, and a link to browse public repositories so anonymous browsing is not removed.

Scenario: Login CTA initiates OIDC flow

  • WHEN an anonymous visitor activates the "Log in" call to action
  • THEN the system initiates the OIDC authorization-code login flow

Scenario: Public repositories remain reachable

  • WHEN an anonymous visitor activates the "Browse public repositories" link
  • THEN the system shows the list of repositories visible to anonymous users

Keyboard shortcuts

?Show this help
g hGo home
EscClose dialog