diff --git a/.gitignore b/.gitignore
index aeb6634..53dd354 100644
--- a/.gitignore
+++ b/.gitignore
@@ -33,6 +33,7 @@
 *.sqlite
 *.log
 *.db
+*.plugins.json
 *.old
 .*
 /t/kalamar_user_client.t
diff --git a/Changes b/Changes
index db5a4d0..4e0950e 100755
--- a/Changes
+++ b/Changes
@@ -1,4 +1,4 @@
-0.39 2020-09-21
+0.39 2020-09-22
         - Add information on secret file to Readme.
         - Change default API endpoint to korap.ids-mannheim.de.
         - Fix label for toggle plugins.
@@ -15,6 +15,8 @@
         - Added query parameter API to plugin server.
         - Minor documentation fix in Koral.
         - Added banner style.
+        - Introduced early 'Plugins' plugin to embed external
+          services.
 
         WARNING: If you relied on the former default API endpoint
           being http://localhost:9999/, this will break your
diff --git a/lib/Kalamar/Plugin/Plugins.pm b/lib/Kalamar/Plugin/Plugins.pm
new file mode 100644
index 0000000..5e2e4a0
--- /dev/null
+++ b/lib/Kalamar/Plugin/Plugins.pm
@@ -0,0 +1,91 @@
+package Kalamar::Plugin::Plugins;
+use Mojo::Base 'Mojolicious::Plugin';
+
+# Register the plugin
+sub register {
+  my ($plugin, $app, $param) = @_;
+
+  # Load parameter from config file
+  if (my $config_param = $app->config('Kalamar-Plugins')) {
+    $param = { %$param, %$config_param };
+  };
+
+  # There are default plugins to be registered
+  if ($param->{default_plugins}) {
+
+    # Read default plugins file
+    my $default = Mojo::File->new($param->{default_plugins});
+    my $json_array = $default->slurp;
+
+    # If any scripts are defined
+    if ($json_array) {
+
+      # TODO:
+      #   Make this CSP (#72) compliant.
+
+      # Add default plugins, if exist
+      $app->content_block(
+        scripts => {
+          inline => "<script>//<![CDATA[\nKorAP.Plugins=" . $json_array . "\n//]]></script>"
+        }
+      );
+    };
+  };
+
+  # TODO:
+  #   Add user registered plugins as a path
+};
+
+
+1;
+
+
+__END__
+
+=pod
+
+=encoding utf8
+
+=head1 NAME
+
+Kalamar::Plugin::Plugins - Register plugins in the user interface
+
+=head1 DESCRIPTION
+
+L<Kalamar::Plugin::Plugins> is an interface to register embedded plugins
+in the Kalamar user interface.
+
+B<WARNING! This is early software and not ready to use!>
+
+=head1 CONFIGURATION
+
+L<Kalamar::Plugin::Plugins> supports the following parameter for the
+C<Kalamar-Plugins> configuration section in the Kalamar configuration:
+
+=over 2
+
+=item B<default_plugins>
+
+Path for default plugins (mandatory for all users) to register in the
+frontend.
+
+=back
+
+=head2 COPYRIGHT AND LICENSE
+
+Copyright (C) 2020, L<IDS Mannheim|http://www.ids-mannheim.de/>
+Author: L<Nils Diewald|http://nils-diewald.de/>
+
+Kalamar is developed as part of the L<KorAP|http://korap.ids-mannheim.de/>
+Corpus Analysis Platform at the
+L<Leibniz Institute for the German Language (IDS)|http://ids-mannheim.de/>,
+member of the
+L<Leibniz-Gemeinschaft|http://www.leibniz-gemeinschaft.de>
+and supported by the L<KobRA|http://www.kobra.tu-dortmund.de> project,
+funded by the
+L<Federal Ministry of Education and Research (BMBF)|http://www.bmbf.de/en/>.
+
+Kalamar is free software published under the
+L<BSD-2 License|https://raw.githubusercontent.com/KorAP/Kalamar/master/LICENSE>.
+
+=cut
diff --git a/package.json b/package.json
index 97bed86..d05776c 100755
--- a/package.json
+++ b/package.json
@@ -2,8 +2,8 @@
   "name": "Kalamar",
   "description": "Mojolicious-based Frontend for KorAP",
   "license": "BSD-2-Clause",
-  "version": "0.39.1",
-  "pluginVersion": "0.2",
+  "version": "0.39.2",
+  "pluginVersion": "0.2.1",
   "engines": {
     "node": ">=6.0.0"
   },
diff --git a/t/plugin/plugins.t b/t/plugin/plugins.t
new file mode 100644
index 0000000..fa5ae91
--- /dev/null
+++ b/t/plugin/plugins.t
@@ -0,0 +1,38 @@
+use Mojo::Base -strict;
+use Test::More;
+use Test::Mojo;
+use Mojo::File qw/tempfile/;
+
+# Test the documentation
+my $t = Test::Mojo->new('Kalamar');
+
+my $temp = tempfile();
+
+$temp->spurt(<<SCRIPT);
+[{
+  'name' : 'Export',
+  'desc' : 'Exports Kalamar results',
+  'embed' : [{
+    'panel' : 'result',
+    'title' : 'exports KWICs and snippets',
+    'icon' : "\uf019",
+    'classes' : ['button-icon','plugin'],
+    'onClick' : {
+      'action' : 'addWidget',
+      'template' : 'http://localhost:7777/res/export.html'
+    }
+  }]
+}]
+SCRIPT
+
+$t->app->plugin('Plugins' => {
+  default_plugins => $temp->to_string
+});
+
+$t->get_ok('/')
+  ->text_is('h1 span', 'KorAP - Corpus Analysis Platform')
+  ->content_like(qr!KorAP\.Plugins\s*=\s*\[!)
+  ->content_like(qr!<script>\/\/<\!\[CDATA\[!)
+  ;
+
+done_testing;
