Skip to content

Latest commit

 

History

History
43 lines (31 loc) · 2.98 KB

File metadata and controls

43 lines (31 loc) · 2.98 KB

Open Source Endowment - Website

Rules

  • Never push to GitHub without explicit user approval. Commit locally freely, but always wait for the user to say "push" before running git push.

Tech Stack

  • Framework: Astro 5 (static site, SSG)
  • Deployment: Cloudflare Worker with Static Assets ([assets] binding in wrangler.jsonc, worker name: website). Auto-builds from main via Cloudflare Workers Builds + GitHub integration. Not Pages.
  • Domain: endowment.dev
  • UI: Astro components + React (for interactive components like NominationForm)
  • Analytics: OpenPanel (@openpanel/astro, client ID hardcoded in Layout.astro)
  • Donations: Every.org (external redirect, donate URL in src/util.ts)
  • Nomination form: SurveyJS + Cloudflare Turnstile CAPTCHA, submits to api.endowment.dev
  • Data API: https://api.endowment.dev (donor stats, nominations — Cloudflare Worker in osendowment/app repo). Endpoints centralized in src/lib/api.ts (STATS_URL, DONORS_URL, NOMINATE_URL).
  • Package manager: npm (no lockfile committed)

Key Files

  • src/layouts/Layout.astro — main layout, OpenPanel init, donate link tracking, session metrics
  • src/util.tsEVERYORG_BUTTON_URL constant, shared helpers
  • src/components/NominationForm.tsx — React component for project nominations
  • src/pages/ — all site pages (index, endowment, community, funding, faq, docs/*)

Analytics & Tracking

  • OpenPanel SDK auto-tracks: page views, outgoing links, data-track element clicks
  • Donate links: inject partner_donation_id (persistent UUID from localStorage) into Every.org URL on click
  • Nomination form: op.identify() with same visitor UUID + donor email/name
  • Visitor ID stored in localStorage as ose_visitor_id, session metrics in sessionStorage

Design Prototypes (Figma)

Inspirational design prototypes developed by Evil Martians:

Main Website

Donate Page