/ Feature

New collection display options

Collections now support several new display options that give them the same visual richness as video series pages:

  • Banner artwork — upload a wide banner image that appears at the top of the collection page
  • Horizontal layout — display collection items in a scrolling horizontal row
  • Vertical layout — display collection items in a stacked vertical list

These options can be configured per collection from the admin dashboard.

/ Enhancement

Improved description display across the app

We improved how descriptions are shown on app cards and collection pages to reduce awkward cutoffs and spacing issues.

Short descriptions now render more cleanly, and “Read more” behavior is more consistent when longer text is available.

/ Feature

API support for updating users

The Treefort API now supports a PATCH endpoint for updating user records. This makes it possible to sync user data from external systems.

/ Feature
BIG DEAL

API support for updating content via PATCH

The Treefort API now supports PATCH requests for content, allowing API users to update individual content fields without replacing the entire record. We’d like to thank everyong for their longsuffering usage of PUT up until now.

/ Feature

Delete users from the admin dashboard

Admins can now delete user accounts directly from the user detail view in the admin dashboard. Deleting a user removes their account and associated data. This is useful for handling user deletion requests or cleaning up test accounts.

/ Bugfix

Draft articles can now be archived

Oops - previously you couldn’t archive a draft article. This limitation wasn’t intentional, and now it has been removed!

/ Enhancement

Faster user table

We gave the admin user table a significant speed boost - clicking through pages, searching for users, and exporting data is up to 10 times faster now!

/ Enhancement

Collections included in content CSV export

The content CSV export now includes collection information for each content item. This makes it possible to see which collections a piece of content belongs to when reviewing your content library in a spreadsheet.

/ Enhancement

Faster content table loading

We improved the loading speed of the content table significantly, expecially for larger tables.

/ Enhancement

New “Content viewer” role for team members

A new “Content viewer” role is available for team members who need read-only access to your content library. Content viewers can browse and review content in the admin dashboard without the ability to make changes.

This is useful for stakeholders who need visibility into your content without editing permissions.

/ Feature

Support for third-party identity providers

Treefort apps can now delegate user management entirely to any external identity provider that supports OIDC or OAuth 2.0. This allows you to use your existing authentication infrastructure rather than Treefort’s built-in login system.

/ Feature

Push notification tokens

A user’s push notification tokens are now available via the API and the user detail view in the admin dashboard. This makes it possible to automate personalized notifications and to more easily send test notifications.

/ Feature

Coupons can now link existing Stripe subscriptions

You can now create coupon codes that link a user’s existing Stripe subscription to their Treefort account. When a user redeems the coupon, their active Stripe subscription is recognized and they receive the appropriate access.

This is useful for migrating subscribers from another platform or for scenarios where subscriptions are managed outside the app.

/ Enhancement

Archived coupon codes are now visible and can be re-enabled

Archived coupon codes are now shown in the admin dashboard (sorted to the bottom of the list) alongside active codes. You can re-enable an archived code directly from the dashboard rather than trying to create a new code with the same name and hitting an error.

A clearer error message is also shown if you attempt to create a code that conflicts with an existing archived code.

/ Enhancement

Artwork support for tags

Tags now support custom artwork that can be uploaded and removed from the tag settings in the admin dashboard.

/ Feature

Option to disable self-service registration on specific platforms

Registration can now be disabled on a per-platform basis. For example, an app can be configured to:

  • Prevent new account creation on iOS
  • Allow registration on Android and the web as normal

This can be used to comply with App Store policies for apps that do not offer in-app subscriptions.

/ Feature

Publish pages without adding them to navigation

Pages can now be published without being linked to from a tab or another page. A published but unlinked page is accessible via a direct URL but does not appear in the app’s navigation, giving you more flexibility for landing pages and promotional content.

/ Enhancement

More search results in the admin dashboard

Search in the admin dashboard now returns more results per query (100 instead of 20).

This makes it easier to find the right content without repeatedly refining your search terms.

/ Feature
BIG DEAL

Pull to refresh

Users can now pull down on the main app screens to refresh content. This updates the app code, configuration, and all content listings, ensuring users always have the latest content without needing to fully close and reopen the app.

/ Enhancement

Subscription plan details included in user export

The user CSV export now includes subscription plan details for each user: plan name, plan ID, provider, price, and billing interval. This makes it easier to segment your audience and analyze subscription data in external tools.

/ Feature

App install banners on the web app

The web app can now show app install banners, prompting users to install your native app directly from the browser. This feature can be toggled on or off from the App Settings page in the admin dashboard.

  • On Android, a native install banner is shown using the PWA install prompt
  • On iOS, a Smart App Banner is added to the page header pointing to your App Store listing

