diff --git a/src/commands/example.ts b/src/commands/example.ts
new file mode 100644
index 0000000..73e967e
--- /dev/null
+++ b/src/commands/example.ts
@@ -0,0 +1,19 @@
+import { CommandInteraction } from "discord.js";
+import { SlashCommandBuilder } from "@discordjs/builders";
+import { WrappedCheck } from "jshaiku";
+
+const command = new SlashCommandBuilder()
+    .setName("examplecommand")
+    .setDescription("An example command")
+
+const callback = (interaction: CommandInteraction) => {
+    interaction.reply("Hello, world!");
+}
+
+const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
+    return interaction.user.id !== "123456789";
+}
+
+export { command };
+export { callback };
+export { check };
\ No newline at end of file
diff --git a/src/commands/examplegroup/example.ts b/src/commands/examplegroup/example.ts
new file mode 100644
index 0000000..cc1d031
--- /dev/null
+++ b/src/commands/examplegroup/example.ts
@@ -0,0 +1,20 @@
+import { CommandInteraction } from "discord.js";
+import { SlashCommandSubcommandBuilder } from "@discordjs/builders";
+import { WrappedCheck } from "jshaiku";
+
+const command = (builder: SlashCommandSubcommandBuilder) =>
+    builder
+    .setName("examplesubcommand")
+    .setDescription("An example subcommand")
+
+const callback = (interaction: CommandInteraction) => {
+    interaction.reply("Hello, world!");
+}
+
+const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
+    return interaction.user.id !== "123456789";
+}
+
+export { command };
+export { callback };
+export { check };
\ No newline at end of file
diff --git a/src/commands/examplegroup/groupscanhavegroups/_meta.ts b/src/commands/examplegroup/groupscanhavegroups/_meta.ts
new file mode 100644
index 0000000..0b07053
--- /dev/null
+++ b/src/commands/examplegroup/groupscanhavegroups/_meta.ts
@@ -0,0 +1,4 @@
+const name = "examplesubgroup";
+const description = "This is an example subgroup with a meta file";
+
+export { name, description };
\ No newline at end of file
diff --git a/src/commands/examplegroup/groupscanhavegroups/example.ts b/src/commands/examplegroup/groupscanhavegroups/example.ts
new file mode 100644
index 0000000..cc1d031
--- /dev/null
+++ b/src/commands/examplegroup/groupscanhavegroups/example.ts
@@ -0,0 +1,20 @@
+import { CommandInteraction } from "discord.js";
+import { SlashCommandSubcommandBuilder } from "@discordjs/builders";
+import { WrappedCheck } from "jshaiku";
+
+const command = (builder: SlashCommandSubcommandBuilder) =>
+    builder
+    .setName("examplesubcommand")
+    .setDescription("An example subcommand")
+
+const callback = (interaction: CommandInteraction) => {
+    interaction.reply("Hello, world!");
+}
+
+const check = (interaction: CommandInteraction, defaultCheck: WrappedCheck) => {
+    return interaction.user.id !== "123456789";
+}
+
+export { command };
+export { callback };
+export { check };
\ No newline at end of file
diff --git a/src/config.json b/src/config.json
new file mode 100644
index 0000000..be1c089
--- /dev/null
+++ b/src/config.json
@@ -0,0 +1,11 @@
+{
+    "token": "your-token-here",
+    "developmentToken": "NzEzMzIwMzc5MzY3ODE3MjM2.XseZXw.-NeXEfWg25j2nJ5VDWMrjlxigH4",
+    "managementGuildID": "your-management-guild-id-here",
+    "developmentGuildID": "864185037078790195",
+    "enableDevelopment": true,
+    "owners": [
+      "317731855317336067",
+      "438733159748599813"
+    ]
+}
\ No newline at end of file
diff --git a/src/index.ts b/src/index.ts
new file mode 100644
index 0000000..6bc97b7
--- /dev/null
+++ b/src/index.ts
@@ -0,0 +1,11 @@
+import { HaikuClient } from 'jshaiku';
+import { Intents } from 'discord.js';
+import config from './config.json' assert {type: 'json'};
+
+const client = new HaikuClient({
+    intents: new Intents(32767).bitfield,  // This is a way of specifying all intents w/o having to type them out
+}, config);
+
+await client.registerCommandsIn("./commands");
+
+await client.login();
\ No newline at end of file
