diff --git a/.gitignore b/.gitignore index 7e32964..0646d96 100644 --- a/.gitignore +++ b/.gitignore @@ -12,6 +12,7 @@ build .env.development.local .env.test.local .env.production.local +.idea npm-debug.log* yarn-debug.log* diff --git a/docs/blocks/attributes/_color.md b/docs/blocks/attributes/_color.md index e991cda..6624d32 100644 --- a/docs/blocks/attributes/_color.md +++ b/docs/blocks/attributes/_color.md @@ -1,4 +1,4 @@ -A `string` for setting the color to any [Blocks-compatible color value](./colors). Possible values: +A `string` for setting the color to any [Blocks-compatible color value](../colors.mdx). Possible values: - HTML color names: `red` - HEX: `#ff4500` diff --git a/docs/blocks/overview.mdx b/docs/blocks/overview.mdx index 369c189..f149f7c 100644 --- a/docs/blocks/overview.mdx +++ b/docs/blocks/overview.mdx @@ -9,17 +9,17 @@ We support the following elements: ### Containers - **Blocks** -- [**HStack**](./stacks) -- [**VStack**](./stacks) -- [**ZStack**](./stacks) +- [**HStack**](./stacks.mdx) +- [**VStack**](./stacks.mdx) +- [**ZStack**](./stacks.mdx) ### Objects -- [**Text**](./text) -- [**Button**](./button) -- [**Spacer**](./spacer) -- [**Image**](./image) -- [**Icon**](./icon) +- [**Text**](./text.mdx) +- [**Button**](./button.mdx) +- [**Spacer**](./spacer.mdx) +- [**Image**](./image.mdx) +- [**Icon**](./icon.mdx) Further elements (components) may be derived from these blocks, and obey the same rules. @@ -80,16 +80,16 @@ Grow elements are flexible. Whenever the full width (or height) of a parent elem All elements inherit a direction for the purposes of growing. Things only grow in one direction at a time. -| Element | Self Direction | Child Direction | -| ------------------ | -------------- | --------------- | -| Blocks | N/A | Vertical | -| [HStack](./stacks) | Inherit | Horizontal | -| [VStack](./stacks) | Inherit | Vertical | -| [ZStack](./stacks) | Inherit | Inherit | -| [Text](./text) | Horizontal | N/A | -| [Button](./button) | Horizontal | N/A | -| [Spacer](./spacer) | Inherit | N/A | -| [Image](./image) | Inherit | N/A | +| Element | Self Direction | Child Direction | +| ---------------------- | -------------- | --------------- | +| Blocks | N/A | Vertical | +| [HStack](./stacks.mdx) | Inherit | Horizontal | +| [VStack](./stacks.mdx) | Inherit | Vertical | +| [ZStack](./stacks.mdx) | Inherit | Inherit | +| [Text](./text.mdx) | Horizontal | N/A | +| [Button](./button.mdx) | Horizontal | N/A | +| [Spacer](./spacer.mdx) | Inherit | N/A | +| [Image](./image.mdx) | Inherit | N/A | ### Overflow diff --git a/docs/capabilities/blocks/overview.md b/docs/capabilities/blocks/overview.md index 3cb01f5..b6cda57 100644 --- a/docs/capabilities/blocks/overview.md +++ b/docs/capabilities/blocks/overview.md @@ -27,17 +27,17 @@ We support the following elements: ### Containers - **Blocks** -- [**HStack**](../../../blocks/stacks) -- [**VStack**](../../../blocks/stacks) -- [**ZStack**](../../../blocks/stacks) +- [**HStack**](../../blocks/stacks.mdx) +- [**VStack**](../../blocks/stacks.mdx) +- [**ZStack**](../../blocks/stacks.mdx) ### Objects -- [**Text**](../../../blocks/text) -- [**Button**](../../../blocks/button) -- [**Spacer**](../../../blocks/spacer) -- [**Image**](../../../blocks/image) -- [**Icon**](../../../blocks/icon) +- [**Text**](../../blocks/text.mdx) +- [**Button**](../../blocks/button.mdx) +- [**Spacer**](../../blocks/spacer.mdx) +- [**Image**](../../blocks/image.mdx) +- [**Icon**](../../blocks/icon.mdx) Further elements (components) may be derived from these blocks, and obey the same rules. @@ -98,16 +98,16 @@ Grow elements are flexible. Whenever the full width (or height) of a parent elem All elements inherit a direction for the purposes of growing. Things only grow in one direction at a time. -| Element | Self Direction | Child Direction | -| -------------------------------- | -------------- | --------------- | -| Blocks | N/A | Vertical | -| [HStack](../../../blocks/stacks) | Inherit | Horizontal | -| [VStack](../../../blocks/stacks) | Inherit | Vertical | -| [ZStack](../../../blocks/stacks) | Inherit | Inherit | -| [Text](../../../blocks/text) | Horizontal | N/A | -| [Button](../../../blocks/button) | Horizontal | N/A | -| [Spacer](../../../blocks/spacer) | Inherit | N/A | -| [Image](../../../blocks/image) | Inherit | N/A | +| Element | Self Direction | Child Direction | +|-----------------------------------| -------------- | --------------- | +| Blocks | N/A | Vertical | +| [HStack](../../blocks/stacks.mdx) | Inherit | Horizontal | +| [VStack](../../blocks/stacks.mdx) | Inherit | Vertical | +| [ZStack](../../blocks/stacks.mdx) | Inherit | Inherit | +| [Text](../../blocks/text.mdx) | Horizontal | N/A | +| [Button](../../blocks/button.mdx) | Horizontal | N/A | +| [Spacer](../../blocks/spacer.mdx) | Inherit | N/A | +| [Image](../../blocks/image.mdx) | Inherit | N/A | ### Overflow diff --git a/docs/capabilities/devvit-web/devvit_web_overview.mdx b/docs/capabilities/devvit-web/devvit_web_overview.mdx index 5fa934a..90edf5b 100644 --- a/docs/capabilities/devvit-web/devvit_web_overview.mdx +++ b/docs/capabilities/devvit-web/devvit_web_overview.mdx @@ -89,4 +89,4 @@ All server endpoints must start with `/api/` (e.g. `/api/get-something` or `/api `devvit.json` is the configuration file for Devvit apps. It defines an app's post configuration, Node.js server configuration, permissions, scheduled jobs, event triggers, menu entries, payments configuration, and project settings. `devvit.json` replaces the legacy `devvit.yaml` configuration. A project should have one or the other but not both. -Learn more about [devvit.json](./devvit_web_configuration) +Learn more about [devvit.json](./devvit_web_configuration.md) diff --git a/docs/capabilities/server/overview.md b/docs/capabilities/server/overview.md index ab05e97..a36be05 100644 --- a/docs/capabilities/server/overview.md +++ b/docs/capabilities/server/overview.md @@ -28,7 +28,7 @@ Allows you to run automated server-side tasks on a schedule, for example, checki Allows you to build an app where the moderator can store secret keys in a safe and scalable way. For example, if your app needs the installing moderator to provide their own keys to an external API. -## [Triggers](./triggers) +## [Triggers](./triggers.mdx) Allows you to run automated server-side tasks when certain events happen on Reddit, for example: when a new post is created, or when a new comment is created. diff --git a/docs/capabilities/server/post-data.mdx b/docs/capabilities/server/post-data.mdx index 6808a75..1bb20f5 100644 --- a/docs/capabilities/server/post-data.mdx +++ b/docs/capabilities/server/post-data.mdx @@ -8,7 +8,7 @@ You can attach small amounts of data (2KB) to a post when creating it and update Post data is useful for storing game state, scores, or any other information that needs to persist with the post and be shared across all users. -Post data is set when you submitPost and apps can access from the context object or do a server side call to update the post data on a Post object. For larger data, use [redis](./redis). +Post data is set when you submitPost and apps can access from the context object or do a server side call to update the post data on a Post object. For larger data, use [redis](./redis.mdx). :::note Post data is sent to the client. Never store secrets or sensitive information. diff --git a/docs/changelog.md b/docs/changelog.md index c87671e..00a5044 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -96,7 +96,7 @@ This release focuses on Reddit data access and instrumenting WebView clients **Release Date: Nov 10, 2025** -Release 0.12.2 delivers a major evolution in how interactive Devvit apps load, display, and engage users. With this update, you can now leverage inline web views, in addition to expanded mode, to build your interactive posts with Devvit Web. We’re also deprecating [Splash Screens](./capabilities/server/launch_screen_and_entry_points/splash_migration) in favor of more customizable HTML inline launch screens. +Release 0.12.2 delivers a major evolution in how interactive Devvit apps load, display, and engage users. With this update, you can now leverage inline web views, in addition to expanded mode, to build your interactive posts with Devvit Web. We’re also deprecating [Splash Screens](./capabilities/server/launch_screen_and_entry_points/splash_migration.mdx) in favor of more customizable HTML inline launch screens. **Inline Mode** @@ -114,10 +114,10 @@ Devvit apps using inline web views are currently seeing inflated metrics in thei Splash screens are yesterday’s news. The improved inline launch screens are now fully customizable, HTML-based entry points for your interactive posts. This update gives you control over design, animation, and loading behavior and uses the same tools and styles as the rest of your app. -The new first screen automatically loads before your app’s main entry point. Read the docs to learn how to [upgrade your app](./capabilities/server/launch_screen_and_entry_points/splash_migration) and [customize your launch screen](./capabilities/server/launch_screen_and_entry_points/launch_screen_customization). +The new first screen automatically loads before your app’s main entry point. Read the docs to learn how to [upgrade your app](./capabilities/server/launch_screen_and_entry_points/splash_migration.mdx) and [customize your launch screen](./capabilities/server/launch_screen_and_entry_points/launch_screen_customization.md). :::note -**Deprecation notice**: We're deprecating the splash parameter in submitCustomPost() and removing it in the next major version update. Learn how to [update your app](./capabilities/server/launch_screen_and_entry_points/splash_migration). +**Deprecation notice**: We're deprecating the splash parameter in submitCustomPost() and removing it in the next major version update. Learn how to [update your app](./capabilities/server/launch_screen_and_entry_points/splash_migration.mdx). ::: **Multiple App Entry Points** diff --git a/docs/devvit_rules.md b/docs/devvit_rules.md index 27f05a8..4eb9b40 100644 --- a/docs/devvit_rules.md +++ b/docs/devvit_rules.md @@ -12,9 +12,9 @@ Your app is subject to our app review and approval. Reddit may reject or remove These Devvit Rules are intended to clarify how we review Devvit apps and streamline the process for you and Reddit. Our goal is to keep redditors safe and enable developers to build fun and useful apps for redditors. This means our Devvit Rules may evolve over time, which you should keep in mind when building or updating your app. Please [reach out](https://developers.reddit.com/docs/help) if you have any questions on these Devvit Rules. Any exceptions to these Devvit Rules or any other Reddit Terms & Policies must be approved in writing by Reddit. -You can use Devvit and test your app without needing to submit it to Reddit’s App Review. However, to make your app visible in the [Reddit App Directory](https://developers.reddit.com/apps) and publicly available for other mods and admins to install, you’ll need prior app approval. Additionally, if you want to unlock premium features for your app (for example, [payments](./earn-money/payments/payments_overview), [fetching](./capabilities/server/http-fetch), or [using LLMs](#generative-aillm-rules)), you’ll also need prior app approval. +You can use Devvit and test your app without needing to submit it to Reddit’s App Review. However, to make your app visible in the [Reddit App Directory](https://developers.reddit.com/apps) and publicly available for other mods and admins to install, you’ll need prior app approval. Additionally, if you want to unlock premium features for your app (for example, [payments](./earn-money/payments/payments_overview.md), [fetching](./capabilities/server/http-fetch.mdx), or [using LLMs](#generative-aillm-rules)), you’ll also need prior app approval. -You can start the Reddit app review process by [publishing your app](./guides/launch/launch-guide). Before starting a Reddit app review, we recommend: +You can start the Reddit app review process by [publishing your app](./guides/launch/launch-guide.md). Before starting a Reddit app review, we recommend: - Thoroughly playtesting your app, - Carefully reviewing these Devvit Rules and other Reddit Terms & Policies, and @@ -44,7 +44,7 @@ You and your app(s) must: - Provide discrete functionality and always try to make Reddit more enjoyable - Maintain functionality that communities rely on, communicate when you cannot, and make it easy to contact you for support - Be transparent and use clear naming and descriptions that accurately describe your app’s functionality, purpose, and data practices -- Include your own terms of service and privacy policy if your app uses premium features (for example, [payments](./earn-money/payments/payments_overview), [fetching](./capabilities/server/http-fetch), or [using LLMs](#generative-aillm-rules)) or if requested by Reddit +- Include your own terms of service and privacy policy if your app uses premium features (for example, [payments](./earn-money/payments/payments_overview.md), [fetching](./capabilities/server/http-fetch.mdx), or [using LLMs](#generative-aillm-rules)) or if requested by Reddit - Provide accurate information about your relationship with Reddit or any other person or entity, including other developers (for example, by including them in your app description) - Test your app locally and in sandbox subreddits when applicable - Avoid enabling or allowing others to violate these Devvit Rules or other Reddit Terms & Policies @@ -126,11 +126,11 @@ Your app must comply with all privacy and data protection requirements outlined ### Be careful using external sites or services -If your app uses [HTTP Fetch](./capabilities/server/http-fetch) or otherwise collects personal information about app users, we require you to have a terms of service and privacy policy and include a link to both in your app. Your terms of service and privacy policy must completely and accurately describe how you and your app collects, uses, shares, and stores data and why. (Please note that links to Reddit’s [User Agreement](https://redditinc.com/policies/user-agreement) and/or [Privacy Policy](https://www.reddit.com/policies/privacy-policy) will not be accepted.) +If your app uses [HTTP Fetch](./capabilities/server/http-fetch.mdx) or otherwise collects personal information about app users, we require you to have a terms of service and privacy policy and include a link to both in your app. Your terms of service and privacy policy must completely and accurately describe how you and your app collects, uses, shares, and stores data and why. (Please note that links to Reddit’s [User Agreement](https://redditinc.com/policies/user-agreement) and/or [Privacy Policy](https://www.reddit.com/policies/privacy-policy) will not be accepted.) If your app links to any third-party site that may collect redditor personal data, you are solely responsible for verifying the legitimacy and security of the third-party site and should ensure that they are in compliance with all applicable laws. For example, you should ensure that a site collecting personal data provides a privacy policy that clearly discloses what data is collected, how the data is used, and how the data is shared. -You’ll also need permission during app review to direct redditors outside of Reddit or otherwise collect personal information about them. To request HTTP Fetch functionality for a specific domain, please follow [these instructions](./capabilities/server/http-fetch). +You’ll also need permission during app review to direct redditors outside of Reddit or otherwise collect personal information about them. To request HTTP Fetch functionality for a specific domain, please follow [these instructions](./capabilities/server/http-fetch.mdx). ## Content rules @@ -160,7 +160,7 @@ Whether your app uses existing user content or otherwise allows users to create - _Account Deletions_ – When a user account is deleted, the related user ID (t2\_\*) must be completely removed from your hosted datastores (e.g., Redis) and any external systems. You must also delete all references to the author-identifying information (including the author ID, name, profile URL, avatar image URL, user flair, etc.) from posts and comments created by that account. You may continue to keep posts and comments created by deleted accounts, provided that the posts and comments have not been explicitly deleted. -- _Setting Up Auto-Deletion_ – To best comply with this policy, we recommend deleting any stored user data within 30 days. For any data you are storing in Redis, you can use the [expire function](./capabilities/server/redis#key-expiration) to ensure data gets deleted automatically. +- _Setting Up Auto-Deletion_ – To best comply with this policy, we recommend deleting any stored user data within 30 days. For any data you are storing in Redis, you can use the [expire function](./capabilities/server/redis.mdx#key-expiration) to ensure data gets deleted automatically. - **Enabling Deletions of New User Content** – if your app allows users to create new user content, you must ensure that users have the ability to remove their own content when desired and comply with all legal requirements related to content removals. It is important to have safety guardrails in place if your app allows users to create new user content so that the content can be reported and removed by app users. diff --git a/docs/earn-money/payments/payments_add.md b/docs/earn-money/payments/payments_add.md index 7c52233..b1e4e7f 100644 --- a/docs/earn-money/payments/payments_add.md +++ b/docs/earn-money/payments/payments_add.md @@ -132,7 +132,7 @@ Product prices are predefined and must be one of the following gold values: - 2500 gold ($50) :::note -Actual payments will not be processed until your products are approved. While your app is under development, you can use sandbox payments to [simulate purchases](./payments_test#simulate-purchases). +Actual payments will not be processed until your products are approved. While your app is under development, you can use sandbox payments to [simulate purchases](./payments_test.md#simulate-purchases). ::: ## Design guidelines diff --git a/docs/introduction/intro-games.mdx b/docs/introduction/intro-games.mdx index 6126f1e..280528a 100644 --- a/docs/introduction/intro-games.mdx +++ b/docs/introduction/intro-games.mdx @@ -5,7 +5,7 @@ import Rocket from '@site/docs/assets/introduction/SpotIllustration_Rocket.webp' # Games on Reddit -Unleash your creativity and build engaging games inside Reddit communities with Devvit’s powerful platform. [Earn money](../earn-money/reddit_developer_funds) as players engage with your games. +Unleash your creativity and build engaging games inside Reddit communities with Devvit’s powerful platform. [Earn money](../earn-money/reddit_developer_funds.md) as players engage with your games. Devvit is Reddit’s developer platform for building interactive, cross-platform games and apps that run natively on Reddit. @@ -26,7 +26,6 @@ Reddit is home to millions of communities, each with its own culture and interes { title: 'Quickstart', image: Rocket, - href: '../quickstart', background: 'linear-gradient(135deg, #b2f7ef 0%, #4be18a 100%)', textColor: '#003820', imageSide: 'left', @@ -36,7 +35,6 @@ Reddit is home to millions of communities, each with its own culture and interes { title: 'Showcase', image: Celebration, - href: '../examples/app-showcase', background: 'linear-gradient(135deg, #ffe066 0%, #ff7c53 100%)', textColor: '#5a2a00', imageSide: 'right', @@ -44,7 +42,10 @@ Reddit is home to millions of communities, each with its own culture and interes alt: 'Showcase', }, ]} -/> +> + [Quickstart](../quickstart/quickstart.md) + [Showcase](../examples/app-showcase.mdx) +
diff --git a/docs/introduction/intro-mod-tools.mdx b/docs/introduction/intro-mod-tools.mdx index 883b891..dbca9e9 100644 --- a/docs/introduction/intro-mod-tools.mdx +++ b/docs/introduction/intro-mod-tools.mdx @@ -24,7 +24,6 @@ Devvit is Reddit’s developer platform for building interactive, cross-platform { title: 'Quickstart', image: Rocket, - href: '../quickstart/quickstart-mod-tool', background: 'linear-gradient(135deg, #b2f7ef 0%, #4be18a 100%)', textColor: '#003820', imageSide: 'left', @@ -34,7 +33,6 @@ Devvit is Reddit’s developer platform for building interactive, cross-platform { title: 'Mod Resources', image: SnooToolboxClipboard, - href: '../guides/best-practices/mod_resources', background: 'linear-gradient(135deg, #ffe066 0%, #ff7c53 100%)', textColor: '#5a2a00', imageSide: 'right', @@ -42,7 +40,10 @@ Devvit is Reddit’s developer platform for building interactive, cross-platform alt: 'Three Strikes Tutorial', }, ]} -/> +> + [Quickstart](../quickstart/quickstart.md) + [Mod Resources](../guides/best-practices/mod_resources.md) +
diff --git a/docs/introduction/introduction.mdx b/docs/introduction/introduction.mdx index 47cc0ad..e4fcb46 100644 --- a/docs/introduction/introduction.mdx +++ b/docs/introduction/introduction.mdx @@ -11,11 +11,11 @@ import SnooToolboxClipboard from '@site/versioned_docs/version-0.12/assets/intro
-Devvit allows you to build interactive games and apps that live on Reddit. Build experiences that can earn up to $167,000 per app with our [Reddit Developer Funds](./earn-money/reddit_developer_funds). +Devvit allows you to build interactive games and apps that live on Reddit. Build experiences that can earn up to $167,000 per app with our [Reddit Developer Funds](../earn-money/reddit_developer_funds.md). Build community games like [Hot and Cold](https://www.reddit.com/r/hotandcold/), [Sword and Supper](https://www.reddit.com/r/SwordAndSupper/), and [Honk](https://www.reddit.com/r/RedditGames/), or create [custom mod tools](https://www.reddit.com/r/ModSupport/comments/1k6szsj/devvit_apps_for_moderation_a_list/) to empower your community. -**More examples:** [App Showcase](./examples/app-showcase) +**More examples:** [App Showcase](../examples/app-showcase.mdx) **Questions?** Join [r/devvit](https://www.reddit.com/r/devvit/) or our [Discord](https://discord.gg/Cd43ExtEFS). @@ -43,7 +43,6 @@ Build community games like [Hot and Cold](https://www.reddit.com/r/hotandcold/), { title: 'Build Games', image: Rocket, - href: './introduction/intro-games', background: 'linear-gradient(135deg, #b2f7ef 0%, #4be18a 100%)', textColor: '#003820', imageSide: 'left', @@ -53,7 +52,6 @@ Build community games like [Hot and Cold](https://www.reddit.com/r/hotandcold/), { title: 'Create Mod Tools', image: SnooToolboxClipboard, - href: './introduction/intro-mod-tools', background: 'linear-gradient(135deg, #ffe066 0%, #ff7c53 100%)', textColor: '#5a2a00', imageSide: 'right', @@ -61,4 +59,7 @@ Build community games like [Hot and Cold](https://www.reddit.com/r/hotandcold/), alt: 'Create Mod Tools', }, ]} -/> +> + [Build Games](./intro-games.mdx) + [Create Mod Tools](./intro-mod-tools.mdx) + diff --git a/src/components/IntroPagesFeatures/IntroTilePanel.js b/src/components/IntroPagesFeatures/IntroTilePanel.js index ff6717d..c6ab209 100644 --- a/src/components/IntroPagesFeatures/IntroTilePanel.js +++ b/src/components/IntroPagesFeatures/IntroTilePanel.js @@ -4,8 +4,23 @@ import React from 'react'; * IntroTilePanel - a reusable two-tile panel for intro pages. * @param {Array} tiles - Array of tile configs: { image, alt, title, href, background, textColor, imageSide ('left'|'right'), ariaLabel } * @param {string|number} gap - CSS gap between tiles (default: '2.5rem') + * @param {ReactNode} children - Optional children to override tile hrefs via elements */ -export default function IntroTilePanel({ tiles, gap = '2.5rem' }) { +export default function IntroTilePanel({ tiles, gap = '2.5rem', children }) { + // So, for the links we're given, we want to allow the user to override the hrefs via children elements. + // This allows MDX users to use relative links like [Learn More](./more) instead of hardcoding absolute URLs in the + // tile config, which makes versioned docs work way better & prevents trailing slash issues from mattering. + const titleToHRef = {}; + if(children) { + for(const child of React.Children.toArray(children.props.children)) { + // This works for both MDX and regular elements, as the browser will render both as + if(child?.type?.name === 'a' || child?.type?.name === 'MDXA') { + const href = child.props.href; + const title = child.props.children; + titleToHRef[title] = href; + } + } + } return (
- {tiles.map((tile, i) => { + {tiles.map((tile) => { const isImageLeft = tile.imageSide === 'left'; + const href = titleToHRef[tile.title] ?? tile.href; return ( ![experience_post](./assets/experience-post-example.png) -When you're done iterating, you can [publish](dev_guide.mdx#9-publish) your app and then make it [public](./publishing). +When you're done iterating, you can [publish](dev_guide.mdx#9-publish) your app and then make it [public](./publishing.md). diff --git a/versioned_docs/version-0.11/interactive_posts.md b/versioned_docs/version-0.11/interactive_posts.md index 76bdfbd..222683e 100644 --- a/versioned_docs/version-0.11/interactive_posts.md +++ b/versioned_docs/version-0.11/interactive_posts.md @@ -1,6 +1,6 @@ # Overview -Interactive posts allow you to build apps like [live scoreboards](./showcase/apps#live-scores), [polls](./showcase/playgrounds), or [community games](./community_games.md) on Reddit. This guide will help you understand how to build them effectively. +Interactive posts allow you to build apps like [live scoreboards](./showcase/apps.mdx#live-scores), [polls](./showcase/playgrounds.mdx), or [community games](./community_games.md) on Reddit. This guide will help you understand how to build them effectively. ## What’s supported @@ -22,7 +22,7 @@ You can also create your own interactive post from scratch. ### Devvit blocks -[Blocks](./blocks/overview) is a Reddit native declarative UI framework that provides: +[Blocks](./blocks/overview.mdx) is a Reddit native declarative UI framework that provides: - ✅ Reddit-styled components - ✅ Cross-platform compatibility @@ -31,7 +31,7 @@ You can also create your own interactive post from scratch. Perfect for: Polls, scoreboards, simple & fast interactive games -You can see code examples of apps built with blocks [here](./showcase/apps) or in our [playground](https://developers.reddit.com/play). +You can see code examples of apps built with blocks [here](./showcase/apps.mdx) or in our [playground](https://developers.reddit.com/play). ### Webviews @@ -43,7 +43,7 @@ You can see code examples of apps built with blocks [here](./showcase/apps) or i Perfect for: Games, complex visualizations, rich interactions -You can find some webview example games [here](./webviews#basic-example) +You can find some webview example games [here](./webviews.md#basic-example) # Should I use blocks or webviews? diff --git a/versioned_docs/version-0.11/introduction.md b/versioned_docs/version-0.11/introduction.md index 67879e6..031764b 100644 --- a/versioned_docs/version-0.11/introduction.md +++ b/versioned_docs/version-0.11/introduction.md @@ -14,9 +14,9 @@ Devvit lets you create rich, immersive posts that seamlessly integrate into Redd Build interactive posts that ignite your community: -- [Live scoreboards](./showcase/apps#live-scores) that give your community play-by-play updates and a space for shitposting during the game. -- [Polls](./showcase/playgrounds) to provoke spicy conversations or take the pulse of your community. -- [Multiplayer games](./showcase/apps#bingo) played asynchronously or with other redditors in real time. +- [Live scoreboards](./showcase/apps.mdx#live-scores) that give your community play-by-play updates and a space for shitposting during the game. +- [Polls](./showcase/playgrounds.mdx) to provoke spicy conversations or take the pulse of your community. +- [Multiplayer games](./showcase/apps.mdx#bingo) played asynchronously or with other redditors in real time. Or create an entirely new [community game](./community_games.md) around an app, like [r/Pixelary](https://www.reddit.com/r/Pixelary/), a multiplayer game created just for redditors to draw, guess, and compete for bragging rights. diff --git a/versioned_docs/version-0.11/kv_store_plugin.md b/versioned_docs/version-0.11/kv_store_plugin.md index 48fab2e..83238c2 100644 --- a/versioned_docs/version-0.11/kv_store_plugin.md +++ b/versioned_docs/version-0.11/kv_store_plugin.md @@ -1,7 +1,7 @@ # Key value store plugin :::note -[Redis](./capabilities/redis) is replacing the key value store as Devvit’s hosted data store solution. You’ll need to [migrate](migrate_kv_to_redis.md) your current apps to Redis. +[Redis](./capabilities/redis.md) is replacing the key value store as Devvit’s hosted data store solution. You’ll need to [migrate](migrate_kv_to_redis.md) your current apps to Redis. ::: Sometimes you might want to store data in your app that will be there the next time it’s run. diff --git a/versioned_docs/version-0.11/payments/payments_add.md b/versioned_docs/version-0.11/payments/payments_add.md index 6fb90b6..ac73bec 100644 --- a/versioned_docs/version-0.11/payments/payments_add.md +++ b/versioned_docs/version-0.11/payments/payments_add.md @@ -60,7 +60,7 @@ Product prices are predefined and must be one of the following gold values: - 2500 gold ($50) :::note -Actual payments will not be processed until your products are approved. While your app is under development, you can use sandbox payments to [simulate purchases](./payments_test#simulate-purchases). +Actual payments will not be processed until your products are approved. While your app is under development, you can use sandbox payments to [simulate purchases](./payments_test.md#simulate-purchases). ::: ## Design guidelines diff --git a/versioned_docs/version-0.11/playtest.md b/versioned_docs/version-0.11/playtest.md index 8d8cde2..53b2e5d 100644 --- a/versioned_docs/version-0.11/playtest.md +++ b/versioned_docs/version-0.11/playtest.md @@ -82,4 +82,4 @@ $ devvit upload This will automatically bump your app version to the next patch release. For example, if your playtest version is 0.0.1.6, the upload command will remove the playtest version increment and change your app version to 0.0.2. -Once you [publish your app](./publishing) to the Apps Directory, it will be available for users to install. +Once you [publish your app](./publishing.md) to the Apps Directory, it will be available for users to install. diff --git a/versioned_docs/version-0.11/publishing.md b/versioned_docs/version-0.11/publishing.md index da7e71e..565af04 100644 --- a/versioned_docs/version-0.11/publishing.md +++ b/versioned_docs/version-0.11/publishing.md @@ -1,6 +1,6 @@ # Publishing an app -Once you [upload](./dev_guide#7-upload-your-app) your app, a private version of it is added to the [Apps](https://developers.reddit.com/apps) directory. Only you will be able to see your app in the directory, and it’s available for you to use in small subreddits with fewer than 200 subscribers for testing purposes. +Once you [upload](./dev_guide.mdx#7-upload-your-app) your app, a private version of it is added to the [Apps](https://developers.reddit.com/apps) directory. Only you will be able to see your app in the directory, and it’s available for you to use in small subreddits with fewer than 200 subscribers for testing purposes. To use your app in larger subreddits, you’ll need to publish your app. To do this from the CLI, run: diff --git a/versioned_docs/version-0.11/reddit_developer_funds.md b/versioned_docs/version-0.11/reddit_developer_funds.md index 1347081..67b4436 100644 --- a/versioned_docs/version-0.11/reddit_developer_funds.md +++ b/versioned_docs/version-0.11/reddit_developer_funds.md @@ -6,7 +6,7 @@ Reddit developer funds is a way for developers to earn money for the apps they b We want creative new apps that enrich the Reddit community through: -- A new experience, like a [live score board](./showcase/apps#live-scores) or [community bingo](./showcase/apps#bingo) +- A new experience, like a [live score board](./showcase/apps.mdx#live-scores) or [community bingo](./showcase/apps.mdx#bingo) - An entirely new community created around the app, like [r/pixelary](https://www.reddit.com/r/Pixelary/) or [r/riddonkulous](https://www.reddit.com/r/riddonkulous/) - A quality of life improvement that benefits hundreds of subreddits diff --git a/versioned_docs/version-0.11/showcase/tutorials/intro-to-devvit.mdx b/versioned_docs/version-0.11/showcase/tutorials/intro-to-devvit.mdx index 17ae3b2..08a78eb 100644 --- a/versioned_docs/version-0.11/showcase/tutorials/intro-to-devvit.mdx +++ b/versioned_docs/version-0.11/showcase/tutorials/intro-to-devvit.mdx @@ -94,6 +94,6 @@ Make sure your subreddit is set to public, and select "Share with Devvit" from t Now you know how to create and deploy apps! Next up, try the following: -- Check out the [showcase](../../showcase/apps) to see what others have created. -- Learn how to [publish](../../publishing) your app and make it public in the Apps directory. -- Follow the [Remind Me](./remind_me) tutorial. +- Check out the [showcase](../../showcase/apps.mdx) to see what others have created. +- Learn how to [publish](../../publishing.md) your app and make it public in the Apps directory. +- Follow the [Remind Me](./remind_me.md) tutorial. diff --git a/versioned_docs/version-0.11/updating_the_cli.mdx b/versioned_docs/version-0.11/updating_the_cli.mdx index 50f4e67..99d1005 100644 --- a/versioned_docs/version-0.11/updating_the_cli.mdx +++ b/versioned_docs/version-0.11/updating_the_cli.mdx @@ -20,7 +20,7 @@ There are currently two ways to update the Devvit CLI, depending on how you inst not, you likely have it installed as a dev dependency in your project - you can check this by looking for `devvit` in your project's `package.json` file under the `devDependencies` section. (If you don't see it in either place, you may not have the CLI installed at all, in which case, - you can follow the [quickstart guide](./quickstart) to install it.) + you can follow the [quickstart guide](./quickstart.mdx) to install it.)
diff --git a/versioned_docs/version-0.11/webviews.md b/versioned_docs/version-0.11/webviews.md index a3af984..cc7aa16 100644 --- a/versioned_docs/version-0.11/webviews.md +++ b/versioned_docs/version-0.11/webviews.md @@ -224,7 +224,7 @@ Web views that are presented in fullscreen without user interaction will not be ## Communication between Devvit and web view -Web views let you build custom UIs with HTML/CSS/JS while accessing Devvit's backend services ([Redis](./capabilities/redis.md), [fetch](./capabilities/http-fetch.mdx), [scheduler](./capabilities/scheduler.md), [triggers](./capabilities/triggers)) via message passing between the two contexts. +Web views let you build custom UIs with HTML/CSS/JS while accessing Devvit's backend services ([Redis](./capabilities/redis.md), [fetch](./capabilities/http-fetch.mdx), [scheduler](./capabilities/scheduler.md), [triggers](./capabilities/triggers.md)) via message passing between the two contexts. ![Sample web views post](./assets/webviews-devvit-architecture.png) diff --git a/versioned_docs/version-0.12/blocks/attributes/_color.md b/versioned_docs/version-0.12/blocks/attributes/_color.md index e991cda..6624d32 100644 --- a/versioned_docs/version-0.12/blocks/attributes/_color.md +++ b/versioned_docs/version-0.12/blocks/attributes/_color.md @@ -1,4 +1,4 @@ -A `string` for setting the color to any [Blocks-compatible color value](./colors). Possible values: +A `string` for setting the color to any [Blocks-compatible color value](../colors.mdx). Possible values: - HTML color names: `red` - HEX: `#ff4500` diff --git a/versioned_docs/version-0.12/blocks/overview.mdx b/versioned_docs/version-0.12/blocks/overview.mdx index 369c189..f149f7c 100644 --- a/versioned_docs/version-0.12/blocks/overview.mdx +++ b/versioned_docs/version-0.12/blocks/overview.mdx @@ -9,17 +9,17 @@ We support the following elements: ### Containers - **Blocks** -- [**HStack**](./stacks) -- [**VStack**](./stacks) -- [**ZStack**](./stacks) +- [**HStack**](./stacks.mdx) +- [**VStack**](./stacks.mdx) +- [**ZStack**](./stacks.mdx) ### Objects -- [**Text**](./text) -- [**Button**](./button) -- [**Spacer**](./spacer) -- [**Image**](./image) -- [**Icon**](./icon) +- [**Text**](./text.mdx) +- [**Button**](./button.mdx) +- [**Spacer**](./spacer.mdx) +- [**Image**](./image.mdx) +- [**Icon**](./icon.mdx) Further elements (components) may be derived from these blocks, and obey the same rules. @@ -80,16 +80,16 @@ Grow elements are flexible. Whenever the full width (or height) of a parent elem All elements inherit a direction for the purposes of growing. Things only grow in one direction at a time. -| Element | Self Direction | Child Direction | -| ------------------ | -------------- | --------------- | -| Blocks | N/A | Vertical | -| [HStack](./stacks) | Inherit | Horizontal | -| [VStack](./stacks) | Inherit | Vertical | -| [ZStack](./stacks) | Inherit | Inherit | -| [Text](./text) | Horizontal | N/A | -| [Button](./button) | Horizontal | N/A | -| [Spacer](./spacer) | Inherit | N/A | -| [Image](./image) | Inherit | N/A | +| Element | Self Direction | Child Direction | +| ---------------------- | -------------- | --------------- | +| Blocks | N/A | Vertical | +| [HStack](./stacks.mdx) | Inherit | Horizontal | +| [VStack](./stacks.mdx) | Inherit | Vertical | +| [ZStack](./stacks.mdx) | Inherit | Inherit | +| [Text](./text.mdx) | Horizontal | N/A | +| [Button](./button.mdx) | Horizontal | N/A | +| [Spacer](./spacer.mdx) | Inherit | N/A | +| [Image](./image.mdx) | Inherit | N/A | ### Overflow diff --git a/versioned_docs/version-0.12/capabilities/blocks/overview.md b/versioned_docs/version-0.12/capabilities/blocks/overview.md index 3cb01f5..b6cda57 100644 --- a/versioned_docs/version-0.12/capabilities/blocks/overview.md +++ b/versioned_docs/version-0.12/capabilities/blocks/overview.md @@ -27,17 +27,17 @@ We support the following elements: ### Containers - **Blocks** -- [**HStack**](../../../blocks/stacks) -- [**VStack**](../../../blocks/stacks) -- [**ZStack**](../../../blocks/stacks) +- [**HStack**](../../blocks/stacks.mdx) +- [**VStack**](../../blocks/stacks.mdx) +- [**ZStack**](../../blocks/stacks.mdx) ### Objects -- [**Text**](../../../blocks/text) -- [**Button**](../../../blocks/button) -- [**Spacer**](../../../blocks/spacer) -- [**Image**](../../../blocks/image) -- [**Icon**](../../../blocks/icon) +- [**Text**](../../blocks/text.mdx) +- [**Button**](../../blocks/button.mdx) +- [**Spacer**](../../blocks/spacer.mdx) +- [**Image**](../../blocks/image.mdx) +- [**Icon**](../../blocks/icon.mdx) Further elements (components) may be derived from these blocks, and obey the same rules. @@ -98,16 +98,16 @@ Grow elements are flexible. Whenever the full width (or height) of a parent elem All elements inherit a direction for the purposes of growing. Things only grow in one direction at a time. -| Element | Self Direction | Child Direction | -| -------------------------------- | -------------- | --------------- | -| Blocks | N/A | Vertical | -| [HStack](../../../blocks/stacks) | Inherit | Horizontal | -| [VStack](../../../blocks/stacks) | Inherit | Vertical | -| [ZStack](../../../blocks/stacks) | Inherit | Inherit | -| [Text](../../../blocks/text) | Horizontal | N/A | -| [Button](../../../blocks/button) | Horizontal | N/A | -| [Spacer](../../../blocks/spacer) | Inherit | N/A | -| [Image](../../../blocks/image) | Inherit | N/A | +| Element | Self Direction | Child Direction | +|-----------------------------------| -------------- | --------------- | +| Blocks | N/A | Vertical | +| [HStack](../../blocks/stacks.mdx) | Inherit | Horizontal | +| [VStack](../../blocks/stacks.mdx) | Inherit | Vertical | +| [ZStack](../../blocks/stacks.mdx) | Inherit | Inherit | +| [Text](../../blocks/text.mdx) | Horizontal | N/A | +| [Button](../../blocks/button.mdx) | Horizontal | N/A | +| [Spacer](../../blocks/spacer.mdx) | Inherit | N/A | +| [Image](../../blocks/image.mdx) | Inherit | N/A | ### Overflow diff --git a/versioned_docs/version-0.12/capabilities/devvit-web/devvit_web_overview.mdx b/versioned_docs/version-0.12/capabilities/devvit-web/devvit_web_overview.mdx index 5fa934a..90edf5b 100644 --- a/versioned_docs/version-0.12/capabilities/devvit-web/devvit_web_overview.mdx +++ b/versioned_docs/version-0.12/capabilities/devvit-web/devvit_web_overview.mdx @@ -89,4 +89,4 @@ All server endpoints must start with `/api/` (e.g. `/api/get-something` or `/api `devvit.json` is the configuration file for Devvit apps. It defines an app's post configuration, Node.js server configuration, permissions, scheduled jobs, event triggers, menu entries, payments configuration, and project settings. `devvit.json` replaces the legacy `devvit.yaml` configuration. A project should have one or the other but not both. -Learn more about [devvit.json](./devvit_web_configuration) +Learn more about [devvit.json](./devvit_web_configuration.md) diff --git a/versioned_docs/version-0.12/capabilities/server/overview.md b/versioned_docs/version-0.12/capabilities/server/overview.md index ab05e97..a36be05 100644 --- a/versioned_docs/version-0.12/capabilities/server/overview.md +++ b/versioned_docs/version-0.12/capabilities/server/overview.md @@ -28,7 +28,7 @@ Allows you to run automated server-side tasks on a schedule, for example, checki Allows you to build an app where the moderator can store secret keys in a safe and scalable way. For example, if your app needs the installing moderator to provide their own keys to an external API. -## [Triggers](./triggers) +## [Triggers](./triggers.mdx) Allows you to run automated server-side tasks when certain events happen on Reddit, for example: when a new post is created, or when a new comment is created. diff --git a/versioned_docs/version-0.12/capabilities/server/post-data.mdx b/versioned_docs/version-0.12/capabilities/server/post-data.mdx index 6808a75..1bb20f5 100644 --- a/versioned_docs/version-0.12/capabilities/server/post-data.mdx +++ b/versioned_docs/version-0.12/capabilities/server/post-data.mdx @@ -8,7 +8,7 @@ You can attach small amounts of data (2KB) to a post when creating it and update Post data is useful for storing game state, scores, or any other information that needs to persist with the post and be shared across all users. -Post data is set when you submitPost and apps can access from the context object or do a server side call to update the post data on a Post object. For larger data, use [redis](./redis). +Post data is set when you submitPost and apps can access from the context object or do a server side call to update the post data on a Post object. For larger data, use [redis](./redis.mdx). :::note Post data is sent to the client. Never store secrets or sensitive information. diff --git a/versioned_docs/version-0.12/changelog.md b/versioned_docs/version-0.12/changelog.md index c87671e..00a5044 100644 --- a/versioned_docs/version-0.12/changelog.md +++ b/versioned_docs/version-0.12/changelog.md @@ -96,7 +96,7 @@ This release focuses on Reddit data access and instrumenting WebView clients **Release Date: Nov 10, 2025** -Release 0.12.2 delivers a major evolution in how interactive Devvit apps load, display, and engage users. With this update, you can now leverage inline web views, in addition to expanded mode, to build your interactive posts with Devvit Web. We’re also deprecating [Splash Screens](./capabilities/server/launch_screen_and_entry_points/splash_migration) in favor of more customizable HTML inline launch screens. +Release 0.12.2 delivers a major evolution in how interactive Devvit apps load, display, and engage users. With this update, you can now leverage inline web views, in addition to expanded mode, to build your interactive posts with Devvit Web. We’re also deprecating [Splash Screens](./capabilities/server/launch_screen_and_entry_points/splash_migration.mdx) in favor of more customizable HTML inline launch screens. **Inline Mode** @@ -114,10 +114,10 @@ Devvit apps using inline web views are currently seeing inflated metrics in thei Splash screens are yesterday’s news. The improved inline launch screens are now fully customizable, HTML-based entry points for your interactive posts. This update gives you control over design, animation, and loading behavior and uses the same tools and styles as the rest of your app. -The new first screen automatically loads before your app’s main entry point. Read the docs to learn how to [upgrade your app](./capabilities/server/launch_screen_and_entry_points/splash_migration) and [customize your launch screen](./capabilities/server/launch_screen_and_entry_points/launch_screen_customization). +The new first screen automatically loads before your app’s main entry point. Read the docs to learn how to [upgrade your app](./capabilities/server/launch_screen_and_entry_points/splash_migration.mdx) and [customize your launch screen](./capabilities/server/launch_screen_and_entry_points/launch_screen_customization.md). :::note -**Deprecation notice**: We're deprecating the splash parameter in submitCustomPost() and removing it in the next major version update. Learn how to [update your app](./capabilities/server/launch_screen_and_entry_points/splash_migration). +**Deprecation notice**: We're deprecating the splash parameter in submitCustomPost() and removing it in the next major version update. Learn how to [update your app](./capabilities/server/launch_screen_and_entry_points/splash_migration.mdx). ::: **Multiple App Entry Points** diff --git a/versioned_docs/version-0.12/devvit_rules.md b/versioned_docs/version-0.12/devvit_rules.md index 27f05a8..4eb9b40 100644 --- a/versioned_docs/version-0.12/devvit_rules.md +++ b/versioned_docs/version-0.12/devvit_rules.md @@ -12,9 +12,9 @@ Your app is subject to our app review and approval. Reddit may reject or remove These Devvit Rules are intended to clarify how we review Devvit apps and streamline the process for you and Reddit. Our goal is to keep redditors safe and enable developers to build fun and useful apps for redditors. This means our Devvit Rules may evolve over time, which you should keep in mind when building or updating your app. Please [reach out](https://developers.reddit.com/docs/help) if you have any questions on these Devvit Rules. Any exceptions to these Devvit Rules or any other Reddit Terms & Policies must be approved in writing by Reddit. -You can use Devvit and test your app without needing to submit it to Reddit’s App Review. However, to make your app visible in the [Reddit App Directory](https://developers.reddit.com/apps) and publicly available for other mods and admins to install, you’ll need prior app approval. Additionally, if you want to unlock premium features for your app (for example, [payments](./earn-money/payments/payments_overview), [fetching](./capabilities/server/http-fetch), or [using LLMs](#generative-aillm-rules)), you’ll also need prior app approval. +You can use Devvit and test your app without needing to submit it to Reddit’s App Review. However, to make your app visible in the [Reddit App Directory](https://developers.reddit.com/apps) and publicly available for other mods and admins to install, you’ll need prior app approval. Additionally, if you want to unlock premium features for your app (for example, [payments](./earn-money/payments/payments_overview.md), [fetching](./capabilities/server/http-fetch.mdx), or [using LLMs](#generative-aillm-rules)), you’ll also need prior app approval. -You can start the Reddit app review process by [publishing your app](./guides/launch/launch-guide). Before starting a Reddit app review, we recommend: +You can start the Reddit app review process by [publishing your app](./guides/launch/launch-guide.md). Before starting a Reddit app review, we recommend: - Thoroughly playtesting your app, - Carefully reviewing these Devvit Rules and other Reddit Terms & Policies, and @@ -44,7 +44,7 @@ You and your app(s) must: - Provide discrete functionality and always try to make Reddit more enjoyable - Maintain functionality that communities rely on, communicate when you cannot, and make it easy to contact you for support - Be transparent and use clear naming and descriptions that accurately describe your app’s functionality, purpose, and data practices -- Include your own terms of service and privacy policy if your app uses premium features (for example, [payments](./earn-money/payments/payments_overview), [fetching](./capabilities/server/http-fetch), or [using LLMs](#generative-aillm-rules)) or if requested by Reddit +- Include your own terms of service and privacy policy if your app uses premium features (for example, [payments](./earn-money/payments/payments_overview.md), [fetching](./capabilities/server/http-fetch.mdx), or [using LLMs](#generative-aillm-rules)) or if requested by Reddit - Provide accurate information about your relationship with Reddit or any other person or entity, including other developers (for example, by including them in your app description) - Test your app locally and in sandbox subreddits when applicable - Avoid enabling or allowing others to violate these Devvit Rules or other Reddit Terms & Policies @@ -126,11 +126,11 @@ Your app must comply with all privacy and data protection requirements outlined ### Be careful using external sites or services -If your app uses [HTTP Fetch](./capabilities/server/http-fetch) or otherwise collects personal information about app users, we require you to have a terms of service and privacy policy and include a link to both in your app. Your terms of service and privacy policy must completely and accurately describe how you and your app collects, uses, shares, and stores data and why. (Please note that links to Reddit’s [User Agreement](https://redditinc.com/policies/user-agreement) and/or [Privacy Policy](https://www.reddit.com/policies/privacy-policy) will not be accepted.) +If your app uses [HTTP Fetch](./capabilities/server/http-fetch.mdx) or otherwise collects personal information about app users, we require you to have a terms of service and privacy policy and include a link to both in your app. Your terms of service and privacy policy must completely and accurately describe how you and your app collects, uses, shares, and stores data and why. (Please note that links to Reddit’s [User Agreement](https://redditinc.com/policies/user-agreement) and/or [Privacy Policy](https://www.reddit.com/policies/privacy-policy) will not be accepted.) If your app links to any third-party site that may collect redditor personal data, you are solely responsible for verifying the legitimacy and security of the third-party site and should ensure that they are in compliance with all applicable laws. For example, you should ensure that a site collecting personal data provides a privacy policy that clearly discloses what data is collected, how the data is used, and how the data is shared. -You’ll also need permission during app review to direct redditors outside of Reddit or otherwise collect personal information about them. To request HTTP Fetch functionality for a specific domain, please follow [these instructions](./capabilities/server/http-fetch). +You’ll also need permission during app review to direct redditors outside of Reddit or otherwise collect personal information about them. To request HTTP Fetch functionality for a specific domain, please follow [these instructions](./capabilities/server/http-fetch.mdx). ## Content rules @@ -160,7 +160,7 @@ Whether your app uses existing user content or otherwise allows users to create - _Account Deletions_ – When a user account is deleted, the related user ID (t2\_\*) must be completely removed from your hosted datastores (e.g., Redis) and any external systems. You must also delete all references to the author-identifying information (including the author ID, name, profile URL, avatar image URL, user flair, etc.) from posts and comments created by that account. You may continue to keep posts and comments created by deleted accounts, provided that the posts and comments have not been explicitly deleted. -- _Setting Up Auto-Deletion_ – To best comply with this policy, we recommend deleting any stored user data within 30 days. For any data you are storing in Redis, you can use the [expire function](./capabilities/server/redis#key-expiration) to ensure data gets deleted automatically. +- _Setting Up Auto-Deletion_ – To best comply with this policy, we recommend deleting any stored user data within 30 days. For any data you are storing in Redis, you can use the [expire function](./capabilities/server/redis.mdx#key-expiration) to ensure data gets deleted automatically. - **Enabling Deletions of New User Content** – if your app allows users to create new user content, you must ensure that users have the ability to remove their own content when desired and comply with all legal requirements related to content removals. It is important to have safety guardrails in place if your app allows users to create new user content so that the content can be reported and removed by app users. diff --git a/versioned_docs/version-0.12/earn-money/payments/payments_add.md b/versioned_docs/version-0.12/earn-money/payments/payments_add.md index 7c52233..b1e4e7f 100644 --- a/versioned_docs/version-0.12/earn-money/payments/payments_add.md +++ b/versioned_docs/version-0.12/earn-money/payments/payments_add.md @@ -132,7 +132,7 @@ Product prices are predefined and must be one of the following gold values: - 2500 gold ($50) :::note -Actual payments will not be processed until your products are approved. While your app is under development, you can use sandbox payments to [simulate purchases](./payments_test#simulate-purchases). +Actual payments will not be processed until your products are approved. While your app is under development, you can use sandbox payments to [simulate purchases](./payments_test.md#simulate-purchases). ::: ## Design guidelines diff --git a/versioned_docs/version-0.12/introduction/intro-games.mdx b/versioned_docs/version-0.12/introduction/intro-games.mdx index 6126f1e..cb00c91 100644 --- a/versioned_docs/version-0.12/introduction/intro-games.mdx +++ b/versioned_docs/version-0.12/introduction/intro-games.mdx @@ -26,7 +26,6 @@ Reddit is home to millions of communities, each with its own culture and interes { title: 'Quickstart', image: Rocket, - href: '../quickstart', background: 'linear-gradient(135deg, #b2f7ef 0%, #4be18a 100%)', textColor: '#003820', imageSide: 'left', @@ -36,7 +35,6 @@ Reddit is home to millions of communities, each with its own culture and interes { title: 'Showcase', image: Celebration, - href: '../examples/app-showcase', background: 'linear-gradient(135deg, #ffe066 0%, #ff7c53 100%)', textColor: '#5a2a00', imageSide: 'right', @@ -44,7 +42,10 @@ Reddit is home to millions of communities, each with its own culture and interes alt: 'Showcase', }, ]} -/> +> + [Quickstart](../quickstart/quickstart.md) + [Showcase](../examples/app-showcase.mdx) +
diff --git a/versioned_docs/version-0.12/introduction/intro-mod-tools.mdx b/versioned_docs/version-0.12/introduction/intro-mod-tools.mdx index 883b891..dbca9e9 100644 --- a/versioned_docs/version-0.12/introduction/intro-mod-tools.mdx +++ b/versioned_docs/version-0.12/introduction/intro-mod-tools.mdx @@ -24,7 +24,6 @@ Devvit is Reddit’s developer platform for building interactive, cross-platform { title: 'Quickstart', image: Rocket, - href: '../quickstart/quickstart-mod-tool', background: 'linear-gradient(135deg, #b2f7ef 0%, #4be18a 100%)', textColor: '#003820', imageSide: 'left', @@ -34,7 +33,6 @@ Devvit is Reddit’s developer platform for building interactive, cross-platform { title: 'Mod Resources', image: SnooToolboxClipboard, - href: '../guides/best-practices/mod_resources', background: 'linear-gradient(135deg, #ffe066 0%, #ff7c53 100%)', textColor: '#5a2a00', imageSide: 'right', @@ -42,7 +40,10 @@ Devvit is Reddit’s developer platform for building interactive, cross-platform alt: 'Three Strikes Tutorial', }, ]} -/> +> + [Quickstart](../quickstart/quickstart.md) + [Mod Resources](../guides/best-practices/mod_resources.md) +
diff --git a/versioned_docs/version-0.12/introduction/introduction.mdx b/versioned_docs/version-0.12/introduction/introduction.mdx index 47cc0ad..e4fcb46 100644 --- a/versioned_docs/version-0.12/introduction/introduction.mdx +++ b/versioned_docs/version-0.12/introduction/introduction.mdx @@ -11,11 +11,11 @@ import SnooToolboxClipboard from '@site/versioned_docs/version-0.12/assets/intro
-Devvit allows you to build interactive games and apps that live on Reddit. Build experiences that can earn up to $167,000 per app with our [Reddit Developer Funds](./earn-money/reddit_developer_funds). +Devvit allows you to build interactive games and apps that live on Reddit. Build experiences that can earn up to $167,000 per app with our [Reddit Developer Funds](../earn-money/reddit_developer_funds.md). Build community games like [Hot and Cold](https://www.reddit.com/r/hotandcold/), [Sword and Supper](https://www.reddit.com/r/SwordAndSupper/), and [Honk](https://www.reddit.com/r/RedditGames/), or create [custom mod tools](https://www.reddit.com/r/ModSupport/comments/1k6szsj/devvit_apps_for_moderation_a_list/) to empower your community. -**More examples:** [App Showcase](./examples/app-showcase) +**More examples:** [App Showcase](../examples/app-showcase.mdx) **Questions?** Join [r/devvit](https://www.reddit.com/r/devvit/) or our [Discord](https://discord.gg/Cd43ExtEFS). @@ -43,7 +43,6 @@ Build community games like [Hot and Cold](https://www.reddit.com/r/hotandcold/), { title: 'Build Games', image: Rocket, - href: './introduction/intro-games', background: 'linear-gradient(135deg, #b2f7ef 0%, #4be18a 100%)', textColor: '#003820', imageSide: 'left', @@ -53,7 +52,6 @@ Build community games like [Hot and Cold](https://www.reddit.com/r/hotandcold/), { title: 'Create Mod Tools', image: SnooToolboxClipboard, - href: './introduction/intro-mod-tools', background: 'linear-gradient(135deg, #ffe066 0%, #ff7c53 100%)', textColor: '#5a2a00', imageSide: 'right', @@ -61,4 +59,7 @@ Build community games like [Hot and Cold](https://www.reddit.com/r/hotandcold/), alt: 'Create Mod Tools', }, ]} -/> +> + [Build Games](./intro-games.mdx) + [Create Mod Tools](./intro-mod-tools.mdx) +