Skip to content

Phase 2: Website overhaul + GitHub App Rust backend #120

Description

@ajianaz

Phase 2: Website + GitHub App Backend (Week 2)

Rebrand website from V1 SaaS messaging to V2 Open Core. Build GitHub App backend in Rust.

Part A: Website Overhaul

2.1 Content Rebrand (V1 → V2)

Section V1 (remove) V2 (replace with)
Hero subtitle "1,000,000 tokens FREE. Powered by GLM 5" "Open source AI code review. BYOK. Free forever."
Install command npm install -g @codecora/cli Binary download cards (4 platforms) + curl one-liner
Feature: BYOK "You control costs, we handle the rest" "Any OpenAI-compatible provider. Your keys, your control."
Feature: Privacy "Only reads commit diffs" Keep (V2 also diff-only)
Pricing section "FREE $0 / PRO $5/mo" table Remove — replace with "Open Source" stats section
Comparison table "CodeCORA vs Other Tools" Keep, update "Free tier" → "Open Source (MIT)"
Testimonials Fake testimonials (Alex Rivera, Sam Chen...) Remove — replace with real GitHub stats
Early Adopter banner "ENDS MAY 5, 2026" Remove
Footer links "npm" Replace with "crates.io", "GitHub Releases"

2.2 Website Structure (Single-Page)

codecora.dev
├── Hero: tagline + download cards (4 platforms)
├── How It Works (3 steps: install → configure → review)
├── Features (BYOK, Privacy, Pre-commit, Multi-lang, SARIF, CLI)
├── Open Source section (GitHub stats, crates.io, contributors)
├── Comparison table (vs CodeRabbit, Codacy, etc)
├── Quick Start guide (copy-paste ready commands)
└── Footer: GitHub · crates.io · Docs · Roadmap
  • Remove multi-page routing (if any) — single page with anchor links
  • Nav: "How It Works" / "Features" / "Quick Start" / "GitHub" (no Pricing, no FAQ)
  • Remove "Get Started Free" CTA → replace with "Install Now" or "View on GitHub"

2.3 Install Section Redesign

  • 4 platform cards: Linux (x86 + ARM), macOS (Apple Silicon), Windows
  • Each card: one-liner curl / download link from GitHub Releases
  • Alternative: cargo install cora-cli
  • Auto-detect user OS and highlight relevant card (JS optional)

2.4 Open Source Stats Section (replaces Pricing)

  • GitHub stars (via API or badge)
  • crates.io downloads
  • Number of contributors
  • License: MIT badge
  • Link to GitHub repo

2.5 Broken Nav + SEO Fix

  • "How It Works", "Pricing", "FAQ", "Docs" currently → 404
  • Fix: all nav links point to anchor sections on same page
  • Update <title>, <meta description>, OG tags for V2
  • Add canonical URL: https://codecora.dev
  • Generate sitemap.xml

2.6 Deploy to codecora.dev

  • Website deploys to CF Pages project cora (already configured)
  • Add custom domain codecora.dev in CF Pages
  • DNS: verify codecora.dev points to CF (CNAME or proxied)
  • SSL: automatic via CF
  • Verify: curl -s https://codecora.dev shows V2 website

2.7 feature/website-polish PR

  • Merge feature/website-polish branch (already has hamburger nav, roadmap)
  • Adapt content to V2 messaging on top of polish changes
  • Single PR: website polish + V2 rebrand combined

Part B: GitHub App Rust Backend

2.8 Architecture Design

  • Framework: Axum (lightweight, tokio-native)
  • Endpoint: POST /webhook/github — receive pull_request events
  • Auth: HMAC-SHA256 webhook secret verification
  • Diff extraction: GitHub API (pulls/{number}/files)
  • Review: call cora-cli library (lib extraction needed)
  • Posting: PR comment + check run via GitHub API

2.9 Lib + Bin Split

  • Extract review engine from src/main.rs into src/lib.rs
  • Export: review::run(), scanner::scan_files(), types::*
  • CLI binary at src/bin/cora.rs (calls lib)
  • Backend crate depends on cora-cli as library
  • Verify: cargo build, cargo test, binary still works identically

2.10 GitHub App Backend MVP

  • Webhook handler: receive & verify pull_request events
  • Diff extraction via GitHub REST API
  • Review execution: call cora lib with diff + config from .cora.yaml
  • Result posting: PR comment (summary) + check run (pass/fail)
  • Env config: GITHUB_APP_ID, GITHUB_PRIVATE_KEY, GITHUB_WEBHOOK_SECRET, GITHUB_WEBHOOK_URL
  • Error handling: timeout, rate limit, LLM failure → graceful check run failure

2.11 Deploy Backend

  • Deploy to Fly.io (free tier, Rust native)
  • OR: Cloudflare Workers (if Workers Rust support sufficient)
  • Health check endpoint: GET /health
  • Configure GitHub App webhook URL → backend endpoint
  • Test: install app on test repo, open PR, verify review posted

Acceptance Criteria

  • codecora.dev shows V2 website (no V1 SaaS references)
  • No 404 pages on codecora.dev
  • Install section shows binary download, not npm
  • No pricing section, no testimonials, no SaaS messaging
  • GitHub App backend receives webhook and posts PR review
  • Lib extraction doesn't break existing binary/tests

Depends On

Epic

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions