Skip to content

openplaybooks-dev/converge-landing

Repository files navigation

@openplaybooks/landing

Public landing page for the Converge framework.

Deployed to https://converge.dev via Cloudflare Pages.

Stack

  • Framework: Astro 6 (static output)
  • Styling: Tailwind CSS 4
  • Adapter: @astrojs/cloudflare (enabled when CLOUDFLARE_ADAPTER=1)
  • Content: MDX for blog posts; JSON for brand/SEO config
  • Icons: astro-icon + Lucide
  • Motion: GSAP + Lenis (smooth scroll); CSS keyframes for the home-page DAG animation

Develop

pnpm install
pnpm dev               # → http://localhost:4321

Build & verify

pnpm check             # astro check (typecheck + diagnostics)
pnpm build             # static build to dist/
pnpm preview           # serve dist/ locally

Project layout

src/
├── pages/
│   ├── index.astro           # Home (10 home-page sections)
│   ├── blog/                 # Blog index + [slug] dynamic route
│   ├── og/[slug].png.ts      # Dynamic OG images
│   ├── rss.xml.ts
│   └── 404.astro
├── layouts/                  # MainLayout, Head, Header, Footer
├── components/
│   ├── layout/               # Header, Footer, Container, Section, Grid
│   ├── sections/             # Home-page sections (Hero, FeatureGrid, …)
│   ├── ui/                   # Button, Card, Badge, Pill, Icon, CodeBlock
│   └── animations/
├── styles/                   # globals.css, tokens.css, typography.css, animations.css
├── icons/                    # Inline SVG assets (logo, journey mark)
├── content/
│   └── blog/                 # MDX posts
└── .content/                 # JSON config (NOT shipped at runtime)
    ├── brand.json            # Single source of truth for name, URLs, palette, voice
    ├── seo.json              # Per-page title/description/OG-image
    └── sections/             # Per-section design/spec docs (internal scratch)

Single source of truth: src/.content/brand.json

Every component that needs the npm package name, GitHub URL, version, or doc/example base URL must read from brand.json rather than hardcoding the value. The shipping fields:

  • package — npm package name (@openplaybooks/converge)
  • version — current CLI version (keep in sync with the packages/cli/package.json in the converge repo)
  • github — repo URL
  • npm — npm package URL
  • docsBasehttps://github.com/openplaybooks-dev/converge/blob/main/docs
  • examplesBasehttps://github.com/openplaybooks-dev/converge/tree/main/examples

Brand voice

See src/.content/brand.jsonvoice:

  • Banned words: revolutionary, next-generation, AI-native, game-changing
  • Preferred words: concrete, shipped, measurable, verifiable
  • Tone: direct, technical, honest about trade-offs

Run this grep before merging copy changes:

grep -rn 'revolutionary\|next-generation\|AI-native\|game-changing' src/components src/.content src/content

It should return zero matches.

Where the docs live

Docs and examples are not in this repo. They live in the converge repo at:

Internal links from this landing site point to those GitHub paths. If you want docs to render on converge.dev in the future, add a src/content/docs/ directory and re-enable Starlight in astro.config.mjs (the integration was removed because there was no content to render).

Deploy

Cloudflare Pages picks up dist/ after a build with the adapter enabled:

CLOUDFLARE_ADAPTER=1 pnpm build
wrangler pages deploy dist

wrangler.toml is configured for the converge-dev project. Wrangler reads the deploy token from the environment.

Dogfooding

This landing page is itself a Converge project — see .converge/ for skills and (eventually) playbooks. Run converge add --from-example hello-world to see what a playbook looks like.

License

MIT — see LICENSE.

About

Public landing page for the Converge framework — converge.dev

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors