diff --git a/materialious/src/lib/components/settings/InternalAccount.svelte b/materialious/src/lib/components/settings/InternalAccount.svelte
new file mode 100644
index 00000000..08596043
--- /dev/null
+++ b/materialious/src/lib/components/settings/InternalAccount.svelte
@@ -0,0 +1,38 @@
+
+
+
diff --git a/materialious/src/lib/i18n/locales/en.json b/materialious/src/lib/i18n/locales/en.json
index b8080665..2c9bb3f0 100644
--- a/materialious/src/lib/i18n/locales/en.json
+++ b/materialious/src/lib/i18n/locales/en.json
@@ -170,6 +170,7 @@
"engine": "Backend engine",
"syncParty": "Sync party",
"about": "About",
+ "materialiousAccount": "Account",
"syncPartyWarning": "Please note your IP will be visible to users you invite.",
"startSyncParty": "Start sync party",
"endSyncParty": "End sync party",
@@ -185,6 +186,8 @@
"displayThumbnailAvatars": "Thumbnail avatars (Slow)",
"searchHistory": "Search history",
"companionUrl": "Companion URL",
+ "deleteAccount": "Delete account",
+ "clickXmoreTimesToDelete": "Click {{clicksTillDelete}} more time(s) to delete",
"theme": {
"theme": "Theme",
"darkMode": "Dark mode",
diff --git a/materialious/src/routes/api/user/delete/+server.ts b/materialious/src/routes/api/user/delete/+server.ts
new file mode 100644
index 00000000..6ef59e22
--- /dev/null
+++ b/materialious/src/routes/api/user/delete/+server.ts
@@ -0,0 +1,8 @@
+import { getUser } from '$lib/server/user';
+
+export async function DELETE({ locals }) {
+ const user = await getUser(locals.userId);
+ await user.delete();
+
+ return new Response();
+}