Astro企业官网

monarda — Astro 企业官网模板

作者 lentago

Monarda 是 Lentago Labs 发布的 Astro 筹款活动网站模板,通过单个配置文件生成静态页面,并部署到使用者自己的 GitHub Pages 或 AWS 账户。

看看你的网站会是什么样

浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。

2 个预览视图
桌面端首页1 / 2
桌面端截图首屏预览

由服务器浏览器实际访问页面后截取。

全部页面与视图 2

截图用于了解视觉与布局,交互效果请以实际项目为准。

采集于 2026-10-01查看来源

值得关注的模板亮点

从已有项目资料中,快速了解它的特点。

01

基于 Astro 的静态筹款活动页面,包含 hero、故事、捐赠、联系/志愿者四个区块

02

活动信息集中在 campaign.config.ts 单个文件中编辑

03

捐赠通过支付处理商的托管页面或嵌入组件完成,模板不接触银行卡数据

04

默认使用 GitHub Pages 免费部署,可选 S3 + CloudFront 并通过 GitHub OIDC 免长期密钥

05

附带 INTAKE.md 问卷和 DRY-RUN.md 计时演练文档,供运营者按流程交付

06

PR 门禁包含类型检查、构建和基于 pa11y 的 WCAG 2 AA 检查

模板详细介绍

Monarda 是一个面向筹款活动的静态网站模板,基于 Astro 构建。页面包含四个区块:展示活动名称、标语、目标、截止日期和可选进度条的 hero 区,活动故事,由支付处理商托管的捐赠按钮或嵌入组件,以及联系/志愿者区。站点输出为纯静态 HTML,使用系统字体,不包含跟踪器,也不在浏览器中运行 JavaScript。

模板的设计围绕“客户自有”展开:代码、网站、域名、支付处理商账户和资金都归使用者所有,Lentago 不托管站点、不持有资金,也不接触捐赠者数据。捐赠部分不接触银行卡数据,支付在支付处理商自己的页面上完成。

使用方式上,活动信息集中在 campaign.config.ts 一个文件中,包括名称、标语、目标、截止日期、故事、颜色、捐赠组件和联系信息。部署提供两条路径:默认使用 GitHub Pages 免费托管,通过仓库的 GitHub Actions 工作流发布;可选使用 S3 + CloudFront,通过 GitHub OIDC 向使用者自己的 AWS 账户进行短期身份验证,不存储长期 AWS 密钥,该工作流默认关闭,需要填写四个占位符后启用。

仓库还包含面向运营者的 INTAKE.md 问卷和 DRY-RUN.md 计时演练文档,以及记录捐赠嵌入和客户所有权设计决策的 ADR 文档。README 说明代码、提示词和文档由作者与 Claude 共同撰写,作者自述为基础设施运营者而非软件工程师。

Astro企业官网

适合你的项目吗?

适用场景

  • 为公益组织或社区活动搭建一个接受捐赠的单页活动网站
  • 由运营者按 INTAKE 问卷收集信息后,为客户部署到客户自己的 GitHub 或 AWS 账户
  • 使用 GitHub Pages 免费托管活动页面,并绑定自定义域名
  • 使用 S3 + CloudFront 为活动页面提供自定义域名和 CDN 分发
  • 在正式交付前通过 DRY-RUN 计时演练梳理 DNS 和 AWS OIDC 角色等耗时步骤

适合人群

  • 需要快速上线单页筹款活动、且希望自行持有代码和账户的团队
  • 愿意编辑 TypeScript 配置文件并运行 npm 命令的使用者
  • 接受捐赠流程由第三方支付处理商托管、不在本站处理支付的运营方
  • 需要静态托管、无自有后端表单接收能力的活动页面

上手与定制指南

