Exploring DevSpaces
We are just setting out to explore the platform options available for writing and working with code. What features should a DevSpace support or provide?
Our focus will be split into four areas:
Localhost / Online / Container / Virtual Machine
Another key factor we are looking into is Git Support. Create and Remote support or Starting from a remote Git Repository / Branch.
Localhost - Your machine / device
You have to install Git - Editor / IDE - Languages / Frameworks - Extensions.
You could then either Clone, Commit to a remote repository or raise a Pull Request to work with others.
You have to manage the Language, Framework and Extensions versions for each project you work on.
What if you need to work with more than one version of a Language or Framework?
Online from within your Browser
Online tooling can be grouped into three categories which are
- SAAS (Software as a service) just login and use.
- Remote which you can connect local software to or use in the browser.
- Self Hosted You install and maintain the platform.
The first two categories mostly start with a free option moving to paid monthly or yearly subscription which may offer extra features or services within the tooling. However with Self Hosting you are paying from day one for the web platform to run the services on, plus the tooling licensing costs if needed.
Container
Development Container (Dev containers) - can be configured from your Git repository to provide a Docker development environment. Used by VS Code and GitHub Codespaces and a growing list of other services.
Devfile.io is an open standard defining containerized development environments used for Amazon CodeCatalyst.
WebContainers by StackBlitz and Nodebox by CodeSandbox provide a Node.js runtime within the browser.
We are going to start looking into these areas first:
- How are these defined?
- Do they offer Cross Tooling support?
- Are there Specs for them?
- Are they free to use?
Virtual Machine
You might configure Virtual Machines for each project or framework.
Some online services also offer you a Virtual Machine on demand like GitHub Codespaces and CodeSandbox and a few others, However you don't need to manage the Virtual Machines but you can control the development requirements using a Development Container.
More on working with these soon.
Git repository Support
You may start from a Git repository or create a new one from within your chosen environment.
Can you start working on a branch with all the required prerequisites available?
A commit to the remote repository could then lead into a CI / CD Pipeline for Testing or Deployment.
GitHub.dev web-based editor
We have written a step by step guide to using the free GitHub.dev web-based editor to make and update a website using our templates on GitHub at jasminews.uk all from the browser. We also cover how to use GitHub Codespaces and GitHub Pages.
More details coming soon
Our main site at JasmineDesign.com outlines the services we offer in web development.
Its early days here as we set out to explore DevSpaces in more detail. If you think we should be exploring an environment or tool, please feel free to reach out to us using our Contact form on JasmineDesign.com. Thanks for your interest.