Skip to content

Repository files navigation

MicroAlchemy

Static marketing site, MDX blog, and careers pages for MicroAlchemy. Astro generates complete HTML for every public route; React is limited to the circuit animation and intake forms that require browser interaction.

What is included

  • Static homepage with an animated circuit-board background.
  • Astro content collections for blog posts and job descriptions.
  • Per-route titles, descriptions, canonicals, social metadata, and crawl directives.
  • Organization, BlogPosting, and JobPosting structured data.
  • Generated RSS and XML sitemaps, plus a public robots file.
  • Applicant, customer, and investor intake forms backed by a Cloudflare Worker and Twenty CRM.
  • A build-time SEO output check covering every public route.

Local development

npm install
npm run dev

Build and validate the static site:

npm run build
npm run preview
npm run check
npm run intake:build

Node 24 or newer is required.

Social card

The Open Graph image is generated from assets/social-card.typ on an exact 1200×630 canvas. Install Typst 0.15 or newer, then regenerate it with:

npm run social-card

The command writes public/social-card.png. Typst lays out an exact vector canvas and converts the lettering to glyph paths; Sharp performs the final PNG rasterization. The logo keeps its native aspect ratio, and repeated renders do not depend on browser layout or local ImageMagick defaults.

Content updates

  • Homepage copy, cards, partners, and team members live in src/components/CircuitBoardAnimation.tsx.
  • Blog posts live in src/blog/*.mdx and are validated by the blog collection in src/content.config.ts.
  • Job posts live in src/jobs/*.mdx and are validated by the jobs collection in src/content.config.ts.
  • Route metadata and JSON-LD are generated by the Astro pages under src/pages.
  • Copy and fact checks that require a founder decision are listed in docs/seo-copy-review.md.

Deployment

The GitHub Actions Pages workflow builds dist and publishes it to the gh-pages branch. Configure these public repository variables for the intake forms:

  • PUBLIC_INTAKE_API_URL
  • PUBLIC_TURNSTILE_SITE_KEY

See docs/intake-deployment.md and docs/twenty-intake-setup.md for the Cloudflare and CRM setup.

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages