diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
new file mode 100644
index 0000000..ac6aa1f
--- /dev/null
+++ b/.devcontainer/Dockerfile
@@ -0,0 +1,30 @@
+FROM ruby:3.3
+
+RUN apt-get update && apt-get install -y \
+  build-essential \
+  libssl-dev \
+  libreadline-dev \
+  zlib1g-dev \
+  && rm -rf /var/lib/apt/lists/*
+
+RUN useradd -ms /bin/bash vscode
+
+WORKDIR /workspace
+
+RUN gem install bundler
+
+COPY . .
+
+RUN bundle install
+
+ENV RACK_ENV=development
+
+RUN apt-get update && apt-get install -y \
+  vim \
+  git \
+  jq \
+  && rm -rf /var/lib/apt/lists/*
+
+USER vscode
+
+CMD ["bash"]
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
new file mode 100644
index 0000000..a9a64e3
--- /dev/null
+++ b/.devcontainer/devcontainer.json
@@ -0,0 +1,21 @@
+{
+  "name": "Ruby Development Container",
+  "build": {
+    "dockerfile": "Dockerfile",
+    "context": ".."
+  },
+  "settings": {
+    "terminal.integrated.shell.linux": "/bin/bash"
+  },
+  "postCreateCommand": "bundle install",
+  "extensions": [
+    "rebornix.ruby",
+    "castwide.solargraph",
+    "wingrunr21.vscode-ruby",
+    "misogi.ruby-rubocop"
+  ],
+  "remoteUser": "vscode",
+  "remoteEnv": {
+    "RACK_ENV": "development"
+  }
+}
diff --git a/Gemfile b/Gemfile
new file mode 100644
index 0000000..e076bda
--- /dev/null
+++ b/Gemfile
@@ -0,0 +1,3 @@
+source 'https://rubygems.org'
+
+gem 'rubocop'
diff --git a/Gemfile.lock b/Gemfile.lock
new file mode 100644
index 0000000..bc1d204
--- /dev/null
+++ b/Gemfile.lock
@@ -0,0 +1,36 @@
+GEM
+  remote: https://rubygems.org/
+  specs:
+    ast (2.4.2)
+    json (2.8.1)
+    language_server-protocol (3.17.0.3)
+    parallel (1.26.3)
+    parser (3.3.6.0)
+      ast (~> 2.4.1)
+      racc
+    racc (1.8.1)
+    rainbow (3.1.1)
+    regexp_parser (2.9.2)
+    rubocop (1.68.0)
+      json (~> 2.3)
+      language_server-protocol (>= 3.17.0)
+      parallel (~> 1.10)
+      parser (>= 3.3.0.2)
+      rainbow (>= 2.2.2, < 4.0)
+      regexp_parser (>= 2.4, < 3.0)
+      rubocop-ast (>= 1.32.2, < 2.0)
+      ruby-progressbar (~> 1.7)
+      unicode-display_width (>= 2.4.0, < 3.0)
+    rubocop-ast (1.34.1)
+      parser (>= 3.3.1.0)
+    ruby-progressbar (1.13.0)
+    unicode-display_width (2.6.0)
+
+PLATFORMS
+  ruby
+
+DEPENDENCIES
+  rubocop
+
+BUNDLED WITH
+   2.5.23