/ opencodehub / UIPLAN.md
swadhinbiswas feat: optimize Docker CI/CD builds, refine site-wide UI aesthetic, and remediate secrets · 8/19/2026
c3e5c18
160 lines · 10.7 KB
Raw Download

OpenCodeHub — Self-Hosted GitHub UI Overhaul Plan (UIPLAN.md)

Objective: Completely refactor and elevate OpenCodeHub into an authentic, pixel-perfect self-hosted GitHub platform inspired by the minimalist, high-contrast, black-and-white monochrome aesthetic of Ryoku and the exact GitHub profile layout provided in the reference screenshot.


1. System Vision & Landing Page Paradigm

┌─────────────────────────────────────────────────────────────────────────────┐
│                       GLOBAL HEADER & SERVER NAVIGATION                     │
│  [Logo] [User/Org Switcher]   [Search: Type / to search]   [+] [PRs] [🔔] [Avatar]│
├─────────────────────────────────────────────────────────────────────────────┤
│  [Overview]  [Repositories 87]  [Projects]  [Packages]  [Stars 50]         │
├───────────────────────────────┬─────────────────────────────────────────────┤
│   LEFT SIDEBAR (PROFILE)      │   RIGHT MAIN CONTENT COLUMN                 │
│                               │                                             │
│  ┌─────────────────────────┐  │  ┌───────────────────────────────────────┐  │
│  │   Big Avatar (Circle)   │  │  │ swadhinbiswas / readme.md             │  │
│  │   + Status Badge (💭)   │  │  │                                       │  │
│  └─────────────────────────┘  │  │   [Rich Rendered Markdown Profile]    │  │
│  Name: Swadhin Biswas         │  │   - Role badges                       │  │
│  User: swadhinbiswas · he/him │  │   - Project showcase table            │  │
│  [Follow/Edit]  [💖 Sponsor]   │  │   - Social contact pills              │  │
│  Bio: MLOps & Data Engineer.. │  └───────────────────────────────────────┘  │
│  👥 94 followers · 116 following│                                             │
│                               │  ┌───────────────────────────────────────┐  │
│  🏢 @TheOpenCodeHub           │  │ Pinned Repositories (2-Column Grid)   │  │
│  📍 Dhaka, Bangladesh         │  │ ┌─────────────────┐ ┌───────────────┐ │  │
│  🕒 16:55 (Local Time)        │  │ │ opengrammar     │ │ FAANG-Playbook│ │  │
│  ✉️ [email protected]│  │ │ TypeScript ★115│ │ Astro ★36    │ │  │
│  🔗 https://swadhin.cv        │  │ └─────────────────┘ └───────────────┘ │  │
│  Socials: X, LinkedIn, HF...  │  └───────────────────────────────────────┘  │
│                               │                                             │
│  🏆 Achievements Badges       │  ┌───────────────────────────────────────┐  │
│  ⭐ Highlights (PRO)          │  │ 365-Day Contribution Calendar Heatmap │  │
│  🏛️ Organizations Grid        │  │ 6,870 contributions in 2026           │  │
│                               │  │ [52 Weeks x 7 Days Grid] [Years Tabs] │  │
│  [Block or report user]       │  └───────────────────────────────────────┘  │
└───────────────────────────────┴─────────────────────────────────────────────┘

1.1 Self-Hosted Landing Page Philosophy

On a self-hosted Git platform, visitors and users should not see a generic SaaS marketing page. Instead:

  1. Root URL (/): Directly renders the Primary Server User Profile (or primary organization / logged-in user dashboard), complete with:
    • Profile Header & Tabs (Overview, Repositories, Projects, Packages, Stars)
    • Left Profile Dossier (Avatar, bio, followers, metadata, achievements, orgs)
    • Profile README ({username}/README.md from {username}/{username} repo)
    • Pinned Repositories grid
    • 365-Day Contribution Heatmap & activity timeline
    • Server User & Organization Directory Bar: Quick discovery and switcher for all users and organizations hosted on this server instance.
  2. User Profile URL (/[owner]): Renders the exact same GitHub-authentic profile for any user or organization on the server.
  3. Repository Workspace (/[owner]/[repo]): Clean GitHub-style sub-nav (Code, Issues, Pull Requests, Actions, Merge Queue, Wiki, Security, Settings) with Ryoku-styled monochrome file browser, commit history, and Markdown view.

2. Design Tokens & Visual Hierarchy (Ryoku Monochrome)

2.1 CSS Color Tokens (src/styles/globals.css)

/* Ryoku High-Contrast Monochrome */
:root {
  --background: 0 0% 100%;
  --foreground: 0 0% 9%;
  --card: 0 0% 98%;
  --card-foreground: 0 0% 9%;
  --border: 0 0% 89%;
  --input: 0 0% 89%;
  --ring: 0 0% 9%;
  --radius: 0.375rem;
}

