diff --git a/apps/ball/README.md b/apps/ball/README.md
index b78e5a113..28c029957 100644
--- a/apps/ball/README.md
+++ b/apps/ball/README.md
@@ -3,7 +3,16 @@
A simple demo application that mainly demonstrates how to integrate into the Xous framework,
but without much emphasis on I/O.
-## Integration
+
+
+A ball bounces around, changing directions randomly whenever it hits a border. Pressing
+any key will pop up a modal dialog box that informs you of the key pressed, and then
+gives you an option to change the behavior into a "tilt" driven mode where the gyro
+is read and used to control the ball's motion.
+
+This is a fairly "raw iron" demo, and would be a reasonable starting point for someone who,
+for example, wants to write a video game.
+## Copying This App
1. Add a UX context by editing `services/gam/src/lib.rs/EXPECTED_BOOT_CONTEXTS`
2. Copy this demo application, and rename the relevant structures in its `Cargo.toml` and `main.rs`.
diff --git a/apps/ball/ball_screenshot.png b/apps/ball/ball_screenshot.png
new file mode 100644
index 000000000..1a71d427d
Binary files /dev/null and b/apps/ball/ball_screenshot.png differ
diff --git a/apps/repl/README.md b/apps/repl/README.md
index 8a28640b3..b6480842d 100644
--- a/apps/repl/README.md
+++ b/apps/repl/README.md
@@ -1,12 +1,56 @@
# REPL
A simple demo application that provides a bare-bones REPL framework.
-
-## Integration
+## Copying This Demo to a New App
1. Add a UX context by editing `services/gam/src/lib.rs/EXPECTED_BOOT_CONTEXTS`
2. Copy this demo application, and rename the relevant structures in its `Cargo.toml` and `main.rs`.
3. Add it to the Workspace `default-members` and `members` arrays by editing `./Cargo.toml`
4. Add it to the build by editing `xtask/src/main.rs` and inserting it into the relevant descriptor. Typically, you would insert your app into the `hw_pkgs` array, as this is what is built and targeted for full hardware builds. Most of the other trimmed-down descriptors are for debug, emulation, and benchmarking.
5. (optional) You may also need to run `cargo xtask generate-locales` if you modify/add any internationalization strings.
-6. Add entries to the app switching menu. `services/status/src/appmenu.rs` to add the menu item (plus `locales/i18n.json` in the status directory if you want translated names for the app), and `services/status/src/main.rs` to add the Opcode (inside the `StatusOpcode` struct, around line 55) and the actual operation itself (in the main `loop`, around line 670).
\ No newline at end of file
+6. Add entries to the app switching menu. `services/status/src/appmenu.rs` to add the menu item (plus `locales/i18n.json` in the status directory if you want translated names for the app), and `services/status/src/main.rs` to add the Opcode (inside the `StatusOpcode` struct, around line 55) and the actual operation itself (in the main `loop`, around line 670).
+
+## Details
+
+
+
+`repl` is a baseline demo application for Xous. It uses a chat-client
+style interface (stacking bubbles of text, with user input right-aligned
+and shell feedback left-aligned) to facilitate interactions.
+
+It implements the basic envisioned structure of a Xous application, namely:
+
+ - Text input comes via the `ime-frontend`
+ - Graphical output is rendered via the `gam`
+
+To make your own command, copy the `audio.rs` template
+in the `apps/repl/src/cmds/` directory, or use this very basic `echo`
+template:
+
+```Rust
+use crate::{ShellCmdApi, CommonEnv};
+use xous_ipc::String;
+
+#[derive(Debug)]
+pub struct Echo {
+}
+
+impl<'a> ShellCmdApi<'a> for Echo {
+ cmd_api!(echo); // inserts boilerplate for command API
+
+ fn process(&mut self, args: String::<1024>, _env: &mut CommonEnv) -> Result