diff --git a/src/client/app/boot.js b/src/client/app/boot.js
index 9af58076e7b435254f6572ed81e13d1fa81300ff..6cb1488e40037acd372debf4ae0c7b17c2dfb36a 100644
--- a/src/client/app/boot.js
+++ b/src/client/app/boot.js
@@ -41,7 +41,6 @@
 	if (`${url.pathname}/`.startsWith('/dev/')) app = 'dev';
 	if (`${url.pathname}/`.startsWith('/auth/')) app = 'auth';
 	if (`${url.pathname}/`.startsWith('/admin/')) app = 'admin';
-	if (`${url.pathname}/`.startsWith('/test/')) app = 'test';
 	//#endregion
 
 	// Script version
diff --git a/src/client/app/test/script.ts b/src/client/app/test/script.ts
deleted file mode 100644
index 44fe224cbcd8cd29ed01716c5cf11407d68d4c95..0000000000000000000000000000000000000000
--- a/src/client/app/test/script.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import VueRouter from 'vue-router';
-
-// Style
-import './style.styl';
-
-import init from '../init';
-import Index from './views/index.vue';
-import NotFound from '../common/views/pages/not-found.vue';
-
-init(launch => {
-	document.title = 'Misskey';
-
-	// Init router
-	const router = new VueRouter({
-		mode: 'history',
-		base: '/test/',
-		routes: [
-			{ path: '/', component: Index },
-			{ path: '*', component: NotFound }
-		]
-	});
-
-	// Launch the app
-	launch(router);
-});
diff --git a/src/client/app/test/style.styl b/src/client/app/test/style.styl
deleted file mode 100644
index ae1a28226a53ad93b6e6a1f68e4a0f1a3250d09c..0000000000000000000000000000000000000000
--- a/src/client/app/test/style.styl
+++ /dev/null
@@ -1,6 +0,0 @@
-@import "../app"
-@import "../reset"
-
-html
-	height 100%
-	background var(--bg)
diff --git a/src/client/app/test/views/index.vue b/src/client/app/test/views/index.vue
deleted file mode 100644
index e0725d42a75a3974d0d1e6ef8de6f5f014aa7ded..0000000000000000000000000000000000000000
--- a/src/client/app/test/views/index.vue
+++ /dev/null
@@ -1,82 +0,0 @@
-<template>
-<main>
-	<ui-card>
-		<template #title>MFM Playground</template>
-		<section class="fit-top">
-			<ui-textarea v-model="mfm">
-				<span>MFM</span>
-			</ui-textarea>
-		</section>
-		<section>
-			<header>Preview</header>
-			<mfm :text="mfm" :i="$store.state.i"/>
-		</section>
-		<section>
-			<header style="margin-bottom:0;">AST</header>
-			<ui-textarea v-model="mfmAst" readonly tall style="margin-top:16px;"></ui-textarea>
-		</section>
-	</ui-card>
-
-	<ui-card>
-		<template #title>Dialog Generator</template>
-		<section class="fit-top">
-			<ui-select v-model="dialogType" placeholder="">
-				<option value="info">Information</option>
-				<option value="success">Success</option>
-				<option value="warning">Warning</option>
-				<option value="error">Error</option>
-			</ui-select>
-			<ui-input v-model="dialogTitle">
-				<span>Title</span>
-			</ui-input>
-			<ui-input v-model="dialogText">
-				<span>Text</span>
-			</ui-input>
-			<ui-switch v-model="dialogShowCancelButton">With cancel button</ui-switch>
-			<ui-button @click="showDialog">Show</ui-button>
-		</section>
-	</ui-card>
-</main>
-</template>
-
-<script lang="ts">
-import Vue from 'vue';
-import { parse } from '../../../../mfm/parse';
-import * as JSON5 from 'json5';
-
-export default Vue.extend({
-	data() {
-		return {
-			mfm: '',
-			dialogType: 'success',
-			dialogTitle: '',
-			dialogText: 'Hello World!',
-			dialogShowCancelButton: false
-		};
-	},
-
-	computed: {
-		mfmAst(): any {
-			return JSON5.stringify(parse(this.mfm), null, 2);
-		}
-	},
-
-	methods: {
-		showDialog() {
-			this.$root.dialog({
-				type: this.dialogType,
-				title: this.dialogTitle,
-				text: this.dialogText,
-				showCancelButton: this.dialogShowCancelButton
-			});
-		}
-	}
-});
-</script>
-
-<style lang="stylus" scoped>
-main
-	max-width 700px
-	margin 0 auto
-
-</style>
diff --git a/webpack.config.ts b/webpack.config.ts
index 5ec0a60d1a1f990a928db6f34390cafe851700e6..24d2337a7ea2bbc9e72c36b9554d8d7ef0933254 100644
--- a/webpack.config.ts
+++ b/webpack.config.ts
@@ -45,7 +45,6 @@ module.exports = {
 		dev: './src/client/app/dev/script.ts',
 		auth: './src/client/app/auth/script.ts',
 		admin: './src/client/app/admin/script.ts',
-		test: './src/client/app/test/script.ts',
 		sw: './src/client/app/sw.js'
 	},
 	module: {