Description
Sprigly gives practitioners a structured way to guide their clients through a journey, and gives clients a beautiful portal where they can see exactly where they are, complete milestones, and write reflections.
Whether you’re a life coach, personal trainer, mentor, tutor, instructor, teacher, nutritionist, or any kind of practitioner, Sprigly replaces scattered emails and spreadsheets with a clear, trackable progress experience your clients will love.
How it works:
- You create a Journey, a structured programme with named milestones (e.g. “Week 1 – Setting Your Foundation”)
- You assign clients to that journey
- Clients log in at
/portal/on your WordPress site and see their journey, milestone by milestone - Clients complete milestones and write rich-text reflections
- You get notified when clients complete milestones (via the welcome email or the Pro upgrade for richer events)
- Everyone can see exactly how far along the journey they are
What’s included in Sprigly (free, uncapped):
- Unlimited journeys, clients, milestones
- Branded client portal at
/portal/ - Custom portal name, navigation logo, and brand colour
- Portal welcome message at the top of every client’s dashboard
- Journey Preview, see exactly how your clients will see a journey before you assign it (signed 1-hour link)
- Welcome email when a new client account is created (always on)
- Rich-text editor for milestone descriptions
- Video URL embeds on milestone descriptions (YouTube, Vimeo)
- Plain-text and clickable-URL reflections (Pro adds the rich-media embed)
- Image lightbox in the portal
- Standard milestone type with immediate unlock
- Reflection privacy: file proxy +
.htaccesshardening + media library filter - Self-hosted Poppins typography (no Google Fonts call-out)
- Built-in SMTP plugin detection, test-email tool, bug-report form
- Designated Sprigly Owner so multiple admins on one site can’t accidentally manage each other’s data
- Mobile-responsive admin and portal
Built for:
- Life coaches running structured programmes
- Personal trainers with weekly check-ins
- Mentors guiding clients through structured growth
- Tutors and music teachers running multi-week courses
- Nutritionists tracking client progress
- Instructors, business coaches, and anyone running multi-step client work
Available as a paid upgrade (Sprigly Pro, sold separately):
Sprigly Pro is a separate plugin available from sprigly.co that adds the practitioner toolkit on top of Sprigly Lite:
- Authoring and workflow: checkpoint sign-offs, scheduled milestone unlocks, per-milestone custom check-in fields (7 input types) with required-field validation, Require Reflection toggle, sequential-only journeys, duplicate journey/milestone, bulk-add milestones
- Client experience: Resources library (PDFs, links, videos attached to journeys or specific milestones), practitioner notes per client and per milestone, video URL embeds in reflection bodies, file uploads on reflections (image, PDF, doc), re-enrol, pause, resend welcome
- Reports and data: branded PDF Progress Reports, JSON export and import, Pro insights dashboard widget (pending sign-offs, average completion, reflections this week vs last)
- Communications: 7 additional email events with per-event toggles (milestone completed, journey assigned, journey completed, reflection submitted, sign-off requested, practitioner note, checkpoint signed off), and a branded login page that matches your portal
- Multi-practitioner Team plan: up to 5 practitioner seats with strict per-practitioner data isolation, branded invite emails, ownership transfer with a signed time-limited confirmation link
- Branding: hide the “Powered by Sprigly” footer
Pro requires Sprigly to be installed and active. Learn more at https://sprigly.co/pricing/.
External Services
Sprigly is designed to keep your client data on your own WordPress installation. Plugin emails are sent through your site’s own wp_mail() (which you can route through any SMTP plugin you choose), and the plugin’s typography is loaded from font files that ship inside the plugin (no Google Fonts request, no preconnect).
There are two narrow exceptions where the plugin reaches out to a third party. Both are documented below.
1. YouTube and Vimeo oEmbed (only when you paste a YouTube or Vimeo URL into a milestone)
When a practitioner pastes a YouTube or Vimeo video URL into a milestone’s “Video URL” field, Sprigly uses WordPress’s built-in oEmbed system (wp_oembed_get()) to fetch the embed metadata so the milestone page can show the video. This sends one HTTP request to the relevant provider’s oEmbed endpoint to retrieve the iframe HTML; the provider sees the milestone’s video URL plus a referrer header from your site. The response is cached by WordPress for 24 hours, so subsequent page loads do not re-fetch.
- What is sent: the video URL the practitioner pasted (and the standard request headers WordPress emits, including a referrer pointing at your site).
- When it is sent: when a portal page or admin page renders a milestone that contains a YouTube or Vimeo URL, and only on the first render within the 24-hour cache window.
- Service providers and policies:
- YouTube (Google LLC), https://policies.google.com/terms, https://policies.google.com/privacy
- Vimeo, https://vimeo.com/terms, https://vimeo.com/privacy
The feature is opt-in by behaviour: pasting a video URL into a milestone is the only way to trigger it. Leave the field blank and Sprigly never contacts either service.
2. Bug report email (only when you click “Send Bug Report”)
The optional Report a Bug form in Sprigly, Settings, Tools sends a single email through your site’s own wp_mail() to the Sprigly support address. The form is never submitted automatically. When you click the button, the email contains:
- The description you typed in the form
- The screenshot you attached, if any
-
The System Information block: Sprigly version, WordPress version, PHP version, site URL, active theme name, and the name of any SMTP plugin you have installed
-
What is sent: only what you typed plus the System Information block above.
- When it is sent: only when you click “Send Bug Report”.
- Service provider: Sprigly support (https://sprigly.co/), terms https://sprigly.co/terms-and-conditions/, privacy https://sprigly.co/privacy-policy/.
Sprigly’s Privacy Policy: https://sprigly.co/privacy-policy/
Sprigly’s Terms and Conditions: https://sprigly.co/terms/
Screenshots

Client portal dashboard, a branded space showing the active journey, progress ring, recent milestones, and notes from the practitioner. 
Client journey page, with a visual milestone tracker showing exactly where the client is and what’s next. 
Client milestone page, with the practitioner’s guidance and an embedded video for the week. 
Client reflections, every entry the client has written across their journeys with milestone context and a jump-back link. 
Practitioner dashboard, with at-a-glance pending sign-offs, average completion, weekly reflections, and per-client progress. 
Journey editor, with milestone ordering, role label, and a one-click Preview Journey button so practitioners see exactly what their clients will see. 
Milestone editor, with a rich-text description editor and quick reordering of every step in the journey. 
Enrolments, grouped by journey with per-client progress bars, status, and one-click resend welcome email. 
Branding settings, where you pick a portal theme (Classic / Studio / Focus), upload logos, and set the brand colour used across the portal and email headers. 
Backup/Restore, with nightly auto-snapshots and reversible restore for safe data recovery.
Installation
- Upload the plugin zip via Plugins Add New Upload Plugin, or install directly from the WordPress Plugin Directory
- Click Activate
- Go to Sprigly Settings Branding and set your portal name, logo, and brand colour
- Go to Sprigly Settings Tools and send a test email to confirm delivery
- Create your first journey at Sprigly Journeys Add New
- Add a client at Sprigly Clients Add / Edit Client and assign them to a journey
- The client receives a welcome email with their portal login link
Important: Set your WordPress permalink structure to Post name (Settings Permalinks Post name) before activating Sprigly. This is required for the /portal/ URL to work correctly.
Recommended: Install and configure an SMTP plugin (WP Mail SMTP, Post SMTP, FluentSMTP, or Easy WP SMTP) to ensure reliable email delivery. By default, WordPress sends mail through your hosting server, which can be filtered or junked by Gmail/Outlook/Yahoo. Sprigly detects an active SMTP plugin and shows its status in Sprigly Settings Tools.
FAQ
-
Does Sprigly work with any WordPress theme?
-
Yes. The client portal at
/portal/is fully self-contained and does not inherit your theme’s styles. It works correctly with any theme — including page builders like Divi, Elementor, and Beaver Builder. -
Do clients need a WordPress account?
-
Yes, each client has a WordPress user account with the
sprigly_clientrole. This role gives them access only to the client portal — they cannot access wp-admin. Sprigly creates the account automatically when you add a client. -
Where is the client portal?
-
At
/portal/on your WordPress site (e.g.yourdomain.com/portal/). You can find the full URL in Sprigly Settings Portal. Share this link with your clients. -
What happens to my data if I deactivate the plugin?
-
Nothing, by default. The “Protect data on uninstall” setting is ON by default, which means all your journeys, clients, milestones, and reflections are kept in the database even if the plugin is deactivated or deleted. You can change this behaviour in Sprigly Settings Tools.
-
Does Sprigly work with my SMTP plugin?
-
Yes. Sprigly detects WP Mail SMTP, Post SMTP, FluentSMTP, and Easy WP SMTP automatically and routes all email through whichever is active. We strongly recommend installing an SMTP plugin for reliable delivery.
-
Can I use my own branding?
-
Yes. You can set a custom portal name, upload separate logos for the login page and the portal nav bar, set logo heights, and pick a primary brand colour (used for buttons, progress bars, and accents in the portal and emails).
-
Can I change how I’m referred to in client emails?
-
Yes. When creating or editing a journey, set the “Client-facing role” field to whatever suits your profession, coach, trainer, mentor, teacher, tutor, instructor, guide, etc. This replaces the default “practitioner” in all client-facing emails for that journey. A suggestion is auto-filled based on the Industry/Category you select, but you can change it to anything you like.
-
What does the paid Sprigly Pro plugin add?
-
Sprigly Pro (sold separately at sprigly.co) layers on the practitioner toolkit: checkpoint sign-offs, scheduled milestone unlocks, custom check-in fields, a Resources library, practitioner notes, file uploads on reflections, branded PDF progress reports, JSON export and import, multi-practitioner Team support, and a branded login page. See https://sprigly.co/pricing/ for the full feature list.
-
Does Sprigly contact any external services?
-
Sprigly keeps your client data on your own WordPress installation, sends emails through your own site’s
wp_mail(), and ships its display font (Poppins) inside the plugin so the portal does not contact Google Fonts.There are two narrow situations where the plugin does reach out to a third party, both opt-in by behaviour:
- When a practitioner pastes a YouTube or Vimeo URL into a milestone’s Video URL field, Sprigly uses WordPress’s standard
wp_oembed_get()to fetch the embed metadata from YouTube or Vimeo so the video can render. The response is cached for 24 hours. - When you click the optional “Send Bug Report” button under Settings, Tools, Sprigly emails Sprigly support with the description you typed plus a System Information block.
Both are documented in full in the External Services section of this readme, including Terms and Privacy links for each provider.
- When a practitioner pastes a YouTube or Vimeo URL into a milestone’s Video URL field, Sprigly uses WordPress’s standard
-
Is Sprigly GDPR-compliant?
-
Sprigly is built to support GDPR compliance. Client data is stored only on your own WordPress installation. You remain the data controller for all client data on your site.
-
How do I back up my Sprigly data?
-
Sprigly ships a built-in Safety & Backups page (Sprigly, Safety & Backups, admin-only). It takes snapshots of all nine Sprigly DB tables (journeys, milestones, clients, progress, reflections, notes, resources, custom fields, field responses) directly inside your own database. Nothing is sent off-site. By default the plugin takes a snapshot every night and after every Sprigly plugin update, plus you can take a manual snapshot any time. Restores are reversible (a pre-restore safety snapshot is taken automatically). Both automatic behaviours can be disabled in the Settings tab. This is a safety net for routine “before I touch this” moments, your hosting provider’s full-site backups remain the authoritative recovery path for catastrophic loss.
-
What are the hosting requirements?
-
- PHP 7.4 or higher (PHP 8.0+ recommended)
- WordPress 6.0 or higher
- MySQL 5.7+ or MariaDB 10.4+
- HTTPS (SSL certificate) — required for the client portal login
Reviews
There are no reviews for this plugin.
Contributors & Developers
“Sprigly” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Sprigly” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.8.0
- New: Journey Preview is now a full multi-page tour rendered inside the practitioner’s chosen theme. Dashboard, Current Journey, Milestone detail (with real description, video, resources, check-in fields), and Reflections all browseable from the preview header. Interactive controls (reflection editor, Mark Complete, Pro check-in fields, checkpoint Request Sign-off) render visibly but are non-interactive so the practitioner can’t accidentally save against a non-existent enrolment.
- New: Tier-aware default portal theme on first install. Lite-only installs spotlight Studio (highlight theme over Classic); Pro-active installs spotlight Focus (Pro-exclusive theme). Saved theme choices always win, so existing installs see no change.
- Changed: Studio milestone page Mark Complete moved from top-of-page bar to bottom (under reflection + check-in sections), matching Classic and Focus. More natural “do the steps, then commit” flow.
- Changed: Studio dashboard Recent Activity section (Latest Milestones + From Your Practitioner panels) now always renders in Journey Preview with empty-state copy so the preview shows the full dashboard layout. From Your Practitioner stays Pro-gated.
- Changed: Focus sidebar in Journey Preview lists the previewed journey instead of “No journeys yet”; Up Next card surfaces the first milestone of the previewed journey.
- Changed: PREVIEW banner trimmed (padding 14px to 8px) and “Back to Editor” link colour fixed (was near-invisible white-on-cream, now dark brown).
- Fixed: Resources section in portal milestone + journey views correctly gated on Pro license. Lite-only installs no longer render Resources even if stale DB rows exist from a previous Pro install (WP.org trialware compliance).
- Fixed: Pro Resources page on the Focus theme rendered journey + milestone heading links in browser-default blue / visited-purple. Headings now stay in the Focus ink colour with a hover state surfacing interactivity.
- Fixed: Pro check-in rating buttons (1-N scale) rendered as tight 44px squares on the Focus theme because Focus lacked the dedicated
.sp-rating-btnCSS. Added Focus equivalents (full-width stretched buttons, brand-darker selected state, hover lift) so the rating row reads polished across both Pro themes. - Fixed: Focus theme (Pro-exclusive) now falls back to Studio when Pro is deactivated or lapsed. The saved option value is preserved so re-activating Pro brings Focus back without re-picking. The Branding picker mirrors the render so the radio reflects what clients actually see.
- Compat: Tested up to WordPress 7.0.
Earlier releases
- For the full Lite changelog, see CHANGELOG.md inside the plugin folder. Older entries are kept in a separate file so the readme.txt Changelog section fits under WordPress.org’s 5000-character limit.
