Dandelion is a fair source project. View the code on Github

Commits on Oct 11, 2025
6088eee

💬 Add pricing hint to Mailgun prompt and refine free-limit warning

2ca147d

💬 Update copy from “free limit” to “free gift” to soften tone

5ff0113

💬 (organisations/build.erb): update mailgun warning copy to clarify free tier

cfaf680

🔒️ (pmails): prevent deletion of already-sent emails by returning 403
🚸 (pmails): hide delete button for sent emails to avoid user confusion

973c01e

🐛 Fix welcome emails when Mailgun key missing

  • Show warning banner in UI when no key is configured
  • Guard mailer calls to prevent runtime errors
e00fa97

🐛 Rename env var from FREE_MAILGUN_SUBSCRIBER_LIMIT to MAILGUN_FREE_SUBSCRIBER_LIMIT for consistency

d6300d8

🐛 (organisations/build.erb): use mailgun_enabled? helper instead of checking api_key directly
🐛 (pmails/_header.erb): hide Mailgun stats & duplicate/send buttons when mailgun is not enabled
🐛 (pmails/pmails.erb): rely on mailgun_enabled? and show clearer free-limit warning
♻️ (organisation.rb): rename free_mailgun? logic to respect FREE_MAILGUN_SUBSCRIBER_LIMIT env var
✨ (pmail.rb): add sendable? helper to centralise mail-sending permission

61ae3ac

🐛 Fix syntax error in ERB partial call

b6bbc87

🔧 Replace ENV['MAILGUN_API_KEY'] check with Padrino.env == :production

Ensure emails are only sent in production environment instead of relying on presence of MAILGUN_API_KEY environment variable.

Commits on Oct 10, 2025
c34e8bd

🐛 (pmail.rb): remove conditional API key check from finalize call

65659e8

🐛 Fix free_mailgun? check to use sent_at instead of created_at

002848a

🐛 Fix conditional nesting for free_mailgun? branch

ad6fbe6

✨ Add free Mailgun tier for small organisations

  • Allow organisations with ≤500 accounts and no recent emails to send via a shared Mailgun domain without providing their own key
  • Show "New message" button when free_mailgun? is true
  • Route these mails through the shared domain using the app's MAILGUN_API_KEY and MAILGUN_PMAILS_HOST
df8fcdc

✨ Add referrer relationship to Organisation - Add a lookup field to credit the account that referred the organisation

568aa38

💄 (emails): remove inline font-size style and use semantic blockquote for message body

19d0cbb

🚚 Rename method from update_event_feedbacks_as_facilitator_counts to update_event_feedbacks_as_facilitator_details

45088c5

🐛 (stats): move organisation_id lookup before date array to avoid nil error when ENV['LEAD_ORG_SLUG'] missing

ac6c26b

♻️ Replace verbose aggregation pipelines with concise Ruby queries

5b68799

♻️ (stats): refactor charts to use aggregation queries

c67aa08

♻️ Extract inline stats queries into reusable partials