.dark {
  --background: 0 0% 3.5%;        /* #09090b - Obsidian void */
  --foreground: 0 0% 98%;         /* #fafafa - Crisp white text */
  --card: 0 0% 5.5%;              /* #0e0e11 - Elevated container */
  --card-foreground: 0 0% 98%;
  --popover: 0 0% 5.5%;
  --popover-foreground: 0 0% 98%;
  --primary: 0 0% 98%;            /* Pure white primary button/accent */
  --primary-foreground: 0 0% 9%;  /* Dark text on white */
  --secondary: 0 0% 10%;          /* #1a1a1e - Subtle background */
  --secondary-foreground: 0 0% 98%;
  --muted: 0 0% 10%;
  --muted-foreground: 0 0% 60%;   /* #999999 - Subdued metadata */
  --accent: 0 0% 12%;
  --accent-foreground: 0 0% 98%;
  --border: 0 0% 14%;             /* 1px precision hairline border */
  --input: 0 0% 14%;
  --ring: 0 0% 98%;
  --radius: 0.375rem;
}

3. Component Architecture & Modular Breakdown

3.1 Global Header (src/components/layout/Header.astro)

  • Sleek sticky glass navbar (backdrop-blur-md bg-background/90 border-b border-border).
  • Left: GitHub / OpenCodeHub mark + Server instance badge (Self-Hosted) + Quick User/Org switcher dropdown.
  • Center/Right: Search bar (Type / to search with ⌘K trigger), + create dropdown (New repo, new org), Issues icon, Pull Requests icon, Notifications inbox icon with unread badge, and User Avatar menu.

3.2 User Profile Component (src/components/profile/UserProfileView.astro)

A unified, highly reusable component powering both / (landing page) and /[owner] (profile page):

  1. Sub-Navigation Tabs:

    • Overview (active indicator)
    • Repositories (with live count badge)
    • Projects
    • Packages
    • Stars (with live star count badge)
  2. Left Profile Sidebar (Dossier):

    • Avatar Frame: 296x296px round avatar with status indicator badge (💭).
    • Identity: Large display name (text-2xl font-bold), username (text-xl text-muted-foreground font-light), pronouns (he/him).
    • Actions: Edit profile (if logged in owner) or dual buttons Follow / Unfollow + 💖 Sponsor.
    • Bio: Full markdown/text bio with auto-linking.
    • Follower Counter: 👥 94 followers · 116 following.
    • Metadata Details:
      • Organization / Company link (@TheOpenCodeHub)
      • Location pin (Dhaka, Bangladesh)
      • Local time calculator based on timezone / offset
      • Verified email mailto link
      • Portfolio / Website URL
      • Social links list (X / Twitter, LinkedIn, Hugging Face, ORCID, GitHub)
    • Achievements Shelf: Interactive badges (Pull Shark, Quickdraw, YOLO, Galaxy Brain, Starstruck).
    • Highlights Shelf: PRO member badge.
    • Organizations Shelf: Grid of organization avatar icons with tooltips.
    • Footer Action: "Block or report user".
  3. Right Main Column:

    • Profile README ({username} / readme.md):
      • Header ribbon with file icon and repository source link.
      • Rich GitHub-flavored markdown renderer with HTML tables, badge shields, social contact buttons, images, and code blocks.
    • Pinned Repositories (2-Column Grid):
      • Header: Pinned + "Customize your pins" link for owner.
      • Pinned cards: Repo icon, Name, Public badge pill, Description, Language color indicator, Star count, Fork count.
    • 365-Day Contribution Calendar Heatmap:
      • Annual contributions summary banner (6,870 contributions in 2026).
      • 52-week x 7-day grid with month headers, day labels, high-contrast monochrome/emerald cells, and hover tooltip.
      • Multi-year switcher tabs on the right (2026, 2025, 2024, etc.).
      • Contribution activity timeline below the calendar.

4. Implementation Steps

Step Action Item Target Files
1. Theming & Tokens Update global CSS variables for Ryoku monochrome aesthetic src/styles/globals.css, tailwind.config.mjs
2. Core Profile Components Create dedicated GitHub profile components src/components/profile/UserProfileView.astro
src/components/profile/ProfileReadme.astro
src/components/profile/PinnedRepos.astro
src/components/profile/ContributionCalendar.astro
3. Landing Page Transformation Wire root / to display the primary server user profile with instance switcher src/pages/index.astro
4. User Profile Page Polish Wire /[owner]/index.astro to use the unified UserProfileView src/pages/[owner]/index.astro
5. Header & Shell Refactor Update top navbar with GitHub layout, search, and user dropdown src/components/layout/Header.astro, src/layouts/BaseLayout.astro
6. Verification & Test Suite Run typecheck, unit tests, and layout responsiveness checks npm run typecheck, npm test

Plan updated and ready to execute.