A little playground for building apps on Reddit.
npm install --save-prefix= @devvit/play
See the changelog for release notes.
Import play in your JavaScript bundle to define the play-pen
element:
import '@devvit/play/pen'
Add a pen to your HTML markup:
<play-pen>
<script type="application/devvit">
import {Devvit} from '@devvit/public-api'
Devvit.addCustomPostType({
name: 'Say Hello',
render: () => <text>Hello!</text>
})
export default Devvit
</script>
</play-pen>
Published releases include:
- play-.*.html: portable playground (Firefox only since v0.0.32).
-
play-pen.js:
play-pen
element. - play.js: library utilities.
npm install
npm start
Visit http://localhost:1234 in your web browser.
Run npm test
to execute tests.
See supplemental development notes.
-
install
: install play dependencies. -
start
: run development server. -
test
: build play and execute all tests. Anything that can be validated automatically before publishing runs through this command. -
run test:unit
: run the unit tests. Pass--update
to update all test snapshots. -
run test:ui
: run the user interface integration tests. Pass--manual
to inspect browser and / or a filename to filter. -
run format
: apply lint fixes automatically where available. -
run build
: compile source inputs to artifacts underdist/
.
💡 Add --
to pass arguments to the script command. For example,
npm run test:unit -- --update
to update snapshots.
- docs/: supplemental play documentation.
- src/: source inputs.
- tools/: development tools for building :play.
- Make it fun. play must be fun to use and fun to develop. Speed and quality are play's top two features.
- Avoid dependencies. Dependencies are high-cost integrations. Simply don't add them.
- Avoid code. Lines of code are costly. We probably can't afford your code if you write a lot of it.
- Open-source for everyone. This repo was started with the intention to be
open-sourced as soon as possible.
- All dependencies must be available publicly. Avoid closed-source Reddit dependencies.
- Avoid Reddit-specific branding.
- Code should be written to be read. We value good context. This often means including short inline or accompanying docs.
- Keep the interface and outputs plain and simple. play is only a tool. The user's focus is their work.
- Every commit should be an overall improvement. If every commit is an improvement, the code only gets better.
- Smaller patches get better reviews.