结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。

  1. 1

    先运行 npm install,再用 npm run dev 本地预览,npm run build 生成 ./dist 静态站点

  2. 2

    在 campaign.config.ts 中填写活动名称、标语、目标、截止日期、故事、颜色、捐赠和联系信息

  3. 3

    捐赠需选择支持嵌入代码或捐赠链接的支付处理商,并设置 donate.embedHtml 或 donate.buttonUrl

  4. 4

    联系区没有自带后端,需设置 contact.email 生成 mailto 按钮,或粘贴托管表单嵌入代码

  5. 5

    GitHub Pages 部署需在仓库 Settings → Pages 中将 Source 设为 GitHub Actions;项目站点需设置 base: "/repo/"

查看仓库使用说明

授权与来源资料

使用条件与限制

免费使用 · 保留许可声明

本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。

使用时需要遵守

  • 允许免费使用、修改、商用和分发该版本代码。
  • 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
  • 代码按现状提供;担保与责任限制以原许可证及适用法律为准。

额外费用与待核对事项

  • 可选的 S3 + CloudFront 部署方案会在使用者的 AWS 账户上产生费用;默认的 GitHub Pages 部署则免费。
  • 捐赠功能依赖第三方支付处理商(如 Givebutter、Zeffy、PayPal、Donorbox/Stripe),使用者需自行向处理商确认当前费率、资格与结算条款。
  • 模板不包含后端,无法自行接收表单提交;联系区只能使用 mailto 链接或粘贴第三方托管表单(如 Google Forms、Tally、Jotform)的嵌入代码。
  • S3 + CloudFront 部署工作流默认关闭,需先填写四个明确标记的占位符并配置 AWS OIDC 角色后才能启用。
  • 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
  • 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
查看原文依据

Permission is hereby granted, free of charge

许可证原文

This option costs money on AWS; Pages doesn't.

README 原文

Confirm current fees, eligibility, and payout terms directly with them.

README 原文

This kit doesn't ship a backend — there's no server of its own to receive a form submission.

README 原文

It ships switched off until you fill in four clearly-marked placeholders.

README 原文
https://github.com/lentago/monarda/blob/main/LICENSEhttps://github.com/lentago/monarda/blob/main/README.md

DeepSeek 根据仓库许可证和 README 整理 ·2026-10-01。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。

项目核对记录与介绍依据

模板资料

来源平台
GitHub
资料与维护参考分
资料较完整 · 80 / 100
技术栈
Astro
网站类型
企业官网
这个分数如何计算

本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。

这个项目需要核对什么

记录的仓库更新时间
2026-10-01
截图检查日期
2026-10-01

已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。

目录记录的主要技术栈是 Astro。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。

查看具体选型方法 →

介绍的制作与核对状态

介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。

已完成服务器许可规则与 AI 来源核对;未经过人工编辑审核。

查看当时使用的来源资料

SHA-256: 2a6e4e32850553491c3369bca511bb57780a17cbc2b43f327bb7a5f3b01e7d6b

2026-10-01T15:28:55.014Z

来源文件 / 仓库
<!-- Lentago Labs brand header — generated by lentago/.github → brand/generate.py.
     Regenerate there; do not hand-edit the banner or badge URLs. -->
<a href="https://lentago.dev"><img src="./assets/banner.svg" alt="monarda — campaign-site kit: fast static Astro site + timed deploy runbook, into your own account" width="100%"></a>

