Skip to content

Donation Pages

Donation pages are the public-facing forms where donors submit payments. Each foundation can have multiple pages, and Miranda provides six purpose-specific page types with unique editor fields and display logic.

FieldTypeDescription
idUUIDPrimary key
foundation_idUUIDOwning foundation
titlestringPage title (e.g., “Annual Fund”)
slugstringURL-safe identifier for the page
typeDonationPageTypePage variant (see below)
type_configJSON?Type-specific configuration
descriptionstring?Page description / appeal text
hero_image_pathstring?Hero image in Supabase storage
suggested_amountsJSON?Array of suggested amounts in cents
allow_custom_amountbooleanWhether donors can enter a custom amount
allow_recurringbooleanWhether recurring giving is enabled
allow_donor_covers_feesbooleanWhether donors can opt to cover fees
custom_domainstring?Custom domain (Pro plan only)
statusDonationPageStatusdraft, published, offline

Unrestricted giving to support the foundation’s mission. No additional configuration fields.

Donations fund a specific scholarship program.

Config fieldTypeDescription
scholarship_idselectLinked scholarship (required)
show_scholarship_detailsbooleanShow scholarship details on the page (default: true)

Time-bound fundraising campaign with a goal and progress tracking.

Config fieldTypeDescription
goal_amountcurrencyFundraising goal (required)
end_datedateCampaign end date
show_progress_barbooleanDisplay progress bar (default: true)
show_donor_countbooleanDisplay donor count (default: true)

Giving in memory or honor of someone.

Config fieldTypeDescription
honoree_nametextIn memory/honor of (required)
dedication_messagetextareaDedication message
honoree_photoimagePhoto upload
notify_family_emailemailEmail to notify of donations
tribute_typeselectin_memory or in_honor (default: in_memory)

Urgent, time-sensitive fundraising need.

Config fieldTypeDescription
urgency_messagetextUrgency message displayed on page
expiration_datedateWhen the appeal expires
goal_amountcurrencyAmount needed
show_share_promptbooleanPrompt donors to share (default: true)

Focused on building recurring monthly support.

Config fieldTypeDescription
impact_per_monthtextareaMonthly impact message
recurring_onlybooleanDisable one-time donations (default: false)
suggested_monthlyamountsSuggested monthly amounts (default: [10, 25, 50, 100])
StatusDescription
draftPage is being configured, not publicly accessible
publishedPage is live and accepting donations
offlinePage is hidden from public but retains its configuration

Published donation pages are accessible at:

  • Subdomain: yourfoundation.miranda.gives/donate/page-slug
  • Direct path: miranda.foundation/donate/{foundation-slug}

Donation pages are server-rendered Blade templates, not SPA routes. This ensures fast initial loads and SEO indexability. Card data is collected client-side via Stripe.js Elements (PCI SAQ-A).

PlanMax donation pages
Starter1
Growth5
ProUnlimited
MethodPathDescription
GET/api/donation-pagesList all donation pages
POST/api/donation-pagesCreate a donation page
GET/api/donation-pages/{id}Show a donation page
PUT/api/donation-pages/{id}Update a donation page
DELETE/api/donation-pages/{id}Delete a donation page
RelationshipTypeTarget
foundation()BelongsToFoundation
donations()HasManyDonation
scholarship()BelongsToScholarship (via type_config->scholarship_id)