diff --git a/integrations/wordpress/plugins/spacedeck/spacedeck.php b/integrations/wordpress/plugins/spacedeck/spacedeck.php
new file mode 100644
index 0000000000000000000000000000000000000000..97210aa37827abc3fc150241adcf431bc94a9b0d
--- /dev/null
+++ b/integrations/wordpress/plugins/spacedeck/spacedeck.php
@@ -0,0 +1,202 @@
+<?php
+/*
+  Plugin Name: Spacedeck
+  Plugin URI: https://spacedeck.com
+  description: Embed Spacedeck Whiteboards in Wordpress Posts
+  Version: 1.0
+  Author: MNT Research GmbH
+  Author URI: https://mntre.com
+  License: GPLv3+
+*/
+
+add_option("spacedeck_settings");
+
+function spacedeck_apicall($method, $path, $data) {
+	$spacedeck_api_base_uri = get_option("spacedeck_settings")[spacedeck_api_base_uri];
+	$spacedeck_api_key = get_option("spacedeck_settings")[spacedeck_api_key];
+	
+	$data_string = json_encode($data);
+	$url = $spacedeck_api_base_uri . $path;
+
+	$headers = array(
+		'Content-Type' => 'application/json',
+		'X-Spacedeck-API-Token' => $spacedeck_api_key
+	);
+	
+	$payload = array(
+		'method' => $method,
+		'timeout' => 10,
+		'blocking' => true,
+		'headers' => $headers,
+		'body' => $data_string
+	);
+
+	// echo("<p>payload:</p><pre>");
+	// print_r($payload);
+	// echo("</pre>");
+	
+	$result = wp_remote_post($url, $payload);
+
+	if (is_wp_error($result)) {
+		return $result;
+	}
+
+	$result = json_decode($result[body], true);
+
+	// echo("<p>decoded:</p><pre>");
+	// print_r($result);
+	// echo("</pre>");
+	
+	return $result;
+}
+
+function spacedeck_embed_space($slug, $width = '90%', $height = '800', $parent_space_id = null) {
+	$spacedeck_frontend_base_uri = get_option("spacedeck_settings")[spacedeck_frontend_base_uri];
+
+	// try to find the space identified by slug
+	$space = spacedeck_apicall("GET", "/spaces/" . $slug, array());
+
+	if (is_wp_error($space)) {
+		$error = $response->get_error_message();
+		return("<p><b>Spacedeck: WP Error looking up Space: $error</b></p>");
+	} else if ($space[error] && $space[error]!="space_not_found") {
+		return("<p><b>Spacedeck: Error looking up Space: $space[error]</b></p>");
+	}
+
+	// if it doesn't exist, create it:
+	if ($space[error]=="space_not_found") {
+		$data = array(
+			"name" => $slug,
+			"edit_slug" => $slug
+		);
+
+		if ($parent_space_id) {
+			$data[parent_space_id] = $parent_space_id;
+		}
+		
+		$space = spacedeck_apicall("POST", "/spaces", $data);
+
+		if (is_wp_error($space)) {
+			$error = $response->get_error_message();
+			return("<p><b>Spacedeck: WP Error creating Space: $error</b></p>");
+		} else if ($space[error]) {
+			return("<p><b>Spacedeck: Error creating Space: $space[error]</b></p>");
+		}
+	}
+
+	if (is_wp_error($space)) {
+		$error = $response->get_error_message();
+		return("<p><b>Spacedeck: WP Error embedding Space: $error</b></p>");
+	} else if (!$space || $space[error]) {
+		return("<p><b>Spacedeck: Error embedding Space. Is your API key set up correctly?</b></p>");
+	}
+
+	$space_auth = $space[edit_hash];
+	
+	// return a piece of html (iframe) embedding the space
+	$uri = $spacedeck_frontend_base_uri . '/spaces/' . $slug . '?embedded=1&spaceAuth=' . $space_auth;
+		
+	$html = "<iframe src='$uri' class='spacedeck' width='$width' height='$height' style='max-width:100%' frameborder='0' allowFullScreen='true'></iframe>";
+
+	return $html;
+}
+
+function spacedeck_shortcode($attrs) {
+	extract(shortcode_atts(array(
+		'id' => 'none',
+		'parent_space_id' => null,
+		'width' => '100%',
+		'height' => '800'
+	), $attrs));
+
+	$w = $attrs[width];
+	$h = $attrs[height];
+	if (!$w) $w = '100%';
+	if (!$h) $h = 800;
+
+	return spacedeck_embed_space($attrs[id],$w,$h,$attrs[parent_space_id]);
+}
+
+add_shortcode('spacedeck_space', 'spacedeck_shortcode');
+
+add_action('admin_menu', 'spacedeck_add_admin_menu');
+add_action('admin_init', 'spacedeck_settings_init');
+
+function spacedeck_add_admin_menu() { 
+	add_options_page('spacedeck', 'Spacedeck', 'manage_options', 'spacedeck', 'spacedeck_options_page');
+}
+
+function spacedeck_settings_init() { 
+	register_setting('pluginPage', 'spacedeck_settings');
+
+	add_settings_section(
+		'spacedeck_pluginPage_section', 
+		'Spacedeck Settings', 
+		'spacedeck_settings_section_callback', 
+		'pluginPage'
+	);
+
+	add_settings_field(
+		'spacedeck_text_field_0', 
+		'API key',
+		'spacedeck_text_field_0_render', 
+		'pluginPage', 
+		'spacedeck_pluginPage_section' 
+	);
+
+	add_settings_field(
+		'spacedeck_text_field_1', 
+		'API base URL', 
+		'spacedeck_text_field_1_render', 
+		'pluginPage', 
+		'spacedeck_pluginPage_section' 
+	);
+
+	add_settings_field(
+		'spacedeck_text_field_2', 
+		'Frontend base URL',
+		'spacedeck_text_field_2_render', 
+		'pluginPage',
+		'spacedeck_pluginPage_section' 
+	);
+}
+
+function spacedeck_text_field_0_render() {
+	$opts = get_option('spacedeck_settings');
+	?>
+	<input type='text' name='spacedeck_settings[spacedeck_api_key]' value='<?php echo $opts[spacedeck_api_key]; ?>'>
+<?php
+}
+
+function spacedeck_text_field_1_render() { 
+	$opts = get_option('spacedeck_settings');
+	?>
+	<input type='text' name='spacedeck_settings[spacedeck_api_base_uri]' value='<?php echo $opts[spacedeck_api_base_uri]; ?>'>
+<?php
+}
+
+function spacedeck_text_field_2_render() { 
+	$opts = get_option('spacedeck_settings');
+	?>
+	<input type='text' name='spacedeck_settings[spacedeck_frontend_base_uri]' value='<?php echo $opts[spacedeck_frontend_base_uri]; ?>'>
+<?php
+}
+
+function spacedeck_settings_section_callback() { 
+	echo '';
+}
+
+function spacedeck_options_page() {
+	?>
+	<form action='options.php' method='post'>
+<?php
+	settings_fields('pluginPage');
+	do_settings_sections('pluginPage');
+	submit_button();
+	?>
+	</form>
+<?php
+}
+
+
+?>