diff --git a/src/components/CodeActivity.astro b/src/components/CodeActivity.astro
new file mode 100644
index 00000000..8e7a9a9f
--- /dev/null
+++ b/src/components/CodeActivity.astro
@@ -0,0 +1,173 @@
+---
+import { SplashKitOnlineURL } from '/src/components/SplashKitOnlineConstants'
+
+import type { Props } from "@astrojs/starlight/props";
+import { Icon } from '@astrojs/starlight/components';
+import { Accordion, AccordionItem } from 'accessible-astro-components'
+
+const { header, projectName, resources, maxCodeHeight = 600, outputHeight = 300} = Astro.props;
+
+const codeSnippetID = `code-activity-${crypto.randomUUID()}`
+const iFrameID = `code-activity-${crypto.randomUUID()}`
+---
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/components/SplashKitOnlineConstants.ts b/src/components/SplashKitOnlineConstants.ts
new file mode 100644
index 00000000..caa92c9e
--- /dev/null
+++ b/src/components/SplashKitOnlineConstants.ts
@@ -0,0 +1 @@
+export const SplashKitOnlineURL = "https://whypenguins.github.io/SplashkitOnline";
diff --git a/src/content/docs/book/appendix/online-ide.mdx b/src/content/docs/book/appendix/online-ide.mdx
new file mode 100644
index 00000000..d9ff5ff3
--- /dev/null
+++ b/src/content/docs/book/appendix/online-ide.mdx
@@ -0,0 +1,30 @@
+---
+title: SplashKit Online IDE
+template: splash
+---
+import { SplashKitOnlineURL } from '/src/components/SplashKitOnlineConstants'
+
+
+
+