The banner only appears when a user has not yet installed the native app, making it easy to grow your native app audience from web traffic.

/ Feature

Grid layout option on custom pages

The List module on custom app pages now supports a grid layout. The full set of layout options is now:

  • 1 row — a single horizontal scrolling row
  • 2 row — two horizontal scrolling rows
  • Mixed — a large featured item alongside smaller items
  • Grid — a uniform grid, well suited for image-forward content

The list and grid layouts can also display descriptions and dates alongside artwork.

/ Enhancement

Automated App Store and Play Store submissions

We have automated the process of submitting app builds to the App Store and Google Play Store for review. This is an internal change to how we manage releases, but it means app updates — including new features and bug fixes — reach your customers more quickly and consistently.

/ Feature

New accounting role for billing access

A dedicated Accounting role is now available for billing and invoice management.

This helps teams grant finance access without broad admin permissions, improving role clarity and access control.

/ Feature
BIG DEAL

Billing management in the admin dashboard

A new Billing section is available in the admin dashboard for managing your Treefort account. From this section you can:

  • View your invoice history
  • Configure autopay
  • Update your payment method

Overdue invoices also generate an alert at the top of the dashboard so nothing is missed.

/ Feature

Account notifications in the admin dashboard

The admin dashboard now displays account-level notifications at the top of the page when action is required. We are currently using this to alert you to expired Apple agreements (you’ve likely suffered from this issue before), but plan to add more notification topics in the future.

/ Feature

Universal links on iOS and Android

Your app now supports universal links on both iOS and Android. When a user taps a link to your app’s web address — in an email, a text message, or a browser — the native app opens directly to the right page instead of loading the browser.

  • Users who have the app installed get a seamless deep-link experience
  • Users who do not have the app installed fall back gracefully to the web app
/ Feature

Custom data fields on subscription plans

Subscription plans now support custom data fields. This allows you to attach arbitrary key-value data to a plan via the API - useful for external integrations.

/ Feature

Delete endpoint for archiving content

The Treefort API now supports archiving content with a DELETE request.

This simplifies automation workflows by allowing content lifecycle updates without sending full content payloads via a PUT request.

/ Feature
BIG DEAL

Article content type

Articles are a new content type that lets you publish written content directly in your app. Each article supports a full rich text body with headings, links, and images, as well as:

  • Author and tag metadata
  • An optional audio track so users can listen instead of read
  • Full analytics, collected the same way as other content types

Articles can be organized into blogs using the new “blog” collection type.

/ Enhancement

New collection display options

Collections now have additional display configuration options in the admin dashboard. Admins can set:

  • Item size — medium or large artwork thumbnails
  • Item order — manual ordering, or automatic by newest, oldest, or alphabetical
  • Show descriptions — toggle whether item descriptions appear below artwork
  • Heading alignment — left or center alignment for the collection heading
/ Enhancement

Checkout code included in subscription webhooks

The subscription.activated webhook now includes the checkout code used during signup. This makes it easier to track which promotional or group membership code was associated with a new subscription when processing webhook events in your own systems.

/ Enhancement

Close button added to mobile audio player

The audio player on mobile now has a close button, making it easy to dismiss the player without interrupting playback. The desktop audio player already supported this.

/ Enhancement

Redesigned admin dashboard navigation

The admin dashboard has a new sidebar navigation, replacing the previous top navigation bar. Improvements include:

  • Fewer clicks to get to most pages in the dashboard
  • A collapsible sidebar toggle for more screen space when you need it
/ Feature

Short description field for content

Content items now support a short description field alongside the main description. Short descriptions are used in places where a brief summary is shown, such as content cards, keeping the display clean while the full description remains available on the content page.

/ Feature
BIG DEAL

New analytics dashboard

We’ve added a new analytics dashboard replete with charts, graphs, and additional data. New metrics includes:

  • Subscriber counts over time
  • Per-content share counts
  • Search hits and misses, showing which search terms are returning results and which are coming up empty
/ Feature

Automatic sitemaps and robots.txt

Your web app now automatically includes sitemap.xml and robots.txt files. Search engines like Google and Bing use sitemaps to discover and index your content, which can improve your app’s visibility in search results over time.

No setup is required. Theses files are generated automatically based on your published content and pages.

/ Enhancement

Schedule content for publication before processing completes

Content can now be scheduled for future publication even before media processing has finished. Once the scheduled time arrives and processing is complete, the content will become visible automatically. This allows you to set up publishing schedules in advance without waiting for uploads to finish processing - no more late nights waiting to hit the publish button!

