+
+ Saturn V Sandbox
+
+
+
+
+
diff --git a/crates/sandbox/src/lib.rs b/crates/sandbox/src/lib.rs
new file mode 100644
index 0000000..a80e746
--- /dev/null
+++ b/crates/sandbox/src/lib.rs
@@ -0,0 +1,61 @@
+// Copyright (C) 2025-2026 Marceline Cramer
+// SPDX-License-Identifier: AGPL-3.0-or-later
+//
+// Saturn V is free software: you can redistribute it and/or modify it under
+// the terms of the GNU Affero General Public License as published by the Free
+// Software Foundation, either version 3 of the License, or (at your option) any
+// later version.
+//
+// Saturn V is distributed in the hope that it will be useful, but WITHOUT ANY
+// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+// FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for
+// more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with Saturn V. If not, see .
+
+use leptos::{html::Div, prelude::*};
+use wasm_bindgen::prelude::*;
+use web_sys::{
+ js_sys::{self, Reflect},
+ Element,
+};
+
+#[wasm_bindgen]
+pub fn mount(el: Element) {
+ console_error_panic_hook::set_once();
+ mount_to(el.dyn_into().unwrap(), App).forget();
+}
+
+#[component]
+pub fn App() -> impl IntoView {
+ view! {
+
::new();
+
+ node.on_load(|node| {
+ let config = js_sys::Object::new();
+ Reflect::set(&config, &"doc".into(), &"test contents\n".into()).unwrap();
+ Reflect::set(&config, &"parent".into(), node.dyn_ref().unwrap()).unwrap();
+ Reflect::set(&config, &"extensions".into(), &basicSetup).unwrap();
+ EditorView::new(config);
+ });
+
+ view! { }
+}
+
+#[wasm_bindgen(module = "https://esm.sh/codemirror@6.0.2")]
+extern "C" {
+ pub type EditorView;
+
+ #[wasm_bindgen(constructor)]
+ pub fn new(args: js_sys::Object) -> EditorView;
+
+ static basicSetup: JsValue;
+}
diff --git a/crates/sandbox/src/main.rs b/crates/sandbox/src/main.rs
new file mode 100644
index 0000000..507137c
--- /dev/null
+++ b/crates/sandbox/src/main.rs
@@ -0,0 +1,20 @@
+// Copyright (C) 2025-2026 Marceline Cramer
+// SPDX-License-Identifier: AGPL-3.0-or-later
+//
+// Saturn V is free software: you can redistribute it and/or modify it under
+// the terms of the GNU Affero General Public License as published by the Free
+// Software Foundation, either version 3 of the License, or (at your option) any
+// later version.
+//
+// Saturn V is distributed in the hope that it will be useful, but WITHOUT ANY
+// WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+// FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for
+// more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with Saturn V. If not, see .
+
+fn main() {
+ console_error_panic_hook::set_once();
+ leptos::mount::mount_to_body(saturn_v_sandbox::App);
+}