Welcome to Youth Ministry — your home base for running a youth ministry. This guide walks you through your first launch and helps you set up the basics so the rest of the app feels like yours.
What the app is for
Youth Ministry is designed to be the single place a youth minister manages the things they juggle every week: upcoming events, the students in their community, budget decisions, and their prayer life. Rather than bouncing between a calendar, a spreadsheet, a contact list, and a notebook, the app pulls these threads together so you can stay present with students instead of wrestling with tools.
The app is built for iPhone, iPad, and Mac, and your data syncs between your devices through iCloud.
Your first launch
The first time you open the app, you’ll see a short onboarding flow. Take a minute to fill it in — the answers shape how dashboards, filters, and suggestions behave later:
Your name and ministry. Used in headers and exports.
Fiscal year start. Controls how the Budget section groups events and line items. If your church runs on a July–June year, set it here.
Default engagement tiers. You can use the defaults or tailor the tiers that describe how involved a student is in your ministry.
You can change any of this later under Settings.
The five areas of the app
Once onboarding is done, you’ll land on the Dashboard. The app is organized into five main areas:
Dashboard — A snapshot of what needs your attention today: upcoming events, pressing tasks, students to reach out to, and prayer reminders.
Events — Every gathering you plan, from weekly meetings to multi-day retreats and mission trips.
Roster — The students, leaders, parents, and guests in your community.
Budget — Annual budgets and how your real spending tracks against them.
Prayer — A contemplative space for the prayer life that sits behind the work.
On iPhone these appear as tabs at the bottom of the screen. On iPad and Mac they appear as a sidebar you can collapse.
What to do next
A great first session looks like this:
Add a handful of students to the Roster (or jump to the Importing a Roster guide to bring them in from a CSV).
Create one upcoming event — something simple like a weekly meeting — so you can see how events work.
Visit Settings and confirm your fiscal year, engagement tiers, and any custom event types you want to define.
You don’t have to set everything up at once. The app is designed so you can add detail as your ministry year unfolds.
The tools that you use to do a task shape the way you think about the nature of the task.
This is not a new insight. After all, most people have heard the axiom: “If all you have is a hammer, everything looks like a nail.”
That principle is part of the reason for the coding work I’ve done adjacent to my work as a minister. I wanted to dive into the process of tool-building, because it helped me better understand the nature of the work itself. Sermon Design was the first foray into trying to build a tool for myself and my colleagues. A couple of observations led me into that rabbit hole.
If I went about the work of trying to create a sermon in a word processor, then I tended to approach the sermon like it was an essay. I wrote the sermon, making choices of style and rhetoric like a writer. I would use very precise language, which is fine, but the language was often dense—something that helps good writing feel powerful, but makes oral delivery feel heavy and heady. A densely written sermon often comes off as too intellectual in the actual moment of its delivery. They are harder to listen to because the hearer has to process everything as quickly as it is read, and sermons written like that often don’t give the hearer the chance to process. Writing for speaking requires a great amount of experience if the spoken word is to feel natural in the moment.
There’s much more to be said about the differences between written and spoken media, but for my purposes here, I want to simply note that the tool for writing—the word processor—subtly influences the kind of thing produced in the end. Indeed, different kinds of word processing apps probably influence the process sin their own way—Word, Pages, and Google Docs1 all exert slightly different bits of influence on the writers that use them.
On the other hand, sometimes I’ve thought through what I want to do in a sermon by plotting it directly in slide design software. My app of choice is Keynote, but the general influence of building a sermon there will be similar to using its siblings PowerPoint, Google Slides, or something like Canva2. Depending on the version of the software and the preacher’s usage, it may train the preacher to think about the sermon as a sequence of points, or perhaps as a presentation of information. That sort of process will tend to create sermons with flow and structure, but which may be much looser in their detail.
I’ll leave it to the reader to consider whether “sermon as essay” or “sermon as presentation” is better, but the point is that the kind of tool used to prepare the sermon will heavily influence what the sermon becomes. That observation is what drove me to really consider trying to create a tool that reflected the kind of process that would lead to the kind of sermon I wanted to create.
The process of coding forced me to slow down and consider what a sermon actually is. It was a vehicle for exploring how the process of creating it contributes to what it eventually becomes. It made me think of where a sermon comes from, from the initial space of discerning what our church’s preaching schedule should look like to the release of the manuscript that will become the preacher’s guide in the moment of the sermon itself. It tries to honor the process of carefully listening to the text and considering the process of building rhetoric for the specific purposes of a sermon.
In some ways, the app that resulted from that process of coding and reflecting is aspirational. It’s a process I’m reaching towards each week, even if the various stages are somewhat incomplete. The app is also pretty idiosyncratic, meaning that it reflects my ideal process, not necessarily anybody else’s. This app is sort of my contribution to homiletical instruction; it’s a sort of tutor in the process of creating a sermon.
To mix axioms, I wouldn’t argue that everyone needs to reinvent the hammer. You don’t have to learn to code to consider the tools you use and the influence they have on you. But I do think that process of discerning the way we approach our work can give us insight into the work itself. Ideally, we come out of that process making sure that our proper task is being pursued with proper tools, instead of thoughtlessly letting the technologies available to us, in vogue at the moment, drive the way we go about the work of preaching.
Sermon Design 3 is an app for creating intentional sermons. It’s available on the macOS and iOS app stores.
There are many more, of course. For example, I’ve used Ulysses, a minimalist WP for years. Ironically, it took me a second to know how to insert a footnote here because I’m writing in my blog’s web editor, and the feature was buried. I almost gave up, which would have been an example of the tool and its assumptions changing what I wanted to create! This happens all the time, where the tool subconsciously shapes the product by making some things easier and some things harder. ↩︎
Again, though I’m speaking of the broad effect of this kind of app, the particularities matter! The features that each of these apps brings to the front, and which are buried will subtly influence the way the preacher thinks about the nature of the sermon being created. ↩︎
Ministry Goals is a goal-tracking app for iPhone, iPad, and Mac designed to help you set, measure, and stay accountable to the goals that matter most. It supports a variety of metric types — streaks, cumulative counts, cadence targets, score averages, and more — so you can track progress the way that fits your work.Download Ministry Goals from the App Store:
Ministry Goals integrates with TRMNL, an e-ink display device that gives you a calm, always-visible dashboard of your goal progress. This guide walks you through setting up a TRMNL Private Plugin to display data pushed from Ministry Goals.
Note: TRMNL integration is available in Ministry Goals version 1.2 and later. If you don’t see the TRMNL options in Settings, please update to the latest version from the App Store.
What You Need
A TRMNL device (any model) connected to your TRMNL account
Ministry Goals installed on your iPhone, iPad, or Mac
Navigate to Plugins and search for “Private Plugin.”
Click New to create a new Private Plugin.
Give it a name (e.g., “Ministry Goals — Books Read”).
Set the Strategy to Webhook.
Click Save. TRMNL will generate a Webhook URL for you.
Copy the Webhook URL — you’ll need it in the next step.
Step 2: Enable TRMNL in Ministry Goals
Open Ministry Goals and go to Settings.
Find the TRMNL Integration section and toggle it on.
Paste your Webhook URL into the “TRMNL Webhook URL” field. This becomes the default URL for all goals.
Step 3: Enable a Goal for TRMNL
Open any Goal’s detail view in Ministry Goals.
Scroll to the TRMNL section and toggle “Send to TRMNL” on.
(Optional) If you want this goal to use a different Private Plugin, paste a different Webhook URL in the per-goal field. Otherwise it will use the default URL from Settings.
Tap “Push This Goal Now” to send data immediately, or enable auto-push on app open.
Step 4: Add the Markup Template
Back in your TRMNL Private Plugin, click “Edit Markup.” You’ll see tabs for different layout sizes (Full, Half Horizontal, etc.). Paste the appropriate recipe from the section below into the Full tab. TRMNL uses Liquid templating, so the {{ variable }} placeholders will be replaced with your actual goal data.
Step 5: Add to Your Playlist
In your TRMNL dashboard, go to Playlists.
Add your new Private Plugin to your active playlist.
Your goal data will appear on your TRMNL device the next time it refreshes.
Tips
One plugin per goal: Each goal pushes to its own webhook URL. If you want to display multiple goals, create multiple Private Plugins and assign each one a different Webhook URL.
Rate limits: TRMNL allows up to 12 webhook pushes per hour per plugin. Ministry Goals sends data on demand or once on app open, which stays well within this limit.
Screen won’t update? TRMNL skips re-rendering when the data hasn’t changed. Make sure your goal has new activity logged, then push again.
Shared markup: If you use the same custom CSS across multiple plugins, put the <style> block in the Shared tab of the TRMNL editor so it’s available to all layout sizes.
Markup Recipes by Metric Type
Below are ready-to-paste Liquid templates for each metric type in Ministry Goals. Each recipe is designed for the Full layout (800×480). The templates use TRMNL’s framework CSS classes and include inline styles for the custom elements.
Copy the recipe for your metric type and paste it into the Full tab of your Private Plugin’s Markup Editor. Put the <style> block in the Shared tab if you plan to create multiple plugins.
Cumulative Count
Best for: Books read, people contacted, total hours logged — any metric that grows over time toward an optional target.
What it shows: A large hero number in the center with the unit label underneath. When a target is set, a progress bar appears at the bottom of the screen with the percentage positioned above the fill point.
Best for: Daily prayer, Bible reading, exercise — any habit where consecutive days matter.
What it shows: The current streak as a large number with “current” underneath. If the longest streak is greater, it appears in a smaller size alongside. A 14-day heat strip shows recent activity as filled (active) or empty (inactive) blocks.
Webhook fields:title, streak_current, streak_longest, streak_at_risk, recent_days (array of 1s and 0s)
Best for: Outreach visits per week, classes taught per month — any frequency-based goal within a time period.
What it shows: The current count as a hero number with the period label (e.g., “visits this week”). For targets of 31 or fewer, filled and empty pip dots provide a visual tally. Larger targets show a progress bar at the bottom instead.
Webhook fields:title, current, target, unit, period
Best for: Sermon ratings, self-assessments, satisfaction scores — any metric where you track a running average.
What it shows: The average displayed to one decimal place as the hero number, with “avg score” and the total entry count beneath. A bottom progress bar appears when a target average is set.
Webhook fields:title, average_display, average_raw, target, unit, entry_count
Best for: Visitor return rate, conversion percentages, completion ratios — any metric expressed as a proportion.
What it shows: The value as a hero number. When the unit is set to “percent” or “%”, a percent sign is appended automatically. A bottom progress bar shows progress toward the target.
Webhook fields:title, current, target, unit, is_percent
Best for: Prayer time, study sessions, exercise — any time-based goal.
What it shows: The total time formatted as hours and minutes (e.g., “12h 45m”) in a slightly smaller hero font to accommodate the longer string. A bottom progress bar appears when a target is set.
Webhook fields:title, duration_display, duration_target_display, current, target, unit
Best for: “Write 5 days per week,” “Fast 1 day per week” — goals that count the number of qualifying days within a period.
What it shows: Identical layout to Cadence Count. The current count represents qualifying days rather than occurrences, with pip dots for targets of 31 or fewer.
Uses the same Liquid template and webhook fields as Cadence Count above.
Troubleshooting
Plugin shows old data: TRMNL skips re-rendering when data hasn’t changed. Log new activity in Ministry Goals, then push again.
Screen says “No data”: Make sure you’ve pushed at least once from Ministry Goals after pasting the markup. Check that your Webhook URL matches what’s in the app’s settings.
Layout looks broken: Make sure the <style> block is included either in the markup itself or in the Shared tab. TRMNL’s framework CSS handles the base layout, but the hero-value and progress styles are custom.
JavaScript not working: Wrap any JS in document.addEventListener("DOMContentLoaded", function(e) { ... }); as recommended by TRMNL.
HTTP errors: A 429 means you’ve exceeded 12 pushes per hour for that plugin. Wait a few minutes and try again.
For more help, visit the TRMNL documentation at docs.usetrmnl.com or reach out to us through the Ministry Goals support page.