Skip to content

Introduction

What is DEM?

DEM (Development Environment Manager) is an open-source command line tool for setting up, managing, and sharing Development Environments.

DEM empowers developers to create, modify, and maintain consistent Development Environments with ease.

By adopting DEM's methodologies for environment setup and management, you can significantly reduce context switching and time to market.

Pain points addressed by DEM

Common pain points

1. Inconsistent Development Environments

  • Issue: "It works on my machine" scenarios leading to inconsistencies.
  • Solution: Consistent Development Environments for every developer.

2. Time-consuming Setup

  • Issue: Slow and error-prone setup of Development Environments.
  • Solution: Quick and reproducible installation with a single command.

3. Complex Tool Management

  • Issue: Modifying the toolset is hard and time-consuming.
  • Solution: Easy and scalable Dev Env management where tools are like building blocks.

4. Interruptions in Workflow

  • Issue: Developers getting out of flow due to tool configurations.
  • Solution: Developers can focus on their actual work.

5. Vendor-specific Limitations

  • Issue: Vendor-specific interfaces causing standardization issues.
  • Solution: Standardized Development Environments.

Learn by doing!

Try our tutorial with a simple embedded project!

Key features of DEM

🔓 Loose Coupling Between Tools

  • Traditional IDEs can make standalone usage of underlying tools difficult.
  • DEM reduces dependencies and allows for standalone tool usage.

Isolated Tool Environments

  • Tools can interfere with each other or the host system in generic setups.
  • DEM uses containerization to create isolated environments for tools, ensuring consistency.

🔄 Scalable Tool Management

  • Changes in development tools are frequent.
  • DEM allows quick swapping of tool images and ensures safe coexistence of different tool versions.

Reliable Development Environment Sharing

  • Consistency across Development Environments is crucial.
  • DEM enables easy sharing of Development Environments with coworkers.

🚀 Quick and Reproducible Setup

  • Setting up new projects or modifying old ones can be time-consuming.
  • DEM ensures quick and simple installation, and allows for reinstallation whenever needed.

DEM for Linux

Linux operating system is fully supported.

Check out the Installation section and feel free to ask any questions in our community through Discord.

DEM for Windows

DEM can be used in Windows Subsystem for Linux (WSL).

Native Windows support is coming soon...

Feel free to join our open-source community and test DEM on different OSs. Please report your findings on GitHub or in our community through Discord.

DEM for Mac

Coming soon...

Feel free to join our open-source community and test DEM on different OSs. Please report your findings on GitHub or in our community through Discord.

Container engines

Currently, only the Docker Container Engine is supported.