/ Feature

Download link for directing users to your app

Your web app now includes a /download URL that automatically redirects users to the right place for their device:

  • iOS users are sent to the App Store
  • Android users are sent to the Play Store
  • If the device cannot be detected, the page shows links to all available options and a link to use the web app directly

This makes it easy to share a single link in emails or on social media when directing users to install your app.

/ Enhancement

Sliders now show all items without a limit

Sliders for video series, collections, and podcasts previously capped the number of items shown at 10-24 items (depending on the configured layout). That limit has been removed. All items in a series, collection, or podcast feed are now displayed, no matter how many there are!

/ Enhancement

Redesigned video page

The video content page has been redesigned with an improved visual layout. The thumbnail now appears in its natural aspect ratio, and the background uses the video’s color palette to create a more polished, cohesive look. This prevents unwanted cropping of artwork.

/ Feature

Custom favicon support

You can now upload a custom favicon for your web app. The favicon appears in browser tabs, bookmarks, and on the home screen when users save your web app on their device.

The favicon option is available in your app’s theme settings in the admin dashboard.

/ Enhancement

Continue watching button for video series

The play button on a video series page now shows “Continue watching” when a user has already started a season. The app automatically selects the right season based on the user’s watch history, so they can pick up exactly where they left off.

/ Feature

New video series layout and season artwork

Video series pages have a new layout with two big improvements:

  • Episode layout — team members can now choose whether episodes appear in a horizontal scrolling row or a vertical list
  • Season artwork — admins can upload a custom image for each season, which appears on the series page when users browse episodes
/ Feature

MRSS feed for content syndication

Treefort now supports an MRSS endpoint for content, allowing you to automatically sync content from Treefort to third-party services that support MRSS ingestion.

/ Feature

User detail modal

The admin dashboard now has a dedicated user detail modal that can be accessed by clicking on a record in the user table. Opening a user’s record shows their account information, subscription status, and entitlements in one place. Admins can also edit details such as the user’s email address, name, and entitlements directly from this modal.

/ Feature

Configurable date display formats

Admins can now control how dates appear across their app. A date display strategy can be set per content type in app settings, with the option to override it on individual content items. Options include:

  • A full calendar date (e.g. “January 6th, 2021”)
  • A numeric date (e.g. “1/6/2021”)
  • A relative time (e.g. “2 days ago”)
  • No date at all
/ Enhancement

Subscription reference IDs in webhooks

Subscription webhook payloads now include the subscription’s reference ID.

This makes it easier to match webhook events with payment provider records.

/ Feature

In-progress slider to resume content

The slider module supports a new item type: “In progress”. This displays any content recently played by the user, optionally filtered by content type. You can use this to drop a “Pick up where you left off” section for your users on any custom page in your app.

/ Enhancement

Archive draft pages

Admins can now archive draft pages directly from the dashboard.

A filter was also added to show or hide archived pages, making page management cleaner.

/ Feature

In-app search filters

The universal search page in the app now supports filtering by item type. Users can refine their search by selecting filters such as “Video”, “Audiobook”, etc.

/ Feature
BIG DEAL

Coupon codes

We added a new built-in coupon code system (not to be confused with Stripe coupon codes). This system replaces the original group membershipo code system and adds support for:

  • One-time and multi-use codes
  • Expiring codes
  • Granting entitlements or group membership access via codes
  • Automatically emailing codes via API
/ Feature

Custom transactional emails API endpoint

The Treefort API now includes an endpoint for sending custom transactional emails. This gives you a way to email customers using the same template as our built-in “Forgot password”, “Verify email”, and coupon code emails.

/ Feature

Short URLs

You can now create custom short URLs in the admin dashboard via the App Settings page. This feature allows you to create custom URLs for specific pages in your app that are easy to remember (and easy to read on a podcast), enhancing shareability.

/ Feature

Podcast episodes now appear in search

Podcast episodes are now included in app search results. This makes your podcast library easier to discover and helps users find individual episodes without extra navigation.

/ Enhancement

Fit-to-screen banner height option

Banners now support a fit-to-screen-width height option. This reduces cropping of banner images by scaling banner height to match artwork proportions across different screen sizes.

/ Feature

Billing failure webhook event

Treefort now sends a webhook event when a subscription has a billing failure. This helps connected systems trigger dunning or support workflows more quickly when payment issues occur.

/ Feature

reCAPTCHA protection for registration

Account registration flows now support reCAPTCHA protection. This can help reduce spam and improves signup security for tenant apps.

Setup is currently white-glove - reach out to us if you’d like to utilize this feature!