diff --git a/keyboards/etiennecollin/wave/info.json b/keyboards/etiennecollin/wave/info.json
new file mode 100644
index 0000000000..5e31a1ca2a
--- /dev/null
+++ b/keyboards/etiennecollin/wave/info.json
@@ -0,0 +1,104 @@
+{
+    "keyboard_name": "Wave",
+    "maintainer": "etiennecollin",
+    "manufacturer": "Etienne Collin",
+    "url": "https://github.com/etiennecollin/wave",
+    "bootloader_instructions": "Press the button marked RESET on the PCB or bridge the pins marked RST and GND on the Elite-C",
+    "tags": ["ortho", "split"],
+
+    "build": {
+        "lto": true
+    },
+    "development_board": "elite_c",
+    "pin_compatible": "elite_c",
+    "usb": {
+        "device_version": "0.0.1",
+        "vid": "0x6967",
+        "pid": "0x0000"
+    },
+
+    "features": {
+        "bootmagic": true,
+        "command": false,
+        "console": false,
+        "extrakey": true,
+        "mousekey": true,
+        "nkro": true
+    },
+
+    "matrix_pins": {
+        "direct": [
+            ["C6", "D4", "D0", "D1", "D3"],
+            ["B6", "B5", "B4", "E6", "D7"],
+            ["F6", "F7", "B1", "B3", "B2"],
+            ["NO_PIN", "NO_PIN", "F5", "F4", "B0"]
+        ]
+    },
+    "community_layouts": ["split_3x5_3"],
+    "split": {
+        "enabled": true,
+        "soft_serial_pin": "D2",
+        "usb_detect": {
+            "enabled": true
+        },
+        "matrix_pins": {
+            "right": {
+                "direct": [
+                    ["D3", "D1", "D0", "D4", "C6"],
+                    ["D7", "E6", "B4", "B5", "B6"],
+                    ["B2", "B3", "B1", "F7", "F6"],
+                    ["B0", "F4", "F5", "NO_PIN", "NO_PIN"]
+                ]
+            }
+        }
+    },
+    "layouts": {
+        "LAYOUT_split_3x5_3": {
+            "layout": [
+                { "matrix": [0, 0], "x": 0, "y": 0.93 },
+                { "matrix": [0, 1], "x": 1, "y": 0.31 },
+                { "matrix": [0, 2], "x": 2, "y": 0 },
+                { "matrix": [0, 3], "x": 3, "y": 0.28 },
+                { "matrix": [0, 4], "x": 4, "y": 0.42 },
+
+                { "matrix": [4, 0], "x": 7, "y": 0.42 },
+                { "matrix": [4, 1], "x": 8, "y": 0.28 },
+                { "matrix": [4, 2], "x": 9, "y": 0 },
+                { "matrix": [4, 3], "x": 10, "y": 0.31 },
+                { "matrix": [4, 4], "x": 11, "y": 0.93 },
+
+                { "matrix": [1, 0], "x": 0, "y": 1.93 },
+                { "matrix": [1, 1], "x": 1, "y": 1.31 },
+                { "matrix": [1, 2], "x": 2, "y": 1 },
+                { "matrix": [1, 3], "x": 3, "y": 1.28 },
+                { "matrix": [1, 4], "x": 4, "y": 1.42 },
+
+                { "matrix": [5, 0], "x": 7, "y": 1.42 },
+                { "matrix": [5, 1], "x": 8, "y": 1.28 },
+                { "matrix": [5, 2], "x": 9, "y": 1 },
+                { "matrix": [5, 3], "x": 10, "y": 1.31 },
+                { "matrix": [5, 4], "x": 11, "y": 1.93 },
+
+                { "matrix": [2, 0], "x": 0, "y": 2.93 },
+                { "matrix": [2, 1], "x": 1, "y": 2.31 },
+                { "matrix": [2, 2], "x": 2, "y": 2 },
+                { "matrix": [2, 3], "x": 3, "y": 2.28 },
+                { "matrix": [2, 4], "x": 4, "y": 2.42 },
+
+                { "matrix": [6, 0], "x": 7, "y": 2.42 },
+                { "matrix": [6, 1], "x": 8, "y": 2.28 },
+                { "matrix": [6, 2], "x": 9, "y": 2 },
+                { "matrix": [6, 3], "x": 10, "y": 2.31 },
+                { "matrix": [6, 4], "x": 11, "y": 2.93 },
+
+                { "matrix": [3, 2], "x": 2.8, "y": 3.5 },
+                { "matrix": [3, 3], "x": 3.8, "y": 3.75 },
+                { "matrix": [3, 4], "x": 4.8, "y": 3.5, "h": 1.5 },
+
+                { "matrix": [7, 0], "x": 6.2, "y": 3.5, "h": 1.5 },
+                { "matrix": [7, 1], "x": 7.2, "y": 3.75 },
+                { "matrix": [7, 2], "x": 8.2, "y": 3.5 }
+            ]
+        }
+    }
+}
diff --git a/keyboards/etiennecollin/wave/keymaps/default/config.h b/keyboards/etiennecollin/wave/keymaps/default/config.h
new file mode 100644
index 0000000000..8d60295560
--- /dev/null
+++ b/keyboards/etiennecollin/wave/keymaps/default/config.h
@@ -0,0 +1,34 @@
+/* Copyright 2023 Etienne Collin (@etiennecollin)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#pragma once
+
+// Activate caps word by pressing Left Shift + Right Shift
+#define BOTH_SHIFTS_TURNS_ON_CAPS_WORD
+
+// Enable rapid switch from tap to hold, disables double tap hold auto-repeat
+#define QUICK_TAP_TERM 0
+
+// Maximum time between taps of tap dances
+#define TAPPING_TERM 175
+
+// Perform hold action if pressing a dual-role key, tapping another key and
+// releasing the dual-role key withing tapping term
+#define PERMISSIVE_HOLD
+
+// Perform hold action if pressing a dual-role key, pressing another key,
+// releasing the dual-role key and releasing the other key withing tapping term
+#define HOLD_ON_OTHER_KEY_PRESS
\ No newline at end of file
diff --git a/keyboards/etiennecollin/wave/keymaps/default/keymap.json b/keyboards/etiennecollin/wave/keymaps/default/keymap.json
new file mode 100644
index 0000000000..993a1b854c
--- /dev/null
+++ b/keyboards/etiennecollin/wave/keymaps/default/keymap.json
@@ -0,0 +1,27 @@
+{
+    "version": 1,
+    "author": "etiennecollin",
+    "keyboard": "etiennecollin/wave",
+    "notes": "This is a keymap file for etiennecollin/wave",
+    "keymap": "default",
+    "layout": "LAYOUT_split_3x5_3",
+    "config": {
+        "features": {
+            "caps_word": true
+        }
+    },
+    "layers": [
+        [
+            "KC_Q",         "KC_W",         "KC_E",         "KC_R",         "KC_T",     "KC_Y",    "KC_U",          "KC_I",         "KC_O",         "KC_P",
+            "LGUI_T(KC_A)", "LALT_T(KC_S)", "LCTL_T(KC_D)", "LSFT_T(KC_F)", "KC_G",     "KC_H",    "LSFT_T(KC_J)",  "LCTL_T(KC_K)", "LALT_T(KC_L)", "LGUI_T(KC_SCLN)",
+            "KC_Z",         "KC_X",         "KC_C",         "KC_V",         "KC_B",     "KC_N",    "KC_M",          "KC_COMM",      "KC_DOT",       "KC_SLSH",
+                            "KC_ESC",       "KC_SPC",       "KC_TAB",       "KC_ENT",   "KC_BSPC", "MO(1)"
+        ],
+        [
+            "KC_1",         "KC_2",         "KC_3",         "KC_4",         "KC_5",     "KC_6",    "KC_7",          "KC_8",         "KC_9",         "KC_0",
+            "KC_EXLM",      "KC_AT",        "KC_HASH",      "KC_DLR",       "KC_PERC",  "KC_CIRC", "KC_AMPR",       "KC_ASTR",      "KC_LPRN",      "KC_RPRN",
+            "XXXXXXX",      "XXXXXXX",      "XXXXXXX",      "XXXXXXX",      "XXXXXXX",  "XXXXXXX", "XXXXXXX",       "XXXXXXX",      "XXXXXXX",      "XXXXXXX",
+                            "XXXXXXX",      "XXXXXXX",      "XXXXXXX",      "XXXXXXX",  "XXXXXXX", "_______"
+        ]
+    ]
+}
\ No newline at end of file
diff --git a/keyboards/etiennecollin/wave/keymaps/default/readme.md b/keyboards/etiennecollin/wave/keymaps/default/readme.md
new file mode 100644
index 0000000000..16586cc1f7
--- /dev/null
+++ b/keyboards/etiennecollin/wave/keymaps/default/readme.md
@@ -0,0 +1,6 @@
+# Default keymap
+
+This is a really simple QWERTY keymap with a single number/symbol layer.
+It uses home row modifiers and the caps word feature because of the limited number of keys.
+
+For a more complete layout, see the `feature` layout.
diff --git a/keyboards/etiennecollin/wave/keymaps/feature/config.h b/keyboards/etiennecollin/wave/keymaps/feature/config.h
new file mode 100644
index 0000000000..42421b33d3
--- /dev/null
+++ b/keyboards/etiennecollin/wave/keymaps/feature/config.h
@@ -0,0 +1,42 @@
+/* Copyright 2023 Etienne Collin (@etiennecollin)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#pragma once
+
+// Activate caps word by pressing Left Shift + Right Shift
+#define BOTH_SHIFTS_TURNS_ON_CAPS_WORD
+
+// Maximum time between taps of tap dances
+#define TAPPING_TERM 175
+
+// Max time between taps to prevent hold function and hold auto-repeat
+#define QUICK_TAP_TERM 100
+
+// Perform hold action if pressing a dual-role key, tapping another key and
+// releasing the dual-role key withing tapping term
+#define PERMISSIVE_HOLD
+
+// Mouse key speed and acceleration.
+#define MOUSEKEY_DELAY          0
+#define MOUSEKEY_INTERVAL       16
+#define MOUSEKEY_WHEEL_DELAY    0
+#define MOUSEKEY_MAX_SPEED      6
+#define MOUSEKEY_TIME_TO_MAX    64
+
+// Thumb Combos
+#define COMBO_COUNT 2
+#define COMBO_TERM 200
+#define EXTRA_SHORT_COMBOS
diff --git a/keyboards/etiennecollin/wave/keymaps/feature/keymap.c b/keyboards/etiennecollin/wave/keymaps/feature/keymap.c
new file mode 100644
index 0000000000..24bc85d5b4
--- /dev/null
+++ b/keyboards/etiennecollin/wave/keymaps/feature/keymap.c
@@ -0,0 +1,191 @@
+/* Copyright 2023 Etienne Collin (@etiennecollin)
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+
+#include QMK_KEYBOARD_H
+
+enum custom_layers {
+    COL,
+    QWE,
+    GAM,
+    MED,
+    NAV,
+    MOS,
+    SYM,
+    NUM,
+    FUN,
+    SYS,
+};
+
+const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
+  [COL] = LAYOUT_split_3x5_3(
+  // -----------------------------------------                    -----------------------------------------
+  // |   q   |   w   |   f   |   p   |   b   |                    |   j   |   l   |   u   |   y   |   '   |
+  // |-------+-------+-------+-------+-------|                    |-------+-------+-------+-------+-------|
+  // |   a   |   r   |   s   |   t   |   g   |                    |   m   |   n   |   e   |   i   |   o   |
+  // |-------+-------+-------+-------+-------|                    |-------+-------+-------+-------+-------|
+  // |   z   |   x   |   c   |   d   |   v   |                    |   k   |   h   |   ,   |   .   |   /   |
+  // --------+-------+-------+-------+-------|                    |-------+-------+-------+-------+-------|
+  //                 |  esc  |  spc  |  tab  |                    |  ent  |  bsp  |  del  |
+  //                 --------+-------+--------                    --------+-------+--------
+    KC_Q,               KC_W,               KC_F,               KC_P,               KC_B,               KC_J,               KC_L,               KC_U,               KC_Y,               KC_QUOT,
+    LGUI_T(KC_A),       LALT_T(KC_R),       LCTL_T(KC_S),       LSFT_T(KC_T),       KC_G,               KC_M,               LSFT_T(KC_N),       LCTL_T(KC_E),       LALT_T(KC_I),       LGUI_T(KC_O),
+    KC_Z,               KC_X,               KC_C,               KC_D,               KC_V,               KC_K,               KC_H,               KC_COMM,            KC_DOT,             KC_SLSH,
+                                            LT(MED, KC_ESC),    LT(NAV, KC_SPC),    LT(MOS, KC_TAB),    LT(SYM, KC_ENT),    LT(NUM, KC_BSPC),    LT(FUN, KC_DEL)
+  ),
+  [QWE] = LAYOUT_split_3x5_3(
+  // -----------------------------------------                    -----------------------------------------
+  // |   q   |   w   |   e   |   r   |   t   |                    |   y   |   u   |   i   |   o   |   p   |
+  // |-------+-------+-------+-------+-------|                    |-------+-------+-------+-------+-------|
+  // |   a   |   s   |   d   |   f   |   g   |                    |   h   |   j   |   k   |   l   |   '   |
+  // |-------+-------+-------+-------+-------|                    |-------+-------+-------+-------+-------|
+  // |   z   |   x   |   c   |   v   |   b   |                    |   n   |   m   |   ,   |   .   |   /   |
+  // --------+-------+-------+-------+-------|                    |-------+-------+-------+-------+-------|
+  //                 |  esc  |  spc  |  tab  |                    |  ent  |  bsp  |  del  |
+  //                 --------+-------+--------                    --------+-------+--------
+    KC_Q,               KC_W,               KC_E,               KC_R,               KC_T,               KC_Y,               KC_U,               KC_I,               KC_O,               KC_P,
+    LGUI_T(KC_A),       LALT_T(KC_S),       LCTL_T(KC_D),       LSFT_T(KC_F),       KC_G,               KC_H,               LSFT_T(KC_J),       LCTL_T(KC_K),       LALT_T(KC_L),       LGUI_T(KC_QUOT),
+    KC_Z,               KC_X,               KC_C,               KC_V,               KC_B,               KC_N,               KC_M,               KC_COMM,            KC_DOT,             KC_SLSH,
+                                            LT(MED, KC_ESC),    LT(NAV, KC_SPC),    LT(MOS, KC_TAB),    LT(SYM, KC_ENT),    LT(NUM, KC_BSPC),    LT(FUN, KC_DEL)
+  ),
+  [GAM] = LAYOUT_split_3x5_3(
+  // -----------------------------------------                    -----------------------------------------
+  // |  tab  |   q   |   w   |   e   |   r   |                    |   t   |   y   |   u   |   i   |   o   |
+  // |-------+-------+-------+-------+-------|                    |-------+-------+-------+-------+-------|
+  // |  sht  |   a   |   s   |   d   |   f   |                    |   g   |   h   |   j   |   k   |   l   |
+  // |-------+-------+-------+-------+-------|                    |-------+-------+-------+-------+-------|
+  // |  ctl  |   z   |   x   |   c   |   v   |                    |   b   |   n   |   m   |   ,   |   .   |
+  // --------+-------+-------+-------+-------|                    |-------+-------+-------+-------+-------|
+  //                 |  alt  |  cps  |  spc  |                    |  ent  |  bsp  |  esc  |
+  //                 --------+-------+--------                    --------+-------+--------
+    KC_TAB,             KC_Q,               KC_W,               KC_E,               KC_R,               KC_T,               KC_Y,               KC_U,               KC_I,               KC_O,
+    KC_LSFT,            KC_A,               KC_S,               KC_D,               KC_F,               KC_G,               KC_H,               KC_J,               KC_K,               KC_L,
+    KC_LCTL,            KC_Z,               KC_X,               KC_C,               KC_V,               KC_B,               KC_N,               KC_M,               KC_COMM,            KC_DOT,
+                                            KC_LALT,            KC_CAPS,            KC_SPC,             LT(SYM, KC_ENT),    LT(NUM, KC_BSPC),   LT(FUN, KC_ESC)
+  ),
+  [MED] = LAYOUT_split_3x5_3(
+  // -----------------------------------------                    -----------------------------------------
+  // |       |       |       |       |       |                    |       |       |       |       |       |
+  // |-------+-------+-------+-------+-------|                    |-------+-------+-------+-------+-------|
+  // |  gui  |  alt  |  ctl  |  sht  |       |                    |       |  prev | vol - | vol + |  next |
+  // |-------+-------+-------+-------+-------|                    |-------+-------+-------+-------+-------|
+  // |       |       |       |       |       |                    |       |       |       |       |       |
+  // --------+-------+-------+-------+-------|                    |-------+-------+-------+-------+-------|
+  //                 |  ___  |       |       |                    |  stop | pause |  mute |
+  //                 --------+-------+--------                    --------+-------+--------
+    XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,
+    KC_LGUI,            KC_LALT,            KC_LCTL,            KC_LSFT,            XXXXXXX,            XXXXXXX,            KC_MPRV,            KC_VOLD,            KC_VOLU,            KC_MNXT,
+    XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            KC_MRWD,            XXXXXXX,            XXXXXXX,            KC_MFFD,
+                                            _______,            XXXXXXX,            XXXXXXX,            KC_MSTP,            KC_MPLY,            KC_MUTE
+  ),
+  [NAV] = LAYOUT_split_3x5_3(
+  // -----------------------------------------                    -----------------------------------------
+  // |       |       |       |       |       |                    |       |       |       |       |       |
+  // |-------+-------+-------+-------+-------|                    |-------+-------+-------+-------+-------|
+  // |  gui  |  alt  |  ctl  |  sht  |       |                    |  cps  |   ←   |   ↓   |   ↑   |   →   |
+  // |-------+-------+-------+-------+-------|                    |-------+-------+-------+-------+-------|
+  // |       |       |       |       |       |                    | insrt | home  | pageu | paged |  end  |
+  // --------+-------+-------+-------+-------|                    |-------+-------+-------+-------+-------|
+  //                 |       |  ___  |       |                    |  ent  |  bsp  |  del  |
+  //                 --------+-------+--------                    --------+-------+--------
+    XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,
+    KC_LGUI,            KC_LALT,            KC_LCTL,            KC_LSFT,            XXXXXXX,            KC_CAPS,            KC_LEFT,            KC_DOWN,            KC_UP,              KC_RGHT,
+    XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            KC_INS,             KC_HOME,            KC_PGDN,            KC_PGUP,            KC_END,
+                                            XXXXXXX,            _______,            XXXXXXX,            KC_ENT,             KC_BSPC,            KC_DEL
+  ),
+  [MOS] = LAYOUT_split_3x5_3(
+  // -----------------------------------------                    -----------------------------------------
+  // |       |       |       |       |       |                    |       | acc0  | acc1  |  acc2 |       |
+  // |-------+-------+-------+-------+-------|                    |-------+-------+-------+-------+-------|
+  // |  gui  |  alt  |  ctl  |  sht  |       |                    |       |   ←   |   ↓   |   ↑   |   →   |
+  // |-------+-------+-------+-------+-------|                    |-------+-------+-------+-------+-------|
+  // |       |       |       |       |       |                    |       |  w←   |  w↓   |  w↑   |  w→   |
+  // --------+-------+-------+-------+-------|                    |-------+-------+-------+-------+-------|
+  //                 |       |       |  ___  |                    | left  | right |  mid  |
+  //                 --------+-------+--------                    --------+-------+--------
+    XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            KC_ACL0,            KC_ACL1,            KC_ACL2,            XXXXXXX,
+    KC_LGUI,            KC_LALT,            KC_LCTL,            KC_LSFT,            XXXXXXX,            XXXXXXX,            KC_MS_L,            KC_MS_D,            KC_MS_U,            KC_MS_R,
+    XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            KC_WH_L,            KC_WH_D,            KC_WH_U,            KC_WH_R,
+                                            XXXXXXX,            XXXXXXX,            _______,            KC_BTN1,            KC_BTN2,            KC_BTN3
+  ),
+  [SYM] = LAYOUT_split_3x5_3(
+  // -----------------------------------------                    -----------------------------------------
+  // |   {   |   &   |   *   |   (   |   }   |                    |       |       |       |       |       |
+  // |-------+-------+-------+-------+-------|                    |-------+-------+-------+-------+-------|
+  // |   :   |   $   |   %   |   ^   |   +   |                    |       |  sht  |  ctl  |  alt  |  gui  |
+  // |-------+-------+-------+-------+-------|                    |-------+-------+-------+-------+-------|
+  // |   ~   |   !   |   @   |   #   |   |   |                    |       |       |       |       |       |
+  // --------+-------+-------+-------+-------|                    |-------+-------+-------+-------+-------|
+  //                 |   (   |   )   |   _   |                    |  ___  |       |       |
+  //                 --------+-------+--------                    --------+-------+--------
+    KC_LCBR,            KC_AMPR,            KC_ASTR,            KC_LPRN,            KC_RCBR,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,
+    KC_COLN,            KC_DLR,             KC_PERC,            KC_CIRC,            KC_PLUS,            XXXXXXX,            KC_LSFT,            KC_LCTL,            KC_LALT,            KC_LGUI,
+    KC_TILD,            KC_EXLM,            KC_AT,              KC_HASH,            KC_PIPE,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,
+                                            KC_LPRN,            KC_RPRN,            KC_UNDS,            _______,            XXXXXXX,            XXXXXXX
+  ),
+  [NUM] = LAYOUT_split_3x5_3(
+  // -----------------------------------------                    -----------------------------------------
+  // |  [ {  |  7 &  |  8 *  |  9 (  |  ] }  |                    |       |       |       |       |       |
+  // |-------+-------+-------+-------+-------|                    |-------+-------+-------+-------+-------|
+  // |  ; :  |  4 $  |  5 %  |  6 ^  |  = +  |                    |       |  sht  |  ctl  |  alt  |  gui  |
+  // |-------+-------+-------+-------+-------|                    |-------+-------+-------+-------+-------|
+  // |  ` ~  |  1 !  |  2 @  |  3 #  |  \ |  |                    |       |       |       |       |       |
+  // |-------+-------+-------+-------+-------|                    |-------+-------+-------+-------+-------|
+  //                 |  . >  |  0 )  |  - _  |                    |       |  ___  |       |
+  //                 --------+-------+--------                    --------+-------+--------
+    KC_LBRC,            KC_7,               KC_8,               KC_9,               KC_RBRC,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,
+    KC_SCLN,            KC_4,               KC_5,               KC_6,               KC_EQL,             XXXXXXX,            KC_LSFT,            KC_LCTL,            KC_LALT,            KC_LGUI,
+    KC_GRV,             KC_1,               KC_2,               KC_3,               KC_BSLS,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,
+                                            KC_DOT,             KC_0,               KC_MINS,            XXXXXXX,            _______,            XXXXXXX
+  ),
+  [FUN] = LAYOUT_split_3x5_3(
+  // -----------------------------------------                    -----------------------------------------
+  // |  F12  |  F 7  |  F 8  |  F 9  | PrScr |                    |       |       |       |       |       |
+  // |-------+-------+-------+-------+-------|                    |-------+-------+-------+-------+-------|
+  // |  F11  |  F 4  |  F 5  |  F 6  | pause |                    |       |  sht  |  ctl  |  alt  |  gui  |
+  // |-------+-------+-------+-------+-------|                    |-------+-------+-------+-------+-------|
+  // |  F10  |  F 1  |  F 2  |  F 3  | scrlk |                    |       |       |       |       |       |
+  // --------+-------+-------+-------+-------|                    |-------+-------+-------+-------+-------|
+  //                 |  app  |  spc  |  tab  |                    |       |       |  ___  |
+  //                 --------+-------+--------                    --------+-------+--------
+    KC_F12,             KC_F7,              KC_F8,              KC_F9,              KC_PSCR,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,
+    KC_F11,             KC_F4,              KC_F5,              KC_F6,              KC_PAUS,            XXXXXXX,            KC_LSFT,            KC_LCTL,            KC_LALT,            KC_LGUI,
+    KC_F10,             KC_F1,              KC_F2,              KC_F3,              KC_SCRL,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,
+                                            KC_APP,             KC_SPC,             KC_TAB,             XXXXXXX,            XXXXXXX,            _______
+  ),
+  [SYS] = LAYOUT_split_3x5_3(
+  // -----------------------------------------                    -----------------------------------------
+  // | BOOT  |       | GAME  | QWERT | COLMK |                    | COLMK | QWERT | GAME  |       | BOOT  |
+  // |-------+-------+-------+-------+-------|                    |-------+-------+-------+-------+-------|
+  // |       |       |       |       |       |                    |       |       |       |       |       |
+  // |-------+-------+-------+-------+-------|                    |-------+-------+-------+-------+-------|
+  // |       |       |       |       |       |                    |       |       |       |       |       |
+  // --------+-------+-------+-------+-------|                    |-------+-------+-------+-------+-------|
+  //                 |       |       |       |                    |       |       |       |
+  //                 --------+-------+--------                    --------+-------+--------
+    QK_BOOT,            XXXXXXX,            DF(GAM),            DF(QWE),            DF(COL),            DF(COL),            DF(QWE),            DF(GAM),            XXXXXXX,            QK_BOOT,
+    XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,
+    XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,
+                                            _______,            XXXXXXX,            XXXXXXX,            XXXXXXX,            XXXXXXX,            _______
+  )
+};
+
+const uint16_t PROGMEM combo_sys[] = {LT(MED, KC_ESC), LT(FUN, KC_DEL), COMBO_END};
+const uint16_t PROGMEM combo_sys_gam[] = {KC_LALT, LT(FUN, KC_ESC), COMBO_END};
+
+combo_t key_combos[] = {
+  COMBO(combo_sys, MO(SYS)),
+  COMBO(combo_sys_gam, MO(SYS))
+};
diff --git a/keyboards/etiennecollin/wave/keymaps/feature/readme.md b/keyboards/etiennecollin/wave/keymaps/feature/readme.md
new file mode 100644
index 0000000000..d9971b352b
--- /dev/null
+++ b/keyboards/etiennecollin/wave/keymaps/feature/readme.md
@@ -0,0 +1,11 @@
+# Feature keymap
+
+This keymap is heavily inspired by the [miryoku](https://github.com/manna-harbour/miryoku) layout.
+
+It defaults to a [COLEMAK mod dh](https://colemakmods.github.io/mod-dh/) layer, but a QWERTY and a gaming layer are available from the `sys` layer.
+
+It uses the following features:
+
+-   Home row modifiers
+-   Usual special layers (`media`, `navigation`, `mouse`, `symbols`, `numbers`, `functions`, `system`)
+-   Combos (to access the `sys` layer by pressing both external thumb keys)
diff --git a/keyboards/etiennecollin/wave/keymaps/feature/rules.mk b/keyboards/etiennecollin/wave/keymaps/feature/rules.mk
new file mode 100644
index 0000000000..96093b8201
--- /dev/null
+++ b/keyboards/etiennecollin/wave/keymaps/feature/rules.mk
@@ -0,0 +1,2 @@
+CAPS_WORD_ENABLE = yes
+COMBO_ENABLE = yes
diff --git a/keyboards/etiennecollin/wave/keymaps/test/keymap.json b/keyboards/etiennecollin/wave/keymaps/test/keymap.json
new file mode 100644
index 0000000000..e73c867273
--- /dev/null
+++ b/keyboards/etiennecollin/wave/keymaps/test/keymap.json
@@ -0,0 +1,22 @@
+{
+    "version": 1,
+    "author": "etiennecollin",
+    "keyboard": "etiennecollin/wave",
+    "notes": "This is a keymap file for etiennecollin/wave",
+    "keymap": "test",
+    "layout": "LAYOUT_split_3x5_3",
+    "config": {
+        "features": {
+            "console": true,
+            "debug": true
+        }
+    },
+    "layers": [
+        [
+            "KC_Q", "KC_W", "KC_E",     "KC_R",     "KC_T",         "KC_Y",     "KC_U",     "KC_I",     "KC_O",     "KC_P",
+            "KC_A", "KC_S", "KC_D",     "KC_F",     "KC_G",         "KC_H",     "KC_J",     "KC_K",     "KC_L",     "KC_SCLN",
+            "KC_Z", "KC_X", "KC_C",     "KC_V",     "KC_B",         "KC_N",     "KC_M",     "KC_COMM",  "KC_DOT",   "KC_SLSH",
+                            "KC_ESC",   "KC_SPC",   "KC_TAB",       "KC_ENT",   "KC_BSPC",  "KC_DEL"
+        ]
+    ]
+}
\ No newline at end of file
diff --git a/keyboards/etiennecollin/wave/keymaps/test/readme.md b/keyboards/etiennecollin/wave/keymaps/test/readme.md
new file mode 100644
index 0000000000..3d3400b8f6
--- /dev/null
+++ b/keyboards/etiennecollin/wave/keymaps/test/readme.md
@@ -0,0 +1,4 @@
+# Test keymap
+
+Inspired by the [ferris sweep test keymap](https://github.com/qmk/qmk_firmware/tree/master/keyboards/ferris/keymaps/test).
+A simple QWERTY keymap used to test the keyboard. As such, it should not be used for other purposes than testing.
diff --git a/keyboards/etiennecollin/wave/readme.md b/keyboards/etiennecollin/wave/readme.md
new file mode 100644
index 0000000000..a66c6f71d3
--- /dev/null
+++ b/keyboards/etiennecollin/wave/readme.md
@@ -0,0 +1,37 @@
+# Wave
+
+
+
+_The Wave is a small, reversible keyboard inspired by the [Ferris](https://github.com/pierrechevalier83/ferris), the [Ferris Sweep](https://github.com/davidphilipbarr/Sweep), the [Swoop](https://github.com/jimmerricks/swoop) and the [Sweep36](https://github.com/sadekbaroudi/sweep36). It aims to solve a few issues I found with the keyboards._
+
+-   Keyboard Maintainer: [Etienne Collin](https://github.com/etiennecollin)
+-   Hardware Supported: [Wave](https://github.com/etiennecollin/wave)
+-   Hardware Availability: Print the PCB with gerber files from [latest release in the repository](https://github.com/etiennecollin/wave/releases/latest)
+
+Make example for this keyboard (after setting up your build environment):
+
+    make etiennecollin/wave:default
+
+Flashing example for this keyboard:
+
+    make etiennecollin/wave:default:flash
+
+See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs).
+
+## Recommended Keymap
+
+For an everyday keyboard, it is recommended to use the `feature` keymap, as the default keymap is extremely barebone. Here is a make example:
+
+    make etiennecollin/wave:feature
+
+Flashing example:
+
+    make etiennecollin/wave:feature:flash
+
+## Bootloader
+
+Enter the bootloader in 3 ways:
+
+-   **Bootmagic reset**: Hold down the top left key of the left half of the keyboard and plug in the keyboard
+-   **Physical reset button**: Briefly press the reset button on the front of the PCB or short the GND and RST pins on the controller
+-   **Keycode in layout**: Press the key mapped to `QK_BOOT` if it is available
diff --git a/keyboards/etiennecollin/wave/rules.mk b/keyboards/etiennecollin/wave/rules.mk
new file mode 100644
index 0000000000..6e7633bfe0
--- /dev/null
+++ b/keyboards/etiennecollin/wave/rules.mk
@@ -0,0 +1 @@
+# This file intentionally left blank