Skip to content

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

@ajianaz

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
    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions