Skip to content

vela-web ​

Public landing page for VelaPay at velapay.io.

Purpose and Role ​

  • External product narrative and value proposition.
  • Positioning and conversion surface for potential merchants and developers.
  • Likely first stop for developers and merchants before navigating to docs or app entry.
  • Developer CTAs with code snippets showing SDK usage.
  • Privacy-friendly analytics (Cloudflare Web Analytics — no cookies).

Tech Stack ​

TechnologyVersionPurpose
Astro6.1.xStatic site framework — zero JS by default
Tailwind CSS4.2.xStyling (CSS-first config)
React19.xInteractive islands (pricing toggle, wallet connect)
@astrojs/cloudflarelatestCF adapter for Workers deployment
wrangler4.78.xCloudflare CLI for deployment
Cloudflare Web Analytics—Privacy-friendly analytics (no cookies, GDPR-compliant)

Directory Structure ​

vela-web/
├── src/
│   ├── pages/                 # Astro pages
│   │   ├── index.astro        # Home page
│   │   ├── pricing.astro      # Pricing page
│   │   └── ...
│   ├── components/            # Astro + React components
│   │   ├── Hero.astro
│   │   ├── Features.astro
│   │   ├── CodeSnippet.astro  # SDK usage examples
│   │   ├── PricingToggle.tsx  # React island (interactive)
│   │   └── Footer.astro
│   ├── layouts/               # Page layouts
│   └── styles/                # Global styles, Tailwind config
├── public/                    # Static assets
├── astro.config.mjs           # Astro configuration
├── tailwind.css               # Tailwind CSS-first config
└── package.json

Deployment Target ​

  • Cloudflare Workers: Static assets served from edge (free static assets on Workers).
  • Domain: velapay.io.

Dependencies ​

What It Depends On ​

None. The landing page has no protocol dependency — it's purely informational.

What Depends on It ​

Nothing. The landing page is a terminal consumer with no downstream dependents.

Current Status ​

  • v1.0 complete: Landing page with value proposition, code snippets, developer CTAs.
  • Static content: No server-side rendering needed. Astro generates static HTML at build time.
  • Minimal JavaScript: Only interactive islands (pricing toggle) load client-side React.

Notable Design Decisions ​

Astro over Next.js ​

Astro ships zero JS by default. A landing page doesn't need SSR, API routes, or React hydration. Astro's island architecture loads interactive components (pricing toggle, wallet connect) only where needed.

Cloudflare Workers (Not Pages) ​

Cloudflare deprecated Pages investment. Workers gets all new features and serves static assets for free. Deployment via wrangler deploy.

Privacy-Friendly Analytics ​

Cloudflare Web Analytics — no cookies, GDPR-compliant by default. Aligns with VelaPay's privacy-first positioning.

No Protocol Dependency ​

The landing page is purely informational. No @velapay/sdk import, no on-chain reads, no wallet connection. This keeps it fast, cacheable, and independently deployable.

Zero JavaScript by Default ​

Astro's default rendering mode produces pure HTML with zero client-side JavaScript. Interactive elements (pricing toggle, wallet connect) load only when they become visible or interacted with via Astro's island architecture. This means:

  • First contentful paint is near-instant (pre-rendered HTML).
  • No React runtime loaded until an island needs it.
  • Lighthouse scores consistently 95+ across all categories.

Code Snippets as Marketing ​

The landing page includes live code snippets showing SDK usage:

typescript
import { createVelaClient } from "@velapay/sdk";

const vela = createVelaClient({ connection, wallet });
const result = await vela.createSubscription({
  planAddress,
  merchantAddress,
});

These serve dual purpose: developer education and product marketing. Developers who see the API immediately understand the integration effort.

SEO and Content Strategy ​

  • All pages are pre-rendered at build time (SSG, not SSR).
  • Meta tags and Open Graph images are generated per page.
  • sitemap.xml auto-generated by Astro.
  • Robot-friendly HTML with semantic markup.
  • Fast load times improve search ranking signals.

Relationship to Other Surfaces ​

SurfaceDomainRoleLinks to
vela-webvelapay.ioMarketing and discovery→ docs, dashboard, checkout
vela-docsdocs.velapay.ioTechnical documentation→ SDK, protocol
vela-dashboarddashboard.velapay.ioMerchant management→ SDK, protocol
vela-checkoutpay.velapay.ioPayment collection→ SDK, protocol
vela-portalportal.velapay.ioSubscriber management→ SDK, protocol

The landing page is the top of the funnel. It converts visitors into developers (→ docs) or merchants (→ dashboard). It never needs to know about protocol state.

Internal knowledge base for the Vela Labs workspace.