Add VS Code Dev Container for zero-friction contributor setup
Summary
Setting up a local development environment for Stretchly currently requires contributors to manually identify and install a set of system-level dependencies that are not documented anywhere in the repo. On a fresh Debian/Ubuntu machine, running npm install fails immediately because node-desktop-idle-v2 requires libinput and libudev development headers to compile its native binding, and there is no indication of this anywhere in the README or CONTRIBUTING guide.
A VS Code Dev Container solves this entirely. With a single click ("Reopen in Container"), contributors get a fully working environment where npm install, npm run lint, npm test, and npm run dev all work without any manual setup.
What a Dev Container provides
Every contributor gets the exact same environment regardless of their host OS. The container image pre-installs all Electron runtime libraries, the native build dependencies, and applies the execute bit fix automatically on first creation. SSH agent forwarding, .gitconfig, and .npmrc are mapped from the host, so authentication and git identity work without any extra steps. The ESLint and Vitest extensions are pre-installed and ESLint is configured to auto-fix on save.
Impact
The time to go from cloning the repo to a passing npm test drops from "figure out which system packages are missing" to approximately two minutes. This is especially valuable for contributors who want to make a small fix or a translation update and would otherwise give up at the setup step.
This is a purely additive change. It introduces no new runtime code and cannot break anything for contributors who do not use it.
Add VS Code Dev Container for zero-friction contributor setup
Summary
Setting up a local development environment for Stretchly currently requires contributors to manually identify and install a set of system-level dependencies that are not documented anywhere in the repo. On a fresh Debian/Ubuntu machine, running
npm installfails immediately becausenode-desktop-idle-v2requireslibinputandlibudevdevelopment headers to compile its native binding, and there is no indication of this anywhere in the README or CONTRIBUTING guide.A VS Code Dev Container solves this entirely. With a single click ("Reopen in Container"), contributors get a fully working environment where
npm install,npm run lint,npm test, andnpm run devall work without any manual setup.What a Dev Container provides
Every contributor gets the exact same environment regardless of their host OS. The container image pre-installs all Electron runtime libraries, the native build dependencies, and applies the execute bit fix automatically on first creation. SSH agent forwarding,
.gitconfig, and.npmrcare mapped from the host, so authentication and git identity work without any extra steps. The ESLint and Vitest extensions are pre-installed and ESLint is configured to auto-fix on save.Impact
The time to go from cloning the repo to a passing
npm testdrops from "figure out which system packages are missing" to approximately two minutes. This is especially valuable for contributors who want to make a small fix or a translation update and would otherwise give up at the setup step.This is a purely additive change. It introduces no new runtime code and cannot break anything for contributors who do not use it.