[![main](https://img.shields.io/github/check-runs/lentago/monarda/main?style=flat-square&labelColor=0e2b1a&color=1b4b2e&label=main)](https://github.com/lentago/monarda/actions) [![License](https://img.shields.io/github/license/lentago/monarda?style=flat-square&labelColor=0e2b1a&color=1b4b2e)](https://github.com/lentago/monarda/blob/main/LICENSE) [![Ask DeepWiki](https://img.shields.io/badge/Ask-DeepWiki-1b4b2e?style=flat-square&labelColor=0e2b1a&logo=readthedocs&logoColor=E0A81C)](https://deepwiki.com/lentago/monarda)

![Template](https://img.shields.io/badge/Template-1b4b2e?style=flat-square&labelColor=0e2b1a) ![Astro](https://img.shields.io/badge/Astro-1b4b2e?style=flat-square&labelColor=0e2b1a) ![MIT](https://img.shields.io/badge/MIT-1b4b2e?style=flat-square&labelColor=0e2b1a)

# monarda — campaign-site kit

A ready-to-run **fundraising campaign website**: a fast, static, accessible
page you set up by editing **one file**. Workflows deploy it to **your own**
GitHub Pages or AWS account — no server to run, no card data to handle, and
nothing hosted by anyone but you.

**Authorship:** The code, prompts, and documentation in this repo are co-written
with [Claude](https://claude.ai) (Anthropic). I direct the work and review the
output; Claude writes the code and prose. I'm an infrastructure operator, not a
software engineer — please don't read this repo as a portfolio of coding ability.

---

This README has two readers. Find yours:

- **[For the client](#for-the-client--what-you-get-and-what-you-own)** — this
  is your campaign, and this site will be yours.
- **[For the operator](#for-the-operator--running-the-dry-run)** — you're
  standing the site up for someone else's campaign.

---

## For the client — what you get, and what you own

**New here?** Start with [`ADOPTION.md`](ADOPTION.md) — it walks through
everything you need in one place: what you'll need before you start, the intake
questions, the deploy drill, and how to take the site down later if you ever
need to.

**What you get:** one page for your campaign, with four sections — a hero (your
campaign name, tagline, goal, deadline, and an optional progress bar), your
story, a **donate** button or widget hosted by your payment processor, and a
**contact / volunteer** section. It's built as plain static HTML with system
fonts, no trackers, and no JavaScript running in anyone's browser, so it loads
fast and scores well on Lighthouse — Google's page-speed and accessibility
checker.

**What you own — everything:**

| Thing | Who owns it |
|---|---|
| This GitHub repository | **You** |
| The live website + domain | **You** |
| Your payment processor account + the money | **You** |
| Your AWS account (only if you choose the S3 option) | **You** |

The site lives **in your account** and runs from there. It doesn't depend on us
to keep working, and we don't host it, hold your funds, or see your donor data.

**A note on payments and safety.** This kit **never touches card data.** The
donate section either links to your processor's hosted donate page or embeds
their widget, so the payment itself happens on the processor's own secure,
PCI-compliant pages — PCI being the card industry's security standard.
That's deliberate: your money and your compliance obligations stay with the
processor, not with this website.

### Edit one file

Everything about your campaign lives in [`campaign.config.ts`](campaign.config.ts):
name, tagline, goal, deadline, story, colors, donate widget, and contact info.
Open it, fill in your details, save. The full field reference is in
[`src/config.ts`](src/config.ts).

```bash
npm install     # once
npm run dev     # preview locally at the printed URL
npm run build   # produce the static site in ./dist
```

### Choosing a processor

Pick any processor that can give you either an **embed snippet** (a block of
HTML you paste in) or a **donate link**. Set the matching field —
`donate.embedHtml` or `donate.buttonUrl` — in the config. A few common,
no-backend options, as examples only — choose whatever fits your campaign, we
don't endorse any one of them:

| Processor | How you wire it | Notes |
|---|---|---|
| **Givebutter** | Paste their widget/embed code into `donate.embedHtml`, or use your campaign URL as `donate.buttonUrl`. | Popular for nonprofits/campaigns; hosted forms + embeds. |
| **Zeffy** | Paste the embed `<iframe>` into `donate.embedHtml`, or link the form URL. | Advertises zero platform fees. |
| **PayPal** | Use a PayPal donate-button link or hosted button as `donate.buttonUrl`. | Widely recognized; simple link-button. |
| **Donorbox / Stripe Payment Link** | Paste the embed into `donate.embedHtml`, or link the hosted page. | Both provide hosted, embeddable donation pages. |

Whichever you pick, the payment itself happens on the processor's pages, not
here. Confirm current fees, eligibility, and payout terms directly with them.

### Contact & volunteers

This kit doesn't ship a backend — there's no server of its own to receive a
form submission. In the config, set `contact.email` (renders a `mailto:`
button, the kind that opens the visitor's email app) and/or paste a hosted
form embed (Google Forms, Tally, Jotform) into `contact.formEmbedHtml`.

### Deploying (your account, your choice)

- **GitHub Pages — free, the default.** GitHub's own free static-site hosting.
  In your repo, go to Settings → Pages → Source = *GitHub Actions*, then push
  to `main`. [`deploy-pages.yml`](.github/workflows/deploy-pages.yml) builds
  and publishes it for you. For a project site (`you.github.io/repo/`), set
  `base: "/repo/"` in the config.
- **S3 + CloudFront — the paid variant.** Amazon's storage and
  content-delivery services, for a custom domain with a CDN — a network of
  servers that serve your site from somewhere close to each visitor. See
  [`deploy-s3.yml`](.github/workflows/deploy-s3.yml): it proves its identity to
  **your** AWS account with short-lived GitHub OIDC — a sign-in method that
  needs no stored password or key — so there are **no long-lived AWS keys**
  anywhere in this kit. It syncs to S3 and optionally clears the CloudFront
  cache. It ships switched off until you fill in four clearly-marked
  placeholders. This option costs money on AWS; Pages doesn't.

## For the operator — running the dry-run

Two documents drive an engagement with a client:

1. [`INTAKE.md`](INTAKE.md) — the one-page questionnaire. Every answer maps to a
   `campaign.config.ts` field or a setup step. Fill it in with the client first.
2. [`DRY-RUN.md`](DRY-RUN.md) — the timed drill: from a filled intake to a live
   site on the client's own account, with a checklist and a table to record the
   elapsed time. **The recorded time is the receipt.** Run it once before a real
   engagement to surface the slow steps (DNS, the AWS OIDC role).

The delivery rule (ADR-0007, fleet-wide): kits deploy into **client-owned**
repos/accounts — never Lentago-hosted. That's why both deploy workflows target
the client's own GitHub/AWS. See [`docs/adr/`](docs/adr/) for the decisions
behind the donate-embed and client-ownership design.

## What's here

- [`campaign.config.ts`](campaign.config.ts) — the one file a client edits
- [`src/`](src/) — the Astro site (layout, four section components, styles)
- [`.github/workflows/deploy-pages.yml`](.github/workflows/deploy-pages.yml) — free GitHub Pages deploy
- [`.github/workflows/deploy-s3.yml`](.github/workflows/deploy-s3.yml) — opt-in S3 + CloudFront deploy (OIDC, no static keys)
- [`.github/workflows/build-check.yml`](.github/workflows/build-check.yml) — PR gate: type check, build, WCAG 2 AA (pa11y)
- [`INTAKE.md`](INTAKE.md) · [`DRY-RUN.md`](DRY-RUN.md) — intake questionnaire and timed runbook
- [`docs/adr/`](docs/adr/) — architecture decision records

---

> 🌱 **Lentago Labs** is a pro-bono operations practice for organizations that
> run on volunteers, donations, and one overworked tech person. Everything here
> is free to take, and we practice what we publish: our own estate runs this
> way, in the open. Start at the [org profile](https://github.com/lentago), and
> read this repo on [DeepWiki](https://deepwiki.com/lentago/monarda).

<!--
  This is a GitHub template repo. "Use this template" copies these FILES into a
  new client repo; it does not copy repo settings. Fleet settings (merge button,
  topics, branch ruleset) are applied separately — see the fleet's ops docs.
-->
反馈内容错误

看看同类模板

对比同技术栈与用途的模板,找到更适合的视觉与内容结构。