Platform Features
What a post is and how it works
The shape of a post
Every Xerish post (with the exception of victory posts) requires six fields:
- Title — short and active.
- Body — 100-300 words telling a specific story.
- Media — one real photo from your work.
- Goal amount — in dollars. The platform also tracks
goal_amount_centsinternally. - End date — when the post closes if the goal isn''t hit.
- Impact metric — name and cost-per-unit ($1 = one meal).
This is enforced by the schema rule posts_non_victory_must_be_complete. A post missing any of these will not publish.
How Givers interact
- Micro-Give tap. Default tap amounts on a post are 1¢, 2¢, 25¢, $1. One tap = one Gift.
- Give sheet. Long-press or open the Give sheet for any amount.
- Prayer. A Giver can mark a post for prayer without Giving — adds to your prayer count.
- Save. Givers can save a post to come back to later.
How posts close
Two paths to closure:
- Goal met. When cumulative Gifts (pending + completed) reach the goal, the trigger
trg_auto_close_on_goal_hitfires and the post closes immediately. No overflow is accepted — if a Giver tries to Give past the goal, the platform either rejects the Gift or clamps it to the remaining amount. - End date reached. A daily cron at 01:00 UTC closes any post whose end date has passed, regardless of how full the goal is.
Once closed, a post cannot be reopened by the Organization. Only admin can reopen, and only with a reason (audit-logged).
Post types
The schema accepts three values for post_type:
- standard — the default. A regular ask.
- campaign — a longer, larger-scope ask (see
features/campaigns). - victory — a follow-up to a closed post (see
features/victory-flow).
Doctrine: every post is "campaign-shaped" in the sense that every post has the same six required fields. The only render difference between standard and campaign is a banner above the post.
Family-only posts
Churches can mark posts is_family_only = true. These are visible only to Givers with a church_family_memberships row tying them to that church. Used for internal asks meant for the church family.