← BackCodespaces can become a game changeru11g.com
10/13/2023

Codespaces can become a game changer

TLDR: I’m very impressed about how easy it is to set up and to use! Codespaces is a remote container that can be configured for your needs and that includes VSCode to start implementing instantly. The nice part: you can start your apps remotely and get a remote port to check the result. Every runs remotely so the only requirement is a Browser (and of course a Github account). By creating a devcontainer.json in a folder called .devcontainer you can customize the created container per repository.

devcontainer.json
.devcontainer

Here’s a simple config I used for a frontend react application:

{ 
  "name": "Default Linux Universal", 
  "image": "mcr.microsoft.com/devcontainers/universal:2-linux", 
  "updateContentCommand": "pnpm i", 
  "customizations": { 
    "vscode": { 
      "extensions": [ 
        "esbenp.prettier-vscode", 
        "dbaeumer.vscode-eslint", 
        "oderwat.indent-rainbow", 
        "dracula-theme.theme-dracula", 
        "ms-vsliveshare.vsliveshare" 
      ], 
      "settings": { 
        "workbench.colorTheme": "Dracula" 
      } 
    } 
  }, 
  "features": { 
    "ghcr.io/devcontainers/features/node": "18.18.0" 
  } 
}

As you can see you can auto customize VSCode as well:

  • Install extensions under customizations.vscode.extensions
  • Configure settings, like a theme under customizations.vscode.settings

Personally I prefer to use a locally configured VSCode, but I see some use cases where it’s a super nice use case:

  • You want to onboard someone to your code base easily
  • I want to change something without my own machine with me
  • Non-engineering people can easily change things by their own (like css, i18n texts, …) In all cases the user does not have to set up anything locally, because in this case the Codespace provides a working environment including git, node and all dependencies. The use just needs to do the changes and can start the application to see the outcome.
Home
Projects
Newsletter
Blog
Me
Philosophy
Gen Art
Work
Setup
CV
Machine
Dynamic Pong: Territory Conquest Meets Classic Physics
Introducing Camunda Directory
Getting Started with AIME Directory Collections in 5 Minutes
How to use a proxy in a nodejs environment
Introducing weeklyfoo
Create your own epaper calendar with Canvas
Codespaces can become a game changer
Cloudflare pages direct upload with stable preview urls
Building your own Twitter Thread Generator
300 APIs integrated in minutes, not days
Be an orchestration hero
Cut a few braids - new NPM package
ETHme - your chic web3 identity
Automatically update data and commit
Aren't the standard actions going too far for you? Write your own one!
Screenshots - a perfect task to automate!
Send messages to Slack from Camunda Cloud
5 Steps how to track your Team's Mood
Automate your manual tasks with Camunda and Trello!
Go beyond the basics
Is there an alternative to spaghetti?
Play with node-canvas and build something useful
How do I implement a command line tool?
Aime Directory
Boring Dev Tools
Camunda Directory
Data Democracy
Dev Pulse
Dynamic Pong
Lifosy
Art u11g
dapphuntr
DiyPunks
flethy
Maker Oracles
SwagTime
EthME
fcheat
Find the next victim
Generative Arts
MakerDAO Delegates
SkunkWorks NFT
Trees of Life NFT
zukuNFT
RestZeebe
Websiteshot
Zeebetron: How to Manage Multiple Zeebe Profiles with Electron
dot calendar
Sharu
Switch Interface (theme)
LINKEDIN
X
GITHUB