Skip to content

[Feature request]: Improving the developer productivity and streamline setup using devcontainers #1765

@navidpadid

Description

@navidpadid

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions