diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml deleted file mode 100644 index 60eedf9..0000000 --- a/.github/workflows/deploy.yml +++ /dev/null @@ -1,27 +0,0 @@ -name: Deploy - -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - deploy: - runs-on: ubuntu-latest - permissions: - contents: read - deployments: write - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: 22 - cache: npm - - run: npm ci - - run: npm run build - - uses: cloudflare/wrangler-action@v3 - with: - apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }} - accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }} - command: pages deploy dist --project-name=flaglint diff --git a/src/pages/index.astro b/src/pages/index.astro index 8b00063..8b7d4aa 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -1,16 +1,19 @@ --- -// Single source of truth for the displayed version: read from package.json at -// build time so the site can never drift from the published npm version. -import pkg from "../../package.json"; - -const version = pkg.version; +let version = "1.0.0"; +try { + const res = await fetch("https://registry.npmjs.org/flaglint/latest"); + const data = await res.json(); + version = data.version ?? "1.0.0"; +} catch { + // fallback to hardcoded +} const jsonLd = { "@context": "https://schema.org", "@type": "SoftwareApplication", name: "FlagLint", description: - "Free, open-source CLI that finds every direct LaunchDarkly Node.js SDK call, ranks them by migration risk, and generates safe OpenFeature rewrites.", + "Free, open-source CLI that finds every direct LaunchDarkly SDK call, ranks them by migration risk, and generates safe OpenFeature rewrites.", url: "https://flaglint.dev", downloadUrl: "https://www.npmjs.com/package/flaglint", softwareVersion: version, @@ -19,7 +22,7 @@ const jsonLd = { offers: { "@type": "Offer", price: "0", priceCurrency: "USD" }, author: { "@type": "Person", name: "Krishan Sharma", url: "https://github.com/flaglint" }, license: "https://opensource.org/licenses/MIT", - codeRepository: "https://github.com/flaglint/flaglint", + codeRepository: "https://github.com/flaglint/flaglint-js", }; --- @@ -804,6 +807,74 @@ const jsonLd = { } .footer-links a:hover { color: var(--text); } + /* ── Section: Language SDKs ─────────────────────────────────────── */ + .section-sdks { + border-top: 1px solid var(--border); + border-bottom: 1px solid var(--border); + background: var(--surface); + } + [data-theme="light"] .section-sdks { background: #f4f8f6; } + .sdk-grid { + display: grid; + grid-template-columns: repeat(2, 1fr); + gap: 24px; + margin-top: 40px; + } + .sdk-card { + background: var(--bg); + border: 1px solid var(--border); + border-radius: 12px; + padding: 28px; + } + [data-theme="light"] .sdk-card { background: var(--surface); } + .sdk-card-soon { opacity: 0.65; } + .sdk-card-header { margin-bottom: 14px; } + .sdk-badge { + display: inline-block; + padding: 3px 10px; + border-radius: 999px; + font-size: 11px; + font-weight: 800; + letter-spacing: 0.05em; + } + .sdk-badge-stable { + background: rgba(0,217,126,0.15); + color: var(--accent); + border: 1px solid rgba(0,217,126,0.3); + } + [data-theme="light"] .sdk-badge-stable { + background: #d4f5e6; + color: #005c33; + border-color: #9de5c3; + } + .sdk-badge-soon { + background: var(--surface-raised); + color: var(--subtle); + border: 1px solid var(--border); + } + .sdk-title { + font-size: 20px; + font-weight: 700; + letter-spacing: -0.01em; + margin-bottom: 10px; + } + .sdk-desc { + color: var(--muted); + font-size: 14px; + line-height: 1.6; + margin-bottom: 16px; + } + .cmd-muted { color: var(--subtle) !important; } + .sdk-links { + display: flex; + gap: 20px; + margin-top: 16px; + font-size: 13px; + font-weight: 700; + } + .sdk-links a { color: var(--accent); } + .sdk-card-soon .sdk-links a { color: var(--subtle); } + /* ── Responsive ──────────────────────────────────────────────────── */ @media (max-width: 980px) { .hero-grid { grid-template-columns: 1fr; gap: 40px; } @@ -811,6 +882,7 @@ const jsonLd = { .diff-arrow-col { display: none; } .workflow-strip { grid-template-columns: 1fr; } .proof-trust-grid { grid-template-columns: 1fr; } + .sdk-grid { grid-template-columns: 1fr; } .wf-divider { display: none; } .wf-step { border-bottom: 1px solid var(--border); } .wf-step:last-of-type { border-bottom: none; } @@ -857,7 +929,7 @@ const jsonLd = { - GitHub + GitHub @@ -872,11 +944,11 @@ const jsonLd = {
- Makes LaunchDarkly usage visible, measurable, and safer to - migrate to OpenFeature. Free CLI. No API key. Runs locally. + Find every direct LaunchDarkly SDK call, rank by migration risk, + and generate safe OpenFeature rewrites. Free, open-source. No API key. Runs locally.
FlagLint knows when not to rewrite.
LaunchDarkly Node.js server SDK → OpenFeature. Audits, migrates, and enforces the boundary in CI.
+npm install -g flaglint
+
+ Flag debt analysis for LaunchDarkly Go SDK usage. OpenFeature migration planning.
+go install github.com/flaglint/flaglint-go@latest
+