Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ build
.env.development.local
.env.test.local
.env.production.local
.idea

npm-debug.log*
yarn-debug.log*
Expand Down
2 changes: 1 addition & 1 deletion docs/blocks/attributes/_color.md
Original file line number Diff line number Diff line change
@@ -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`
Expand Down
36 changes: 18 additions & 18 deletions docs/blocks/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down Expand Up @@ -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

Expand Down
36 changes: 18 additions & 18 deletions docs/capabilities/blocks/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down Expand Up @@ -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

Expand Down
2 changes: 1 addition & 1 deletion docs/capabilities/devvit-web/devvit_web_overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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)
2 changes: 1 addition & 1 deletion docs/capabilities/server/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down
2 changes: 1 addition & 1 deletion docs/capabilities/server/post-data.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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.
Expand Down
6 changes: 3 additions & 3 deletions docs/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -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**

Expand All @@ -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**
Expand Down
12 changes: 6 additions & 6 deletions docs/devvit_rules.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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.

Expand Down
2 changes: 1 addition & 1 deletion docs/earn-money/payments/payments_add.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
9 changes: 5 additions & 4 deletions docs/introduction/intro-games.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand All @@ -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',
Expand All @@ -36,15 +35,17 @@ 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',
textAlign: 'left',
alt: 'Showcase',
},
]}
/>
>
[Quickstart](../quickstart/quickstart.md)
[Showcase](../examples/app-showcase.mdx)
</IntroTilePanel>

<hr style={{ margin: '2.5rem 0', border: 'none', borderTop: '2px solid #eee' }} />

Expand Down
7 changes: 4 additions & 3 deletions docs/introduction/intro-mod-tools.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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',
Expand All @@ -34,15 +33,17 @@ 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',
textAlign: 'left',
alt: 'Three Strikes Tutorial',
},
]}
/>
>
[Quickstart](../quickstart/quickstart.md)
[Mod Resources](../guides/best-practices/mod_resources.md)
</IntroTilePanel>

<hr style={{ margin: '2.5rem 0', border: 'none', borderTop: '2px solid #eee' }} />

Expand Down
Loading