diff --git a/docs/assets/public-limited-publishing.png b/docs/assets/public-limited-publishing.png new file mode 100644 index 00000000..8354058f Binary files /dev/null and b/docs/assets/public-limited-publishing.png differ diff --git a/docs/changelog.md b/docs/changelog.md index 357a991f..5e723cd9 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -10,6 +10,7 @@ To use the latest version of Devvit: **Please note**: you may see features available across Devvit packages that are not documented or noted in our changelog. These are experimental features that are not stable and are subject to change, or removal, from the platform. Please use caution when testing or implementing experimental features. ## Release 0.14.1: Additional Source Roots and Post Search + **Release Date: August 17, 2026** **Additional Source Roots** @@ -34,8 +35,8 @@ Corrected the 0.14.0 wiki deprecation notice: `reddit.getWikiPage(subredditName, The Devvit CLI now warns once during `playtest`, `upload`, and `publish` if your local Node.js version is older than the supported version. The warning is informational and does not block the command. - ## Release 0.14.0: Node.js v24, Wiki Integration, Devvit Skills (Experimental) + **Release Date: August 10, 2026** **Node.js Upgrade** @@ -69,196 +70,3 @@ The first available skill, `devvit-docs`, helps agents answer Devvit questions u **Devvit Test Redis Changes** We’ve migrated to a JS only implementation of Redis inside of [Devvit test](https://developers.reddit.com/docs/guides/tools/devvit_test). This should make it easier to install and work with. While not a breaking change, it's possible the new Redis mock behaves differently compared to the previous version. If you run into any issues, please [let us know on Github](https://github.com/reddit/devvit)! - - -## Release 0.13.11: Behind-the-Scenes Improvements -**Release Date: August 3, 2026*** - -This release delivers a few behind-the-scenes improvements to make app development smoother and more reliable. - -## Release 0.13.10: Push Notifications Analytics (Experimental) -**Release Date: July 27, 2026** - -You can now track push notification delivery and engagement from the App Analytics tab. New analytics include: - -- [Push notification performance](./capabilities/analytics/pn-analytics#push-notification-performance): View daily receives, clicks, and click-through rate across Summary, iOS, Android, and Web. -- [Daily CTR by notification body](./capabilities/analytics/pn-analytics#daily-ctr-by-notification-body): Compare the click-through rate of individual notification messages over time and identify which content performs best. -- [CSV export](./capabilities/analytics/pn-analytics#download-performance-data): Download performance data for further analysis and reporting. - -Note that push notifications are still an experimental feature, which means that you’ll need to apply to unlock the ability to use push notifications and track analytics for your app. [Learn how to apply](./capabilities/notifications/notifications-overview#how-to-apply). - -**Settings Groups** - -You can now organize global and subreddit settings into labeled groups in `devvit.json`. Groups make it easier to structure related settings and improve navigation for apps with more complex configuration. - -**Mod Reports API Update** - -The `modReportReasons` field on Post and Comment has been deprecated in favor of `modReports`, which includes both the report reason and the report author for more complete moderation data. - - -## Release 0.13.9: Faster Devvit CLI Uploads -**Release Date: July 20, 2026** - -In this release, we improved Devvit CLI upload performance, with the biggest gains during `playtest`. - - -## Release 0.13.8: Maintenance Update -**Release Date: July 13, 2026** - -This release includes a few under-the-hood performance improvements and one dev-facing fix: - -- The `user.toJSON()` method now correctly includes fields specific to each `User` subclass, ensuring subclass-specific data is preserved during serialization. - -## Release 0.13.7: Devvit Journeys (GA) & Blob Storage (Experimental) -**Release Date: July 7, 2026** - -[Devvit Journeys](./capabilities/analytics/devvit-journeys.md) is now generally available to give you end-to-end visibility into how users move through your app from start to finish! - -Devvit Journeys provides: -* An [analytics dashboard](./capabilities/analytics/journeys-dashboard.md) to gain insights into session starts, completions, engagement, session frequency, and duration to better understand user progression and evaluate the effectiveness of your app. -* [Event receipts](./capabilities/analytics/journeys-receipts.md) in API responses that indicate how telemetry events were processed, making it easier to validate telemetry behavior and troubleshoot integrations. - -This release also includes our latest experimental feature: [blob storage](./capabilities/server/blob-storage.mdx). You can store and serve files like images, documents, exports, and other media directly from your app. Blob storage provides a scalable, durable solution for managing large assets while keeping application state in Redis. - -**Breaking Change: Filter API Updates** - -The experimental filter APIs have been updated to accept an options object instead of separate parameters, aligning them with the rest of the SDK. This change affects `reddit.filter()`, `post.filter()`, and `comment.filter()`. - -Because these methods were marked as experimental, this breaking change was made to improve API consistency before they reach general availability. - -**Other Fixes:** -* Enhanced metadata: methods that return moderation-related users, such as `getModerators()` and `getBannedUsers()`, now include additional metadata. Depending on the method, this includes details such as when a user became a moderator, when a user was banned, and the duration of a ban. -* Added support for Vite 8, which resolves the deprecation warnings that have appeared in projects created over the past few months. -* Fixed an issue where the `heightPixels` parameter was ignored during post creation and always defaulted to 512. The specified `heightPixels` value is now correctly applied. - -## Release 0.13.6: External Endpoints and App Mentions Triggers (Limited Access) -**Release Date: June 29, 2026** - -This release introduces two new limited-access features that expand how apps connect with external services and respond to events across Reddit: [External Endpoints](./capabilities/server/external-endpoints.mdx) and [App Mentions Triggers](./capabilities/server/global-triggers.mdx). - -:::note -Because both features extend your app's capabilities beyond its installed subreddit, access is currently limited behind an allowlist. Devs can request access [here](http://forms.gle/jVNPNwmUFPCRuEvy8). Priority access will be granted to moderation tools that are part of our [App Migration Program](https://www.reddit.com/r/Devvit/comments/1sgwkm7/bring_your_data_api_apps_to_devvit_and_details/). -::: - -**External Endpoints** - -External Endpoints provide a secure way for external services to communicate with your Devvit app. -Endpoints are externally accessible routes exposed by your app, making it easy to integrate with third-party services, webhooks, and other external systems while maintaining secure communication. - -**App Mention Triggers** -App Mention Triggers let Devvit apps respond whenever they're mentioned in comments anywhere on Reddit using the `u/` syntax. - -This enables apps to provide on-demand functionality that users can invoke directly from Reddit conversations, regardless of which subreddit the mention occurs in. - -**Other Fixes** -Additional improvements in this release include: -- **Increased visibility in your app’s installation history**. Now whenever a moderator changes a setting for one of your installed apps, it'll appear in the portal. -- **Increased app slug length**. App slugs can now be up to 20 characters. - - -## Release 0.13.5: Improved Tracing -**Release Date: June 23, 2026** - -In this release, we've improved trace propagation between web view and plugin calls. Apps running v0.13.5+ will have more complete traces, providing better observability and simplifying debugging and support. - - -## Release 0.13.4: Updated Redis Docs -**Release Date: June 15, 2026** - -In this release, we’ve updated our [Redis](./capabilities/server/redis.mdx) documentation based on your feedback, adding clearer guidance around key design, data structures, shared states, and scheduled maintenance. - -## Release 0.13.3: Devvit Journeys: a Dashboard and Receipts -**Release Date: June 8, 2026** - -If you’re enrolled in the [Devvit Journeys](./capabilities/analytics/devvit-journeys.md) beta, you’ll see a couple of new features in 0.13.3: - -- A [new dashboard](./capabilities/analytics/journeys-dashboard.md) that surfaces your app’s activity and performance metrics—including starts, completions, engagement, session frequency, and duration. These insights help you understand how users progress through your app and evaluate the effectiveness of your design. -- [Event receipts](./capabilities/analytics/journeys-receipts.md) included in the API responses that provide feedback on how telemetry events were processed. Receipts help you verify whether an event was recorded successfully or identify when it was skipped, rejected, rate limited, or could not be confirmed, making it easier to debug integrations and validate telemetry behavior. - -Also in this release: we’ve expanded the available in-app [purchase price tiers](./earn-money/payments/payments_add.mdx#price-products), giving you more flexibility to price products and subscriptions. - -## Release 0.13.2: More Maintenance - -**Release Date: June 2, 2026** - -Just a little more clean-up; pardon our dust! - -## Release 0.13.1: Maintenance Update - -**Release Date: June 2, 2026** - -No dev-facing changes today! This release just includes a few under-the-hood performance improvements. - -## Release 0.13.0: Logged Out Users, Push Notifications, App Telemetry, and More! - -**Release Date: May 26, 2026** - -We’re very excited to introduce Release 0.13.0, which introduces new features to attract logged out users, drive user engagement, and provide telemetry data to your game. We also have some breaking changes, which are going to be really important if your app currently uses Blocks functionality. Read on… - -:::note -Upgrading to 0.13.0 is not required, but you should be aware that Blocks UI support will be removed from all clients (web, Android, iOS) on June 30, 2026. -::: - -### Breaking Changes - -_**Devvit Web**_ - -If you use **Devvit Web** (`@devvit/web`), there’s only one breaking change: - -- The `splash` and `loading` screen support has been removed from `submitCustomPost()`. Please use a dedicated splash entrypoint HTML page instead as shown in the [project templates](./examples/template-library.md). - -Old method: - -```tsx -return await reddit.submitCustomPost({ - // Show platform splash screen inline and foo entrypoint in expanded mode. - splash: { - appDisplayName: "appDisplayName", - entry: "foo", - }, - title: "hello", -}); -``` - -New method: - -```bash -return await reddit.submitCustomPost({ - // Show foo entrypoint inline. Change this to a splash entrypoint if wanted. - entry: 'foo' - title: 'hello', -}); -``` - -And we did a little housekeeping: - -- Deprecated `inline` for post entrypoints in `devvit.json`. This property has no effect, and is always implied for post entrypoints. There are no built in splash screens, and any entrypoint may be opened in expanded mode. - -_**@devvit/public-api**_ - -If you use the old `@devvit/public-api`, **Blocks UI is no longer supported** in v0.13.0. These are the breaking changes: - -- Removed all custom post features from the Devvit singleton. This specifically includes `addCustomPostType()`, but also the ability to `submit()` custom posts and other Reddit API calls that operate on custom posts (`setPostData()`, `setCustomPostPreview()`, etc.). - - - Notably, menu actions and forms remain intact; apps can continue to provide interactivity through these mechanisms without porting to Devvit Web yet. (But this is deprecated, and support will be dropped in the future!). - - Removed Blocks support from `@devvit/payments`. The `usePayments()` hook was removed, and payments now only supports Devvit Web apps. - - Removed `realtime` and `useChannel` from the public-api. There is no UI to communicate with. - -- Removed `Devvit.Context`. You can import the context type from the public API package and should use that instead. -- Removed obsolete` @devvit/security` and `@devvit/pushnotif` packages. -- Remove obsolete key-value (`Context.kvStore`) plugin which had `List()` disabled for more than a year. Please use Redis directly. - -### Reddit API Changes -- Added a new `crosspostParentId` field in the `Post` object to identify the original post for a crosspost. - -### New Features - -- **Building for Logged Out Users**. Reddit has an untapped resource for your apps: [logged out users](./guides/logged-out-users.mdx). We’ve given you a guide to design your game so that it can be played and shared with anyone, and you can prompt logged out users to subscribe to your game. - -- **Push Notifications (experimental)**. [Push notifications](./capabilities/notifications/notifications-overview.md) help drive engagement, increase player retention, and build habit loops for players by bringing players back into your game at the right moments. We’ve also included detailed support for adding streaks to your game to encourage daily play! - -- **Devvit Journeys (experimental)**. We’ve added a new telemetry feature that tracks the full lifecycle of a user session. [Devvit Journeys](./capabilities/analytics/devvit-journeys.md) gives you a new way to understand how players move through your game session from start to finish, making it easier to see where users engage, where they drop off, and which moments lead to completion. - -:::note -Experimental features are gated beta programs. Access to Push Notifications and Devvit Journeys is currently limited and requires approval before it can be functional in your app. -::: diff --git a/docs/guides/launch/launch-guide.md b/docs/guides/launch/launch-guide.md index 80c33aa6..f1e034f4 100644 --- a/docs/guides/launch/launch-guide.md +++ b/docs/guides/launch/launch-guide.md @@ -10,7 +10,7 @@ Polished apps may also apply for **Reddit featuring**, which includes on-platfor Our team pauses all app reviews during certain holiday periods each year. Please see community announcements in r/Devvit and Discord for specific limited support dates. ::: -## When is an app ready to be launched? +## Is your app ready? Apps should be polished and stable before launch. Ensure your data schema is scalable and your UIs are clean and accessible, as **quality and performance directly impact organic distribution and adoption**. @@ -49,17 +49,19 @@ Apps are submitted for review through the CLI. To launch your app: 1. Add the required app [`README.md`](../../devvit_rules.md#app-readme-requirements). 2. Run `npx devvit publish`. - You can optionally choose the version bump type with `--bump`: - - `npx devvit publish --bump major` - - `npx devvit publish --bump minor` - - `npx devvit publish --bump patch` (default) + You can optionally choose the version bump type with `--bump`: - `--bump` accepts only `major`, `minor`, or `patch`, and cannot be used with `--version`. + - `npx devvit publish --bump major` + - `npx devvit publish --bump minor` + - `npx devvit publish --bump patch` (default) - If you prefer to set a specific version directly, use `--version`: - - `npx devvit publish --version 1.0.1` - - `--version` must be a stable version (for example, `1.0.1`), prerelease versions are not allowed, and it cannot be used with `--bump`. + `--bump` accepts only `major`, `minor`, or `patch`, and cannot be used with `--version`. + + If you prefer to set a specific version directly, use `--version`: + +- `npx devvit publish --version 1.0.1` + + `--version` must be a stable version (for example, `1.0.1`), prerelease versions are not allowed, and it cannot be used with `--bump`. Once submitted, your app enters Reddit’s review queue. Our team evaluates your code, example posts, and app documentation. @@ -76,7 +78,7 @@ Ensuring your app complies with all [Devvit Rules](https://developers.reddit.com --- -## How to list your app for any community to install +## List your app for any community to install If your app is a general-purpose moderation tool, community utility, or otherwise broadly applicable, you can request to list it in the [App Directory](https://developers.reddit.com/apps). Listing makes your app installable by any moderator. @@ -91,6 +93,57 @@ We do not recommend listing apps built for a single subreddit, as this may confu --- +## Share an unlisted app with selected communities + +Public Limited mode lets you make unlisted versions of your app available to a specific set of subreddits without publishing the app in the public app directory. + +When this mode is enabled for your app, you can add up to 100 subreddits to an allowlist. Moderators of those communities can then install an approved unlisted version themselves from a direct link to the app’s details page. + +:::note + +This feature is currently opt-in only. You can request access through [r/Devvit](https://www.reddit.com/r/Devvit/) modmail. + +::: + +### How it works + +For apps with Public Limited mode enabled: + +1. Open your app’s settings in the Developer Portal. +2. Add the subreddit names that should be allowed to install the app. +3. Save your changes. +4. Share a direct link to the app’s details page with the moderators of those communities. + +A moderator must have full (“Everything”) permissions in an allowlisted subreddit to install the app. + +![public limited enabled](../../assets/public-limited-publishing.png) + +Unlisted versions made available this way are subject to the same review requirements as public versions. However, the app remains hidden from the public app directory and can only be installed in the communities you specify. + +### Version visibility + +Public Limited mode changes only how unlisted versions behave: + +- **Unlisted versions** can be installed in allowlisted subreddits. +- **Public versions** can still be discovered and installed in any eligible subreddit. +- **Private versions and playtests** are unaffected. + +For eligible moderators, accessible unlisted versions are also included when determining the latest version of the app in the Developer Portal, CLI, and app details page. + +### Changing the allowlist + +Adding a subreddit allows its moderators to install eligible unlisted versions of the app. + +Removing a subreddit does not uninstall the app or interrupt its current operation. However, an installation in that subreddit cannot update to a later unlisted version unless the subreddit is added to the allowlist again. + +The installation can still update to a future public version of the app. + +> **Important:** Changes to the allowlist never remove or disable an existing installation. They affect only new installations and updates to unlisted versions. + +### Availability + +Public Limited mode is available for eligible apps. If the setting is available for your app, the subreddit allowlist appears in its Developer Portal settings. + ## Resources - Questions? Join our Discord or post in [r/Devvit](https://www.reddit.com/r/Devvit/). diff --git a/versioned_docs/version-0.14/assets/public-limited-publishing.png b/versioned_docs/version-0.14/assets/public-limited-publishing.png new file mode 100644 index 00000000..8354058f Binary files /dev/null and b/versioned_docs/version-0.14/assets/public-limited-publishing.png differ diff --git a/versioned_docs/version-0.14/changelog.md b/versioned_docs/version-0.14/changelog.md index 357a991f..5e723cd9 100644 --- a/versioned_docs/version-0.14/changelog.md +++ b/versioned_docs/version-0.14/changelog.md @@ -10,6 +10,7 @@ To use the latest version of Devvit: **Please note**: you may see features available across Devvit packages that are not documented or noted in our changelog. These are experimental features that are not stable and are subject to change, or removal, from the platform. Please use caution when testing or implementing experimental features. ## Release 0.14.1: Additional Source Roots and Post Search + **Release Date: August 17, 2026** **Additional Source Roots** @@ -34,8 +35,8 @@ Corrected the 0.14.0 wiki deprecation notice: `reddit.getWikiPage(subredditName, The Devvit CLI now warns once during `playtest`, `upload`, and `publish` if your local Node.js version is older than the supported version. The warning is informational and does not block the command. - ## Release 0.14.0: Node.js v24, Wiki Integration, Devvit Skills (Experimental) + **Release Date: August 10, 2026** **Node.js Upgrade** @@ -69,196 +70,3 @@ The first available skill, `devvit-docs`, helps agents answer Devvit questions u **Devvit Test Redis Changes** We’ve migrated to a JS only implementation of Redis inside of [Devvit test](https://developers.reddit.com/docs/guides/tools/devvit_test). This should make it easier to install and work with. While not a breaking change, it's possible the new Redis mock behaves differently compared to the previous version. If you run into any issues, please [let us know on Github](https://github.com/reddit/devvit)! - - -## Release 0.13.11: Behind-the-Scenes Improvements -**Release Date: August 3, 2026*** - -This release delivers a few behind-the-scenes improvements to make app development smoother and more reliable. - -## Release 0.13.10: Push Notifications Analytics (Experimental) -**Release Date: July 27, 2026** - -You can now track push notification delivery and engagement from the App Analytics tab. New analytics include: - -- [Push notification performance](./capabilities/analytics/pn-analytics#push-notification-performance): View daily receives, clicks, and click-through rate across Summary, iOS, Android, and Web. -- [Daily CTR by notification body](./capabilities/analytics/pn-analytics#daily-ctr-by-notification-body): Compare the click-through rate of individual notification messages over time and identify which content performs best. -- [CSV export](./capabilities/analytics/pn-analytics#download-performance-data): Download performance data for further analysis and reporting. - -Note that push notifications are still an experimental feature, which means that you’ll need to apply to unlock the ability to use push notifications and track analytics for your app. [Learn how to apply](./capabilities/notifications/notifications-overview#how-to-apply). - -**Settings Groups** - -You can now organize global and subreddit settings into labeled groups in `devvit.json`. Groups make it easier to structure related settings and improve navigation for apps with more complex configuration. - -**Mod Reports API Update** - -The `modReportReasons` field on Post and Comment has been deprecated in favor of `modReports`, which includes both the report reason and the report author for more complete moderation data. - - -## Release 0.13.9: Faster Devvit CLI Uploads -**Release Date: July 20, 2026** - -In this release, we improved Devvit CLI upload performance, with the biggest gains during `playtest`. - - -## Release 0.13.8: Maintenance Update -**Release Date: July 13, 2026** - -This release includes a few under-the-hood performance improvements and one dev-facing fix: - -- The `user.toJSON()` method now correctly includes fields specific to each `User` subclass, ensuring subclass-specific data is preserved during serialization. - -## Release 0.13.7: Devvit Journeys (GA) & Blob Storage (Experimental) -**Release Date: July 7, 2026** - -[Devvit Journeys](./capabilities/analytics/devvit-journeys.md) is now generally available to give you end-to-end visibility into how users move through your app from start to finish! - -Devvit Journeys provides: -* An [analytics dashboard](./capabilities/analytics/journeys-dashboard.md) to gain insights into session starts, completions, engagement, session frequency, and duration to better understand user progression and evaluate the effectiveness of your app. -* [Event receipts](./capabilities/analytics/journeys-receipts.md) in API responses that indicate how telemetry events were processed, making it easier to validate telemetry behavior and troubleshoot integrations. - -This release also includes our latest experimental feature: [blob storage](./capabilities/server/blob-storage.mdx). You can store and serve files like images, documents, exports, and other media directly from your app. Blob storage provides a scalable, durable solution for managing large assets while keeping application state in Redis. - -**Breaking Change: Filter API Updates** - -The experimental filter APIs have been updated to accept an options object instead of separate parameters, aligning them with the rest of the SDK. This change affects `reddit.filter()`, `post.filter()`, and `comment.filter()`. - -Because these methods were marked as experimental, this breaking change was made to improve API consistency before they reach general availability. - -**Other Fixes:** -* Enhanced metadata: methods that return moderation-related users, such as `getModerators()` and `getBannedUsers()`, now include additional metadata. Depending on the method, this includes details such as when a user became a moderator, when a user was banned, and the duration of a ban. -* Added support for Vite 8, which resolves the deprecation warnings that have appeared in projects created over the past few months. -* Fixed an issue where the `heightPixels` parameter was ignored during post creation and always defaulted to 512. The specified `heightPixels` value is now correctly applied. - -## Release 0.13.6: External Endpoints and App Mentions Triggers (Limited Access) -**Release Date: June 29, 2026** - -This release introduces two new limited-access features that expand how apps connect with external services and respond to events across Reddit: [External Endpoints](./capabilities/server/external-endpoints.mdx) and [App Mentions Triggers](./capabilities/server/global-triggers.mdx). - -:::note -Because both features extend your app's capabilities beyond its installed subreddit, access is currently limited behind an allowlist. Devs can request access [here](http://forms.gle/jVNPNwmUFPCRuEvy8). Priority access will be granted to moderation tools that are part of our [App Migration Program](https://www.reddit.com/r/Devvit/comments/1sgwkm7/bring_your_data_api_apps_to_devvit_and_details/). -::: - -**External Endpoints** - -External Endpoints provide a secure way for external services to communicate with your Devvit app. -Endpoints are externally accessible routes exposed by your app, making it easy to integrate with third-party services, webhooks, and other external systems while maintaining secure communication. - -**App Mention Triggers** -App Mention Triggers let Devvit apps respond whenever they're mentioned in comments anywhere on Reddit using the `u/` syntax. - -This enables apps to provide on-demand functionality that users can invoke directly from Reddit conversations, regardless of which subreddit the mention occurs in. - -**Other Fixes** -Additional improvements in this release include: -- **Increased visibility in your app’s installation history**. Now whenever a moderator changes a setting for one of your installed apps, it'll appear in the portal. -- **Increased app slug length**. App slugs can now be up to 20 characters. - - -## Release 0.13.5: Improved Tracing -**Release Date: June 23, 2026** - -In this release, we've improved trace propagation between web view and plugin calls. Apps running v0.13.5+ will have more complete traces, providing better observability and simplifying debugging and support. - - -## Release 0.13.4: Updated Redis Docs -**Release Date: June 15, 2026** - -In this release, we’ve updated our [Redis](./capabilities/server/redis.mdx) documentation based on your feedback, adding clearer guidance around key design, data structures, shared states, and scheduled maintenance. - -## Release 0.13.3: Devvit Journeys: a Dashboard and Receipts -**Release Date: June 8, 2026** - -If you’re enrolled in the [Devvit Journeys](./capabilities/analytics/devvit-journeys.md) beta, you’ll see a couple of new features in 0.13.3: - -- A [new dashboard](./capabilities/analytics/journeys-dashboard.md) that surfaces your app’s activity and performance metrics—including starts, completions, engagement, session frequency, and duration. These insights help you understand how users progress through your app and evaluate the effectiveness of your design. -- [Event receipts](./capabilities/analytics/journeys-receipts.md) included in the API responses that provide feedback on how telemetry events were processed. Receipts help you verify whether an event was recorded successfully or identify when it was skipped, rejected, rate limited, or could not be confirmed, making it easier to debug integrations and validate telemetry behavior. - -Also in this release: we’ve expanded the available in-app [purchase price tiers](./earn-money/payments/payments_add.mdx#price-products), giving you more flexibility to price products and subscriptions. - -## Release 0.13.2: More Maintenance - -**Release Date: June 2, 2026** - -Just a little more clean-up; pardon our dust! - -## Release 0.13.1: Maintenance Update - -**Release Date: June 2, 2026** - -No dev-facing changes today! This release just includes a few under-the-hood performance improvements. - -## Release 0.13.0: Logged Out Users, Push Notifications, App Telemetry, and More! - -**Release Date: May 26, 2026** - -We’re very excited to introduce Release 0.13.0, which introduces new features to attract logged out users, drive user engagement, and provide telemetry data to your game. We also have some breaking changes, which are going to be really important if your app currently uses Blocks functionality. Read on… - -:::note -Upgrading to 0.13.0 is not required, but you should be aware that Blocks UI support will be removed from all clients (web, Android, iOS) on June 30, 2026. -::: - -### Breaking Changes - -_**Devvit Web**_ - -If you use **Devvit Web** (`@devvit/web`), there’s only one breaking change: - -- The `splash` and `loading` screen support has been removed from `submitCustomPost()`. Please use a dedicated splash entrypoint HTML page instead as shown in the [project templates](./examples/template-library.md). - -Old method: - -```tsx -return await reddit.submitCustomPost({ - // Show platform splash screen inline and foo entrypoint in expanded mode. - splash: { - appDisplayName: "appDisplayName", - entry: "foo", - }, - title: "hello", -}); -``` - -New method: - -```bash -return await reddit.submitCustomPost({ - // Show foo entrypoint inline. Change this to a splash entrypoint if wanted. - entry: 'foo' - title: 'hello', -}); -``` - -And we did a little housekeeping: - -- Deprecated `inline` for post entrypoints in `devvit.json`. This property has no effect, and is always implied for post entrypoints. There are no built in splash screens, and any entrypoint may be opened in expanded mode. - -_**@devvit/public-api**_ - -If you use the old `@devvit/public-api`, **Blocks UI is no longer supported** in v0.13.0. These are the breaking changes: - -- Removed all custom post features from the Devvit singleton. This specifically includes `addCustomPostType()`, but also the ability to `submit()` custom posts and other Reddit API calls that operate on custom posts (`setPostData()`, `setCustomPostPreview()`, etc.). - - - Notably, menu actions and forms remain intact; apps can continue to provide interactivity through these mechanisms without porting to Devvit Web yet. (But this is deprecated, and support will be dropped in the future!). - - Removed Blocks support from `@devvit/payments`. The `usePayments()` hook was removed, and payments now only supports Devvit Web apps. - - Removed `realtime` and `useChannel` from the public-api. There is no UI to communicate with. - -- Removed `Devvit.Context`. You can import the context type from the public API package and should use that instead. -- Removed obsolete` @devvit/security` and `@devvit/pushnotif` packages. -- Remove obsolete key-value (`Context.kvStore`) plugin which had `List()` disabled for more than a year. Please use Redis directly. - -### Reddit API Changes -- Added a new `crosspostParentId` field in the `Post` object to identify the original post for a crosspost. - -### New Features - -- **Building for Logged Out Users**. Reddit has an untapped resource for your apps: [logged out users](./guides/logged-out-users.mdx). We’ve given you a guide to design your game so that it can be played and shared with anyone, and you can prompt logged out users to subscribe to your game. - -- **Push Notifications (experimental)**. [Push notifications](./capabilities/notifications/notifications-overview.md) help drive engagement, increase player retention, and build habit loops for players by bringing players back into your game at the right moments. We’ve also included detailed support for adding streaks to your game to encourage daily play! - -- **Devvit Journeys (experimental)**. We’ve added a new telemetry feature that tracks the full lifecycle of a user session. [Devvit Journeys](./capabilities/analytics/devvit-journeys.md) gives you a new way to understand how players move through your game session from start to finish, making it easier to see where users engage, where they drop off, and which moments lead to completion. - -:::note -Experimental features are gated beta programs. Access to Push Notifications and Devvit Journeys is currently limited and requires approval before it can be functional in your app. -::: diff --git a/versioned_docs/version-0.14/guides/launch/launch-guide.md b/versioned_docs/version-0.14/guides/launch/launch-guide.md index 80c33aa6..f1e034f4 100644 --- a/versioned_docs/version-0.14/guides/launch/launch-guide.md +++ b/versioned_docs/version-0.14/guides/launch/launch-guide.md @@ -10,7 +10,7 @@ Polished apps may also apply for **Reddit featuring**, which includes on-platfor Our team pauses all app reviews during certain holiday periods each year. Please see community announcements in r/Devvit and Discord for specific limited support dates. ::: -## When is an app ready to be launched? +## Is your app ready? Apps should be polished and stable before launch. Ensure your data schema is scalable and your UIs are clean and accessible, as **quality and performance directly impact organic distribution and adoption**. @@ -49,17 +49,19 @@ Apps are submitted for review through the CLI. To launch your app: 1. Add the required app [`README.md`](../../devvit_rules.md#app-readme-requirements). 2. Run `npx devvit publish`. - You can optionally choose the version bump type with `--bump`: - - `npx devvit publish --bump major` - - `npx devvit publish --bump minor` - - `npx devvit publish --bump patch` (default) + You can optionally choose the version bump type with `--bump`: - `--bump` accepts only `major`, `minor`, or `patch`, and cannot be used with `--version`. + - `npx devvit publish --bump major` + - `npx devvit publish --bump minor` + - `npx devvit publish --bump patch` (default) - If you prefer to set a specific version directly, use `--version`: - - `npx devvit publish --version 1.0.1` - - `--version` must be a stable version (for example, `1.0.1`), prerelease versions are not allowed, and it cannot be used with `--bump`. + `--bump` accepts only `major`, `minor`, or `patch`, and cannot be used with `--version`. + + If you prefer to set a specific version directly, use `--version`: + +- `npx devvit publish --version 1.0.1` + + `--version` must be a stable version (for example, `1.0.1`), prerelease versions are not allowed, and it cannot be used with `--bump`. Once submitted, your app enters Reddit’s review queue. Our team evaluates your code, example posts, and app documentation. @@ -76,7 +78,7 @@ Ensuring your app complies with all [Devvit Rules](https://developers.reddit.com --- -## How to list your app for any community to install +## List your app for any community to install If your app is a general-purpose moderation tool, community utility, or otherwise broadly applicable, you can request to list it in the [App Directory](https://developers.reddit.com/apps). Listing makes your app installable by any moderator. @@ -91,6 +93,57 @@ We do not recommend listing apps built for a single subreddit, as this may confu --- +## Share an unlisted app with selected communities + +Public Limited mode lets you make unlisted versions of your app available to a specific set of subreddits without publishing the app in the public app directory. + +When this mode is enabled for your app, you can add up to 100 subreddits to an allowlist. Moderators of those communities can then install an approved unlisted version themselves from a direct link to the app’s details page. + +:::note + +This feature is currently opt-in only. You can request access through [r/Devvit](https://www.reddit.com/r/Devvit/) modmail. + +::: + +### How it works + +For apps with Public Limited mode enabled: + +1. Open your app’s settings in the Developer Portal. +2. Add the subreddit names that should be allowed to install the app. +3. Save your changes. +4. Share a direct link to the app’s details page with the moderators of those communities. + +A moderator must have full (“Everything”) permissions in an allowlisted subreddit to install the app. + +![public limited enabled](../../assets/public-limited-publishing.png) + +Unlisted versions made available this way are subject to the same review requirements as public versions. However, the app remains hidden from the public app directory and can only be installed in the communities you specify. + +### Version visibility + +Public Limited mode changes only how unlisted versions behave: + +- **Unlisted versions** can be installed in allowlisted subreddits. +- **Public versions** can still be discovered and installed in any eligible subreddit. +- **Private versions and playtests** are unaffected. + +For eligible moderators, accessible unlisted versions are also included when determining the latest version of the app in the Developer Portal, CLI, and app details page. + +### Changing the allowlist + +Adding a subreddit allows its moderators to install eligible unlisted versions of the app. + +Removing a subreddit does not uninstall the app or interrupt its current operation. However, an installation in that subreddit cannot update to a later unlisted version unless the subreddit is added to the allowlist again. + +The installation can still update to a future public version of the app. + +> **Important:** Changes to the allowlist never remove or disable an existing installation. They affect only new installations and updates to unlisted versions. + +### Availability + +Public Limited mode is available for eligible apps. If the setting is available for your app, the subreddit allowlist appears in its Developer Portal settings. + ## Resources - Questions? Join our Discord or post in [r/Devvit](https://www.reddit.com/r/Devvit/).