<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Daytona</title>
    <description>The latest articles on DEV Community by Daytona (@daytona).</description>
    <link>https://dev.to/daytona</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F7389%2Fc7c8ce36-9078-4d96-ab88-3b84b0e5dce0.png</url>
      <title>DEV Community: Daytona</title>
      <link>https://dev.to/daytona</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/daytona"/>
    <language>en</language>
    <item>
      <title>Balancing Speed and UX: Making Reasoning AI Work for Users</title>
      <dc:creator>Nikola Balic</dc:creator>
      <pubDate>Sun, 09 Feb 2025 00:00:00 +0000</pubDate>
      <link>https://dev.to/daytona/balancing-speed-and-ux-making-reasoning-ai-work-for-users-28h5</link>
      <guid>https://dev.to/daytona/balancing-speed-and-ux-making-reasoning-ai-work-for-users-28h5</guid>
      <description>&lt;p&gt;Large Language Models (LLMs) are advancing beyond simple parameter scaling, incorporating complex architectures like mixtures of experts and enhanced reasoning capabilities.&lt;/p&gt;

&lt;p&gt;Model makers such as OpenAI, Anthropic, Mistral, Google, and even DeepSeek are progressively releasing these reasoning models, which are now considered state-of-the-art (SOTA). These models excel at tackling complex, multi-step tasks, enabling solutions to challenges that were previously out of reach.&lt;/p&gt;

&lt;p&gt;However, this advancement comes with a significant user experience (UX) challenge: &lt;strong&gt;increased response times.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Power and Limitations of Reasoning Models
&lt;/h2&gt;

&lt;p&gt;Reasoning models offer substantial benefits by providing detailed, accurate answers to intricate problems.&lt;/p&gt;

&lt;p&gt;For example, while a standard LLM might succinctly answer, "The capital of France is Paris," a reasoning model would elaborate on the reasoning process: "Let me think. I remember learning in school that Paris is a major city in France. It's known for things like the Eiffel Tower, the Louvre museum, and the Seine River..."&lt;/p&gt;

&lt;p&gt;This enhanced capability is invaluable for tasks such as debugging complex code, solving advanced mathematical problems, and navigating intricate dependencies.&lt;/p&gt;

&lt;p&gt;Recently, I encountered persistent errors related to Pydantic validations imposed by dependencies. While multiple models struggled with these issues, the o1-mini model resolved them on the first attempt.&lt;/p&gt;

&lt;p&gt;In such scenarios, the quality and reliability of the response outweighed the inconvenience of a longer wait time.&lt;/p&gt;

&lt;h2&gt;
  
  
  The UX Challenge: Speed vs. Quality
&lt;/h2&gt;

&lt;p&gt;Despite their superior performance, reasoning models introduce latency due to the additional computational steps required for complex reasoning.&lt;/p&gt;

&lt;p&gt;Users today expect immediate feedback, and any noticeable delay can be perceived as a weakness or inefficiency in the system. This perception poses a significant UX challenge: &lt;strong&gt;how to deliver high-quality, accurate responses without compromising on speed.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Instantaneous interactions have become the norm in digital communications, and users are likely to abandon or lose trust in tools that introduce delays, even if those delays result in better outcomes.&lt;/p&gt;

&lt;p&gt;Balancing the need for quick responses with the demand for detailed, accurate information is crucial for the widespread adoption of reasoning models.&lt;/p&gt;

&lt;h2&gt;
  
  
  Leveraging Smart Model Routing
&lt;/h2&gt;

&lt;p&gt;One effective strategy to address this challenge is &lt;strong&gt;smart model routing&lt;/strong&gt;. This approach dynamically selects the most appropriate model based on the complexity of the user's query:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Simple Queries&lt;/strong&gt; : For straightforward tasks such as summarization, translation, or basic question-answering, faster, less resource-intensive models can be employed. These models provide instant responses, ensuring a seamless user experience.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Complex Tasks&lt;/strong&gt; : When faced with intricate problems that require deep reasoning, the system can route the query to more powerful reasoning models. Although these models may take slightly longer to respond, the accuracy and depth of their outputs justify the additional wait time.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Smart model routing ensures users receive a tailored balance of speed and intelligence, enhancing overall satisfaction while maintaining problem-solving quality.&lt;/p&gt;

&lt;h2&gt;
  
  
  Integrating Advanced Tools for Enhanced Workflows
&lt;/h2&gt;

&lt;p&gt;In addition to model routing, integrating specialized tools can further mitigate UX concerns associated with reasoning models. &lt;a href="https://github.com/daytonaio/sdk" rel="noopener noreferrer"&gt;&lt;strong&gt;Daytona SDK&lt;/strong&gt;&lt;/a&gt;&lt;a href="https://github.com/daytonaio/sdk" rel="noopener noreferrer"&gt;&lt;/a&gt;exemplifies how tool integration can enhance AI workflows:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ephemeral Environments&lt;/strong&gt; : Daytona SDK allows AI workflows or agents to create temporary, full-fledged environments—similar to throwaway laptops—for executing any piece of code. This capability enables models to handle tasks requiring real-time computation without significant delays.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Tool Adaptability&lt;/strong&gt; : Agents can develop their own tools or install and invoke existing ones, providing flexibility in addressing a wide range of challenges. This adaptability ensures that the system remains responsive and efficient even when leveraging powerful reasoning models.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By incorporating such tools, developers can create a more responsive user experience in their AI products and service that leverages the strengths of reasoning models without compromising on the perceived speed.&lt;/p&gt;

&lt;h2&gt;
  
  
  Future Directions: Combining Strategies for Optimal Performance
&lt;/h2&gt;

&lt;p&gt;The path forward involves integrating smart model routing with advanced toolsets like Daytona SDK. This combination can create a robust AI framework capable of:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Adaptive Responsiveness&lt;/strong&gt; : Seamlessly switching between models based on task complexity ensures optimal performance and user satisfaction.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scalable Problem-Solving&lt;/strong&gt; : Leveraging specialized tools within ephemeral environments allows the system to tackle diverse challenges efficiently.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Enhanced User Trust&lt;/strong&gt; : Delivering accurate, high-quality responses without unacceptable delays builds user confidence in AI systems.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Tools to the Rescue
&lt;/h2&gt;

&lt;p&gt;The development of reasoning LLMs marks a significant advancement in AI, offering remarkable capabilities to solve complex problems. However, the associated increase in response times presents a UX challenge that cannot be overlooked.&lt;/p&gt;

&lt;p&gt;By implementing smart model routing and integrating powerful tools like Daytona SDK, it is possible to harness the full potential of reasoning models while maintaining the immediacy that users expect. Striking this balance is essential for advanced AI systems' continued adoption and success in real-world applications.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>sandbox</category>
      <category>agents</category>
      <category>ux</category>
    </item>
    <item>
      <title>How to Set Up Dev Environment on a Remote Machine</title>
      <dc:creator>Nikola Balic</dc:creator>
      <pubDate>Tue, 16 Apr 2024 00:00:00 +0000</pubDate>
      <link>https://dev.to/daytona/how-to-set-up-dev-environment-on-a-remote-machine-1fl4</link>
      <guid>https://dev.to/daytona/how-to-set-up-dev-environment-on-a-remote-machine-1fl4</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp9def33wobd7jdbhlwfw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp9def33wobd7jdbhlwfw.png" alt=" " width="800" height="402"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In this step-by-step guide, we'll walk you through setting up a dev environment with Daytona on a remote machine. Daytona is a powerful tool for creating and managing development environments on local or remote machines.&lt;/p&gt;

&lt;p&gt;In this example, we'll use an Azure ARM machine with 8 vCPUs, 16 GB of RAM, and 300 GB of storage. You can play around with different server specifications or utilize whatever is accessible to you, maybe a homelab machine or that server you have tucked away in a corner. This will affect the number of workspaces you can have concurrently and the overall user experience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TLDR:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Prepare Remote Machine:&lt;/strong&gt; Install Docker and set permissions.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Configure Daytona Target:&lt;/strong&gt; Add a remote machine as a target in Daytona.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Integrate Git Providers (Optional):&lt;/strong&gt; Add GitHub or other providers to Daytona.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Create and Access Workspace:&lt;/strong&gt; Use Daytona to create and open a workspace in VS Code.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Prerequisites:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Daytona daemon running on a local machine&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A remote machine with Docker installed&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;SSH access to the remote machine&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A GitHub account with a personal access token&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 0: Set Up Daytona on Your Local Machine
&lt;/h2&gt;

&lt;p&gt;Before you can start using Daytona with a remote machine, you need to ensure that Daytona is properly set up on your local machine. If you haven't installed Daytona yet, don't worry! We've got you covered with a simple one-liner that will get you up and running in no time.&lt;/p&gt;

&lt;h3&gt;
  
  
  Installing Daytona
&lt;/h3&gt;

&lt;p&gt;To install Daytona on your local machine, open a terminal and run the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;(curl -sf -L https://download.daytona.io/daytona/install.sh | sudo bash) &amp;amp;&amp;amp; daytona server -d
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command will download the Daytona installation script from the official Daytona website and execute it using &lt;code&gt;sudo&lt;/code&gt; privileges. The script will guide you through the installation process, ensuring that all the necessary dependencies are installed and configured correctly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Starting the Daytona Server
&lt;/h3&gt;

&lt;p&gt;Once the installation is complete, the command will automatically start the Daytona server in the background using the &lt;code&gt;-d&lt;/code&gt; flag. This means that you can continue using your terminal for other tasks while Daytona runs in the background.&lt;/p&gt;

&lt;p&gt;If you ever need to stop the Daytona server, you can do so by running:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;daytona server stop
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And to start it again, simply run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;daytona server start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Verifying the Installation
&lt;/h3&gt;

&lt;p&gt;To verify that Daytona is installed and running correctly on your local machine, you can run the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;daytona version
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command will display the currently installed version of Daytona, confirming that the installation was successful.&lt;/p&gt;

&lt;p&gt;With Daytona now set up on your local machine, you're ready to move on to the next step and prepare your remote machine for use with Daytona. In the following steps, we'll guide you through the process of installing Docker on the remote machine, configuring the necessary permissions, and adding the remote machine as a target in Daytona.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Prepare the Remote Machine
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://docs.docker.com/engine/install/" rel="noopener noreferrer"&gt;Install Docker&lt;/a&gt; on the remote machine if it's not already installed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add your user to the &lt;a href="https://www.daytona.io/definitions/d/docker" rel="noopener noreferrer"&gt;Docker&lt;/a&gt; user group by running the following command:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo usermod -aG docker $USER
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;Set the appropriate permissions for the Docker socket by running:
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo chmod 666 /var/run/docker.sock
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Step 2: Set Up the Target
&lt;/h2&gt;

&lt;p&gt;Daytona utilizes the concept of targets, allowing you to add remote machines for deploying and &lt;a href="https://www.daytona.io/definitions/d/development-environment-management-dem" rel="noopener noreferrer"&gt;managing development environments&lt;/a&gt;. By default, Daytona includes a Docker provider, enabling you to spin up environments on your local or remote machine inside Docker container.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Open the Daytona CLI and run &lt;code&gt;daytona server target list&lt;/code&gt; to view the available targets.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Set a new target by running &lt;code&gt;daytona server target set&lt;/code&gt; and selecting the desired provider (e.g., Azure).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Provide the necessary information, such as the IP address, username, and SSH key path.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Verify that the target was successfully added by running &lt;code&gt;daytona server target list&lt;/code&gt; again.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Step 3: Add Git Providers (Optional)
&lt;/h2&gt;

&lt;p&gt;This step is optional since you can simply paste the public Git URL to create a workspace from it.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;If you want to use your own &lt;a href="https://www.daytona.io/definitions/g/git" rel="noopener noreferrer"&gt;Git&lt;/a&gt; repositories directly with Daytona, you need to add a Git provider. We will use GitHub, but you can use GitLab, Bitbucket, Gitea, or Codeberg. You can also check our guide on &lt;a href="https://dev.to/nkko/comprehensive-guide-to-selecting-git-provider-4kmf-temp-slug-1383486"&gt;how to select Git provider&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Go to your GitHub settings and navigate to the Developer settings.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create a personal access token with the necessary permissions (repositories access).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Add the GitHub provider to Daytona using the generated access token and command &lt;code&gt;daytona git-providers add&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwfhy5ed0kkqgf0sgsg1l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwfhy5ed0kkqgf0sgsg1l.png" width="593" height="239"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: Create a Workspace
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa6o5dg1kvbbq25wg0dte.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa6o5dg1kvbbq25wg0dte.png" width="761" height="487"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Run &lt;code&gt;daytona create&lt;/code&gt; to create a new workspace.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Choose the desired Git repository, by pasting the repo URL or selecting it from the list of your repositories, and select the target on which you wish to run your workspace.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Wait for Daytona to pull the necessary images and set up the workspace.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Once the workspace is created, you can view it by running &lt;code&gt;daytona list&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frmgzi5rifn6i4burby6d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frmgzi5rifn6i4burby6d.png" width="800" height="520"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Open the Workspace in VS Code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk8yq99ac57p2i5ix5ds0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fk8yq99ac57p2i5ix5ds0.png" width="800" height="536"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Set your preferred IDE by running &lt;code&gt;daytona ide&lt;/code&gt; and selecting VS Code. You can also use web IDE powered by OpenVSCode or any of the JetBrains IDEs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Run &lt;code&gt;daytona code&lt;/code&gt; to open the workspace in VS Code.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;VS Code will establish an SSH connection to the remote machine and set up the remote server.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Once the connection is established, you can start working on your files within the workspace.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Step 6: Open the Workspace from a Development Container Specification (Optional)
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;If your workspace includes a dev container specification, you can rebuild the container from it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;VS Code will download the necessary images and start the container.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Once the container is running, you can access the workspace and make changes on your code.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flq8twan57i12vf31t278.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flq8twan57i12vf31t278.png" width="557" height="237"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Congratulations! You have successfully set up Daytona with a remote machine and created a workspace. You can now work on your projects seamlessly, whether locally or on a remote machine.&lt;/p&gt;

&lt;p&gt;If you encounter any issues or have further questions, feel free to contact the Daytona team in our Slack or add an issue to the &lt;a href="https://github.com/daytonaio/daytona" rel="noopener noreferrer"&gt;Daytona GitHub repository&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>guides</category>
      <category>howto</category>
      <category>daytona</category>
    </item>
    <item>
      <title>How We Missed #1 on Product Hunt but Still Won Big</title>
      <dc:creator>Nikola Balic</dc:creator>
      <pubDate>Fri, 29 Mar 2024 00:00:00 +0000</pubDate>
      <link>https://dev.to/daytona/how-we-missed-1-on-product-hunt-but-still-won-big-1gig</link>
      <guid>https://dev.to/daytona/how-we-missed-1-on-product-hunt-but-still-won-big-1gig</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxyxke2h47ct4zb4xlh8o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxyxke2h47ct4zb4xlh8o.png" alt="Daytona on Product Hunt #2" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When we decided to launch our open-source &lt;a href="https://www.daytona.io/definitions/d/development-environment-management-dem" rel="noopener noreferrer"&gt;dev environment management&lt;/a&gt; tool, &lt;a href="https://www.producthunt.com/posts/daytona" rel="noopener noreferrer"&gt;Daytona, on Product Hunt&lt;/a&gt;, we had no idea what we were getting ourselves into. With just a week to prepare, we began an unusual trip that normally requires weeks of strategic planning.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Launching on Product Hunt with just a week's notice, we faced challenges and learned valuable lessons about authenticity, engagement, and measuring success beyond vanity metrics. Despite missing the #1 spot, we still reaped significant benefits and discovered the true value of a Product Hunt launch.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Following our project's successful launch on GitHub as open-source under the Apache license, we were riding a wave of success. With stars in our eyes and a week to prepare, we dove headfirst into the world of Product Hunt launches. But here's the twist - we gave ourselves just one week to prepare. Crazy? Maybe. Educational? Definitely.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvfcqixhpnvtf7uuljb1x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvfcqixhpnvtf7uuljb1x.png" width="800" height="577"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Little did we know that our quest for Product Hunt glory would lead us down a path of epic struggle, valuable lessons, and ultimately, a newfound appreciation for the true value of launching on the platform.&lt;/p&gt;

&lt;p&gt;But, reaching &lt;a href="https://dev.to/daytona/how-to-write-a-4000-stars-github-readme-for-your-project-3167"&gt;5,000 GitHub stars&lt;/a&gt; in just three weeks secured us an engaged community and momentum, which we capitalized on to our advantage.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It's not about the numbers or the vanity metrics – it's about the connections you make, the lessons you learn, and the impact you have on your community.&lt;/p&gt;

Ivan Burazin, CEO and founder of Daytona
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Debunking the Product Hunt Myths
&lt;/h2&gt;

&lt;p&gt;Let's begin by debunking a few widespread myths regarding Product Hunt.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;"You need a month to prepare for a Product Hunt launch."&lt;/strong&gt; - False. We did it in less than a week, and you can too. It's all about focus, determination, and a healthy dose of caffeine.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;"You need a fancy video and polished graphics."&lt;/strong&gt; - Nope. While great visuals help, what matters most is showcasing your product's value and engaging with the community. We prepared our materials by repurposing the assets already available in our team's Figma and reusing an &lt;a href="https://youtu.be/uL-TaEhvVwk" rel="noopener noreferrer"&gt;existing YouTube video&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;"You need to know someone to succeed."&lt;/strong&gt; - Absolutely not. We didn't have any insider connections, or hunters, just a genuine desire to share our project with the world.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Obstacles of Our Time-Constrained Product Hunt Launch
&lt;/h2&gt;

&lt;p&gt;Our accelerated approach came with its own set of challenges:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Limited Time for Preparation:&lt;/strong&gt; With only a week to prepare, we had to be laser-focused and prioritize our efforts.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Leveraging Existing Assets:&lt;/strong&gt; Instead of creating entirely new assets for the launch, we had to be resourceful and repurpose what we already had. This meant adapting our existing content, graphics, and messaging to fit the Product Hunt format and audience.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Building Buzz on Short Notice:&lt;/strong&gt; Typically, companies spend weeks or even months building anticipation for their Product Hunt launch. We had to compress this process into just a few days, which required a lot of creative thinking.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  How We Epically Failed to Reach #1 on Product Hunt
&lt;/h2&gt;

&lt;h3&gt;
  
  
  The Epic Failure:
&lt;/h3&gt;

&lt;p&gt;When our highly anticipated product launch on Product Hunt fell flat, it was a humbling and eye-opening experience. Here's three main reasons:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Underestimating the Competition:&lt;/strong&gt; We thought we had a killer product, a solid strategy, and enough caffeine to power a small nation. But we quickly learned that the competition on Product Hunt is no joke. We were up against some seriously impressive products and teams with deep pockets and even deeper connections. To make matters worse, we found ourselves competing with trendy AI startups popping up left and right, promising to revolutionize every industry.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Overestimating Our Influence:&lt;/strong&gt; We thought our existing community and open-source success would give us an advantage. Boy, were we wrong. Everything requires more effort than you might anticipate. Remember, communities are made up of individuals who can be forgetful or preoccupied with urgent matters of their own.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ignoring the Subtle Art of Upvote Hunting:&lt;/strong&gt; We naively believed that if we built it, they would come (and upvote). Little did we know that there's an entire art form dedicated to the subtle (and not-so-subtle) art of the deal on Product Hunt. We were like a bunch of amateurs trying to play chess against Hans Niemann.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5k0wprqfgjirrxqq8fvy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5k0wprqfgjirrxqq8fvy.png" width="800" height="331"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The Brutal Honesty:
&lt;/h3&gt;

&lt;p&gt;Despite our best efforts, we ended up at #2 on Product Hunt. And you know what? It was one of the best "failures" we've ever experienced. Here's why:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Exposure, Exposure, Exposure:&lt;/strong&gt; We reached thousands of potential users, investors, and partners that we might never have reached otherwise.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Valuable Connections:&lt;/strong&gt; Through our launch, we connected with countless developers, entrepreneurs, and industry leaders who shared our passion for making development environments more accessible and efficient.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Lessons Learned:&lt;/strong&gt; Our "failure" taught us more about marketing, community building, and perseverance. We learned what works, what doesn't, and how to approach our next launch.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjv8i8kivu13stbbff90e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjv8i8kivu13stbbff90e.png" width="598" height="403"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  5 Key Benefits of Launching Your Dev Tool on Product Hunt
&lt;/h2&gt;

&lt;p&gt;The Value of Being #2 (or #3, or #4...): While the allure of being #1 on Product Hunt is undeniable, the true value lies in the exposure, connections, and lessons learned along the way. Here are five reasons why being #2 (or any other spot on the top 10 leaderboard) is still a massive win:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Widespread Exposure:&lt;/strong&gt; Despite being the second-ranking product, we were highlighted in Product Hunt's daily newsletter (top 10 gets in), which boasts an estimated reach of over 750,000 subscribers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Social Proof:&lt;/strong&gt; Being at the top on Product Hunt serves as a powerful social proof, validating your product's value and attracting potential users and investors.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Social Media Boost:&lt;/strong&gt; Due to our massive social media presence on the launch day, we saw a 50% increase in Twitter impressions and a 10% increase in followers.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Multiplication Opportunities:&lt;/strong&gt; Top products on Product Hunt often catch the attention of other creators, journalists, and influencers, leading to potential additional coverage.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Community Engagement:&lt;/strong&gt; Topping the charts on Product Hunt can spark conversations and engagement within the tech community, providing valuable feedback and insights.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;And one bonus point: &lt;strong&gt;Bragging Rights&lt;/strong&gt; - Let's be honest – being able to say your product was ranked top on Product Hunt is a pretty cool feat.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Product Hunt Launch Day Frenzy
&lt;/h2&gt;

&lt;p&gt;On the day of the launch, the energy was palpable, like a scene straight out of a heist movie. Our team, was ready to jump on any opportunity to engage with the Product Hunt community. I, fueled by a steady drip of caffeine, was answering questions and comments with the speed of a speeding bullet. We even had a secret weapon: a stash of memes, ready to be deployed at a moment's notice, adding an element of playfulness to our interactions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff5cdwx7eocbjskglgree.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff5cdwx7eocbjskglgree.png" width="800" height="666"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Throughout the day, I dedicated 20 hours to responding to messages, comments, and publishing updates across our social media channels. Although exhausting, this experience taught me the invaluable lesson of being present and responsive during a product launch.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Worthy mention&lt;/strong&gt; — One of the great tools that helped us track our launch progress throughout the day was &lt;a href="https://hunted.space/" rel="noopener noreferrer"&gt;Hunted Space&lt;/a&gt;. It gave us a clearer understanding of how to understand the leaderboard mechanics and the fluctuations in upvotes.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu9gjv7kcsg64b1rxrrha.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu9gjv7kcsg64b1rxrrha.png" width="800" height="737"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As the day drew to a close, we were left in the #3 spot, which left us perplexed for a few hours. Unbeknownst to us, one of the other products had gained an astounding number of upvotes in the final minutes, propelling them to the coveted #1 position. This sudden shift caught the attention of the watchful team at Product Hunt, who promptly investigated and corrected the anomaly in the upvote count.&lt;/p&gt;

&lt;p&gt;After the final tally, we were delighted to discover that we had safely landed in the second-place spot, earning the silver medal. This outcome was a testament to the hard work and dedication our team had poured into the launch, as well as the recognition from the Product Hunt community.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step-by-Step Launch Preparation Guide
&lt;/h2&gt;

&lt;p&gt;To those considering launching on Product Hunt, we encourage you to define success holistically, focus on authenticity, engage with the community, leverage your existing audience, and learn from the experience.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Set your launch date and commit to it, even if it is in two days. No backing out now!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Gather your assets. Screenshots, GIFs, and a concise description of your product are essential.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Craft your pitch. Tell your story, highlight your product's unique value, and don't be afraid to show some personality.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Rally your troops. Notify your existing community about the upcoming launch and ask for their support.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Get some rest. Trust us, you'll need it.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Launch day: Buckle up and enjoy the ride! Block off some time in the team's calendar to ensure everyone participates in engaging with your social media posts, giving them an initial boost.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  One End Game Tip for Winning Product Hunt
&lt;/h2&gt;

&lt;p&gt;If you pushed me into a corner and forced me to share just one genuine tip, it would be this:&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Cross-promote like crazy:&lt;/strong&gt; Share your Product Hunt link on every relevant platform, from social media to industry forums. You never know where your next upvote will come from.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmv6o8woh0mm2fjyxat8r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmv6o8woh0mm2fjyxat8r.png" width="800" height="655"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Our Product Hunt Launch Adventure with Daytona Ends (for now)
&lt;/h2&gt;

&lt;p&gt;Launching on Product Hunt in just one week was a wild ride, but we wouldn't have it any other way. We learned valuable lessons that success isn't just about vanity metrics, but about the connections we make, the lessons we learn, and the impact we have on our community.&lt;/p&gt;

&lt;p&gt;So, if you're considering a Product Hunt launch, don't let the myths hold you back. Embrace the unconventional, stay true to yourself, and most importantly, have fun!&lt;/p&gt;

&lt;p&gt;Ready to Try Daytona? If you're a developer looking to streamline your development environment setup, head over to our &lt;a href="https://github.com/daytonaio/daytona" rel="noopener noreferrer"&gt;GitHub repository and give Daytona a try&lt;/a&gt;. We're excited to continue building this open-source tool alongside our growing community.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where to Look for More Inspiration and Tips
&lt;/h2&gt;

&lt;p&gt;For more insights and inspiration on launching your product on Product Hunt, be sure to check out some of the fantastic resources we've read through while prepping our launch.&lt;/p&gt;

&lt;p&gt;We highly recommend the comprehensive guide by &lt;a href="https://www.producthunt.com/launch" rel="noopener noreferrer"&gt;Product Hunt&lt;/a&gt; themselves, which covers everything from crafting your launch strategy to engaging with the community.&lt;/p&gt;

&lt;p&gt;For a fresh perspective, don't miss the recent post by Steven Tey, detailing how his startup &lt;a href="https://dub.co/blog/product-hunt" rel="noopener noreferrer"&gt;&lt;strong&gt;Dub.co&lt;/strong&gt;&lt;/a&gt; achieved #1 Product of the Day and #1 Product of the Week. Steven shares his step-by-step playbook, emphasizing the importance of building a strong community, creating stellar launch assets, and staying engaged throughout the launch process.&lt;/p&gt;

&lt;p&gt;Also, for another firsthand account of achieving 'Product of the Day' with a dev tool, check out Daniel Bass's insights on growth tips and community engagement during &lt;a href="https://dev.to/gemanor/how-we-got-our-dev-tool-product-of-the-day-in-product-hunt-and-survived-3m76"&gt;&lt;strong&gt;Permit.io's&lt;/strong&gt;&lt;/a&gt; launch.&lt;/p&gt;

&lt;p&gt;Other noteworthy articles include &lt;a href="https://dev.to/ukutaht/how-not-to-launch-on-product-hunt-and-lessons-from-our-successful-launch-1ndj-temp-slug-2442558"&gt;&lt;strong&gt;Plausible's&lt;/strong&gt;&lt;/a&gt; honest account of their successful launch, &lt;a href="https://www.softr.io/blog/producthunt-launch" rel="noopener noreferrer"&gt;&lt;strong&gt;Softr's&lt;/strong&gt;&lt;/a&gt; tips for reaching the top, and the insightful behind-the-scenes look at &lt;a href="https://kleversuite.com/blog/post/product-hunt-launch-success" rel="noopener noreferrer"&gt;&lt;strong&gt;Klever Suite's&lt;/strong&gt;&lt;/a&gt; Product Hunt journey.&lt;/p&gt;

</description>
      <category>howto</category>
      <category>producthunt</category>
    </item>
    <item>
      <title>How to Write A 4000 Stars GitHub README for Your Project</title>
      <dc:creator>Ivan Burazin</dc:creator>
      <pubDate>Tue, 12 Mar 2024 00:00:00 +0000</pubDate>
      <link>https://dev.to/daytona/how-to-write-a-4000-stars-github-readme-for-your-project-3167</link>
      <guid>https://dev.to/daytona/how-to-write-a-4000-stars-github-readme-for-your-project-3167</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxth2mj03er4auqm4nlpj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxth2mj03er4auqm4nlpj.png" alt="How to Write A 4000 Stars GitHub README for Your Project" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The README is the most important file in your project. It's visitors' first impression, which can significantly impact whether they decide to star, become a user, contributor, or just close the browser tab.&lt;/p&gt;

&lt;p&gt;Before open-sourcing our project &lt;a href="https://github.com/daytonaio/daytona/"&gt;Daytona&lt;/a&gt; — a first for us — I aimed to ensure everything was perfect, aside from the code, which is another story unto itself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Key strategies for a successful GitHub README learned from the open-source project Daytona that gained 4.000 stars in the first week.&lt;/li&gt;
&lt;li&gt;Impactful Header: Logo, badges, one-liner, visuals, and quick start guide.&lt;/li&gt;
&lt;li&gt;Engaging Content: Explain the project's purpose, backstory, and detailed getting started guide.&lt;/li&gt;
&lt;li&gt;Project Hygiene: Include contributing guide, license, code of conduct, and ensure no broken links or empty sections.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I'm excited to share with you the learnings for crafting README.md that we employed to achieve nearly 4.000 stars in the first week.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9xbVhsr---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.datocms-assets.com/103916/1710256342-starhistoryarticle.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9xbVhsr---/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.datocms-assets.com/103916/1710256342-starhistoryarticle.png" alt="Star History for Daytona" width="800" height="544"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I began by examining the 100 most popular repositories on GitHub and was surprisingly underwhelmed by their READMEs. Extending my search to other projects within the same domain yielded similar results. It appears that successful projects often originate from companies or individuals who already have substantial followings, making the basics seem less critical to them. Atlassian's recent &lt;a href="https://github.com/atlassian/pragmatic-drag-and-drop"&gt;&lt;u&gt;"Pragmatic drag and drop"&lt;/u&gt;&lt;/a&gt; project is a glaring example, a repo with just a readme, yet due to Atllasian’s popularity still got to trending page on GitHub for a day.&lt;/p&gt;

&lt;p&gt;However, I decided not to leave anything to chance, so I did extensive research to uncover what truly matters. Here's what I discovered.&lt;/p&gt;

&lt;h2&gt;
  
  
  Heading Overview
&lt;/h2&gt;

&lt;p&gt;This segment is critical as it captures most readers' attention. Fail to engage them here, and you risk losing them forever. Use this opportunity wisely. Here are my suggestions:&lt;/p&gt;

&lt;h3&gt;
  
  
  The Logo Beckons
&lt;/h3&gt;

&lt;p&gt;Begin with your &lt;strong&gt;project's logo&lt;/strong&gt;. It may seem obvious, yet many overlook it. This space is valuable real estate for making a strong first impression. In our situation, we decided our initial logo needed a redesign, and after some stress about the timing, we successfully now have a shiny new logo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--vyVYdNST--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.datocms-assets.com/103916/1710256154-daytonareadme.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vyVYdNST--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.datocms-assets.com/103916/1710256154-daytonareadme.png" alt="" width="800" height="574"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Badges Convey Trust at a Glance
&lt;/h3&gt;

&lt;p&gt;Badges convey vital information about your project's health, build status, and overall quality. Strategically placed beneath your logo, these badges instill confidence in potential contributors, reassuring them that your project adheres to industry best practices.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Elevator Pitch
&lt;/h3&gt;

&lt;p&gt;Start with a &lt;strong&gt;catchy one-liner&lt;/strong&gt; that encapsulates what your project is about, followed by a subtitle that provides additional context. Craft a concise, one-liner that encapsulates the essence of your project, followed by a compelling sub-title that provides additional context. This initial hook is crucial in piquing the interest of those browsing GitHub's vast repository landscape. Despite dedicating considerable effort to crafting this line, we still feel it misses the mark.&lt;/p&gt;

&lt;h3&gt;
  
  
  Create A Visual Feast
&lt;/h3&gt;

&lt;p&gt;Humans are inherently visual creatures, and a well-executed image, GIF, or animation can convey the functionality and value of your project more effectively than words alone. Showcase your project's capabilities in a visually captivating manner, leaving a lasting impression on your audience. For this task, LiceCap remains a classic favorite for many, undoubtedly standing the test of time.&lt;/p&gt;

&lt;h3&gt;
  
  
  Feature Highlights
&lt;/h3&gt;

&lt;p&gt;Once you've captured their attention, it's time to list your project's most compelling features. Highlight the unique value propositions that set your project apart, leaving your audience eager to explore further.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Quickstart
&lt;/h3&gt;

&lt;p&gt;Provide a &lt;strong&gt;quick start guide.&lt;/strong&gt; Once users have a basic understanding of the project, offer a streamlined guide. With as few commands as possible, show how users can begin utilizing your project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Main Body of the README
&lt;/h2&gt;

&lt;p&gt;This section is for people seeking further information and more detailed insights; here are the strategies that have proven effective for us.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Why?
&lt;/h3&gt;

&lt;p&gt;Clarify from the reader's perspective why they should engage with your project. This helps in establishing a connection by directly addressing their needs or challenges.&lt;/p&gt;

&lt;h3&gt;
  
  
  Backstory
&lt;/h3&gt;

&lt;p&gt;Not every project may have one, but if yours does, it's highly recommended to share it. People are naturally drawn to stories — sharing your motivation and the journey behind the project can make it more relatable and memorable for your audience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Getting Started
&lt;/h3&gt;

&lt;p&gt;This section is an extended version of the Quick Start guide, where you delve deeper into the how-tos, akin to mini-documents. It's essential for explaining your project's utility and application comprehensively.&lt;/p&gt;

&lt;h3&gt;
  
  
  Keep it Concise
&lt;/h3&gt;

&lt;p&gt;Avoid unnecessarily long README files, as they can detract users and contributors who may perceive the project as overly complex.&lt;/p&gt;

&lt;h2&gt;
  
  
  Project Hygiene Essentials
&lt;/h2&gt;

&lt;p&gt;While captivating narratives and visually stunning presentations are essential, true sustainability in the open-source realm hinges on impeccable project hygiene. These fundamental elements serve as the backbone of a thriving, collaborative ecosystem.&lt;/p&gt;

&lt;h3&gt;
  
  
  Contributing
&lt;/h3&gt;

&lt;p&gt;A well-crafted Contributing Guide ensures that contributors follow your project's best practices, raise useful issues, and submit well-formed pull requests, making it easier for maintainers to manage the project:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Organize Steps:&lt;/strong&gt; Ensure that the steps for contributing code are clearly organized and easy to follow.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Specific Commands:&lt;/strong&gt; Use specific commands (e.g., git add  ) instead of greedy commands like git add . to avoid adding unwanted files to commits.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  License
&lt;/h3&gt;

&lt;p&gt;Clearly articulate your project's licensing terms, safeguarding both your intellectual property and the rights of contributors. A well-defined license instills confidence and mitigates potential legal complications down the line.&lt;/p&gt;

&lt;h3&gt;
  
  
  Code of Conduct
&lt;/h3&gt;

&lt;p&gt;A Code of Conduct defines how the project will engage and interact with the community, setting expectations for respectful contributions. While the wording of the Code of Conduct is outside the scope of this article, it's essential to have one in place to ensure a positive and inclusive community. &lt;/p&gt;

&lt;p&gt;You can also take inspiration and guidance from the community, for example, our Code of Conduct is adapted from the &lt;a href="https://www.contributor-covenant.org/"&gt;&lt;u&gt;Contributor Covenant&lt;/u&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Support Network
&lt;/h3&gt;

&lt;p&gt;Provide clear channels for users and contributors to seek assistance, report issues, or provide feedback. Responsive and accessible support mechanisms not only enhance the user experience but also foster a sense of community and long-term engagement.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final README Review Checklist
&lt;/h2&gt;

&lt;p&gt;Ensure every item in the README adds value. Consider moving detailed items to a separate docs folder as the file grows and referencing them in the README. Ensure your README is free from broken links and empty sections, and maintain standardized formatting to achieve a neat and professional appearance. &lt;/p&gt;

&lt;p&gt;Maintain consistent naming conventions throughout the README and the repository. Remove empty sections from the README to keep it clean and concise. Create issues with appropriate labels for sections that need content.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enhancing Project Hygiene Beyond the README
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Security
&lt;/h3&gt;

&lt;p&gt;Create a &lt;strong&gt;SECURITY.md&lt;/strong&gt; file in your project's root directory, outlining the process for reporting vulnerabilities.&lt;/p&gt;

&lt;h3&gt;
  
  
  About
&lt;/h3&gt;

&lt;p&gt;Ensure all sections are completed thoroughly:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Description - Summarize your project in a concise one-liner.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Website - Provide a link for additional information and include relevant topic tags.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;On the homepage, include relevant information and deselect any of these three options—Releases, Packages, Deployments—if they're not applicable to save space effectively.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Releases
&lt;/h3&gt;

&lt;p&gt;For &lt;strong&gt;Releases&lt;/strong&gt; , utilize GitHub's releases feature to enable users to gauge the project's activity level based on the most recent release date.&lt;/p&gt;

&lt;h3&gt;
  
  
  Issues
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Custom Labels:&lt;/strong&gt; GitHub automatically provides default labels, but don't hesitate to create additional ones tailored to your project's needs. Create custom labels such as "Staff Only," "Blocked," "Awaiting Triage," and "Ready for Dev" to categorize issues, manage expectations, and create a triage flow.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Encouraging Community Contributions:&lt;/strong&gt; At the outset, it's beneficial to populate your repository with several beginner-friendly issues to kickstart community engagement. Use the "good first issue" label to mark these tasks, encouraging new contributors. For example, apply this label to select issues in your project like so:&lt;a href="https://github.com/daytonaio/daytona/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22"&gt;&lt;u&gt;good first issue&lt;/u&gt;&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Issue Templates:&lt;/strong&gt; To ensure that reported issues follow a consistent structure, employing templates is wise. While GitHub offers default templates, customizing them allows for unique and creative approaches to issue reporting.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's all! While it sounds straightforward, it required substantial research and testing. To see an example, please visit our repository. Additionally, if you have any suggestions, don't hesitate to open an issue - we welcome your input!&lt;/p&gt;

&lt;p&gt;Remember, the README is visitors' first impression of your project, so investing time and effort into creating a well-structured and comprehensive file can significantly impact its visibility, adoption, and community engagement.&lt;/p&gt;

&lt;p&gt;Gaining traction and accumulating GitHub stars is not a final goal but a&lt;br&gt;&lt;br&gt;
journey, one that requires dedication, responsiveness, and a relentless pursuit of excellence. By meticulously crafting each aspect of your open-source project, from the captivating header to the robust contribution guidelines, you'll create an irresistible gravitational pull that attracts contributors, fosters engagement, and propels your project to the pinnacle of the open-source community.&lt;/p&gt;

&lt;p&gt;Best of luck with your project, and here's hoping it becomes a trending success too!&lt;/p&gt;

</description>
      <category>howto</category>
      <category>guide</category>
      <category>opensource</category>
      <category>readme</category>
    </item>
    <item>
      <title>Daytona Goes Open Source: Embarking on a Bold New Journey</title>
      <dc:creator>Nikola Balic</dc:creator>
      <pubDate>Tue, 05 Mar 2024 00:00:00 +0000</pubDate>
      <link>https://dev.to/daytona/daytona-goes-open-source-embarking-on-a-bold-new-journey-4glk</link>
      <guid>https://dev.to/daytona/daytona-goes-open-source-embarking-on-a-bold-new-journey-4glk</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fioy38cu4fbban68r69ne.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fioy38cu4fbban68r69ne.png" alt=" " width="800" height="402"&gt;&lt;/a&gt;&lt;br&gt;
Daytona is leaping into the open source. It's a decision that feels akin to sending our beloved brainchild into the world, allowing it to grow beyond the confines of our aspirations.&lt;/p&gt;

&lt;p&gt;We've nurtured Daytona with love and dedication. But the time has come for us to share our creation with the community that has been the backbone of our industry. Today marks not just another product release, but a heartfelt invitation to developers everywhere to join us in shaping Daytona's future.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Why Open Source?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The decision to go open source stems from a simple truth: innovation thrives in collaboration. By opening up Daytona's codebase, we're inviting developers to co-create the future of development environments with us. The tools that shape our digital world will no longer be confined behind proprietary walls. Instead, they will be shaped by the people who use them, in full view of the community that needs them.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Why Now?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Since Daytona's inception, our primary goal has been to address the challenges that enterprises encounter with their development environments. We have concentrated our efforts on enhancing code security, scaling and orchestrating environments efficiently, and streamlining the experience for developers when initiating development environments. We take pride in the significant progress we have made in these areas.&lt;/p&gt;

&lt;p&gt;We recently began to wonder why this experience isn't shared by every developer across the globe. It's already 2024, yet setting up development environments still requires an average of at least 30 minutes and involves numerous steps. More often than not, developers encounter issues that impede their progress. We've discussed this in detail in a full article, which you can &lt;a href="https://dev.to/daytona/diy-guide-to-transform-any-machine-into-a-codespace-2a4g"&gt;read here&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Our team quickly got to work. They skillfully extracted the core of Daytona, the &lt;a href="https://www.daytona.io/definitions/d/development-environment-management-dem" rel="noopener noreferrer"&gt;development environment manager&lt;/a&gt;, and transformed it into a standalone binary that is now freely accessible for anyone to use.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz6bvqxcegnzhuajxqpru.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz6bvqxcegnzhuajxqpru.png" width="800" height="486"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;But, What Does It Do?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Daytona is a radically simple open-source development environment manager. With Daytona, you need only to execute a single command &lt;em&gt;&lt;code&gt;daytona create.&lt;/code&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Daytona automates the entire process: provisioning the instance, interpreting and applying the configuration, setting up prebuilds, establishing a secure VPN connection, securely connecting your local or a Web IDE, and assigning a fully qualified domain name to the development environment for easy sharing and collaboration.&lt;/p&gt;

&lt;p&gt;While this is the alpha release, it represents the first step towards realizing our vision of a completely automated development environment.&lt;/p&gt;

&lt;p&gt;As a developer, you can immediately start focusing on what matters most—your code.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Can I Do With It?
&lt;/h2&gt;

&lt;p&gt;Daytona can be downloaded and executed as a binary and you can just use it in your everyday life. Daytona is extendable by design, allowing you to create plugins that meet your specific needs. Moreover, it is genuinely open source under the Apache 2.0 license, providing you with unlimited freedom to modify and use Daytona as you see fit.&lt;/p&gt;

&lt;h2&gt;
  
  
  Promise of Open Source Project Sustainability
&lt;/h2&gt;

&lt;p&gt;Daytona, the company, already generates revenue with an expanded product lineup that addresses orchestration, scalability, and security needs, catering to large enterprises while also focusing on enhancing the developers' experience.&lt;/p&gt;

&lt;p&gt;Additionally, as previously noted, since Daytona is licensed under Apache 2.0, the community has the safeguard to create a fork should the project veer off course.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Join the Open Source Movement&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;We believe in a world where every developer can access the best tools, regardless of background or resources. By going open source, we're committing to that world. Whether you're an individual coder, part of a small startup, or leading a large enterprise team, &lt;strong&gt;Daytona is now your tool to shape as you see fit.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We invite you to join us on this journey. Contribute to the codebase, share your ideas, and help us build a tool that reflects the diverse needs of the global developer community.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;strong&gt;Ready to Dive In?&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Visit our GitHub repository (&lt;a href="https://github.com/daytonaio/daytona" rel="noopener noreferrer"&gt;https://github.com/daytonaio/daytona&lt;/a&gt;) to &lt;a href="https://github.com/daytonaio/daytona" rel="noopener noreferrer"&gt;&lt;strong&gt;start contributing today&lt;/strong&gt;&lt;/a&gt;, sign up for our newsletter updates, and follow our voyage on social media.&lt;/p&gt;

&lt;p&gt;The open source waters are warm, and the winds of change are favorable. Here's to the open source. Here's to Daytona—by developers, for developers.&lt;/p&gt;

</description>
      <category>opensource</category>
    </item>
    <item>
      <title>DIY Guide to Transform Any Machine into a Codespace</title>
      <dc:creator>Nikola Balic</dc:creator>
      <pubDate>Mon, 26 Feb 2024 00:00:00 +0000</pubDate>
      <link>https://dev.to/daytona/diy-guide-to-transform-any-machine-into-a-codespace-2a4g</link>
      <guid>https://dev.to/daytona/diy-guide-to-transform-any-machine-into-a-codespace-2a4g</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg8gr0v3nyfm4pildqf5p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg8gr0v3nyfm4pildqf5p.png" alt="DIY Guide to Transform Any Machine into a Codespace" width="750" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Setting up any Dev Environment is usually painful, but the pain instantly doubles when you have to set it up on a remote machine. But why should you work on a remote machine?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;There are many reasons:&lt;/strong&gt; the size of the machine (for complex builds, dependencies, data locality, or running large ML/AI models), security, your employer needs the code in their data center, you're on the go with your iPad or Chromebook, or you're just tinkering with a Raspberry Pi.&lt;/p&gt;

&lt;p&gt;No matter your reason, we wanted to make an easy step-by-step guide to let you set up a standardized, collaborative, and secure dev environment – essentially giving you a Codespaces-like experience on any machine.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F282cd9xi8k1kcdwd9c2e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F282cd9xi8k1kcdwd9c2e.png" width="750" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Setting up a &lt;a href="https://www.daytona.io/definitions/r/remote-development-environment" rel="noopener noreferrer"&gt;remote development environment&lt;/a&gt; can streamline your workflow and enhance collaboration. Instead of relying on a proprietary service like &lt;a href="https://www.daytona.io/definitions/c/codespaces" rel="noopener noreferrer"&gt;Codespaces&lt;/a&gt;, this guide will walk you through the process of creating your own custom remote dev environment on a Linux server.&lt;/p&gt;

&lt;p&gt;There are many ways to go about it, but for this guide, we will assume you will use Visual Studio Code and leverage &lt;a href="https://www.daytona.io/definitions/d/docker" rel="noopener noreferrer"&gt;Docker&lt;/a&gt; &lt;a href="https://www.daytona.io/definitions/c/containerization" rel="noopener noreferrer"&gt;containers&lt;/a&gt; to isolate dependencies and services &lt;a href="https://www.daytona.io/definitions/c/containerization" rel="noopener noreferrer"&gt;needed&lt;/a&gt; for development.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0830de1286bcqqogg17f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0830de1286bcqqogg17f.png" width="717" height="348"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Prerequisites
&lt;/h2&gt;

&lt;p&gt;To follow this guide and set up your own remote dev environment, you will need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A Linux server running Ubuntu 20.04+ with at least 2 GB of RAM and 2 CPU cores. This can be a virtual private server (VPS) from a cloud provider or maybe even a Raspberry Pi.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Admin/root access to the server to install software.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;We will assume your local machine runs a MacOS or Linux variant (maybe even a WSL), if you are using Windows be sure to adapt some commands but everything should work as advertised.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;A Visual Studio Code on your local machine.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Basic knowledge of command line interfaces and experience with Docker is helpful.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Some courage.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 1a - Provision Linux Server
&lt;/h2&gt;

&lt;p&gt;First, you'll need to provision a Linux server that will host your remote development environment.&lt;/p&gt;

&lt;p&gt;While you can repurpose an existing server, starting fresh helps avoid conflicts. Provision an &lt;strong&gt;Ubuntu 20.04&lt;/strong&gt; server with &lt;strong&gt;at least 2 GB RAM and 2 CPU cores&lt;/strong&gt; from your preferred hosting provider.&lt;/p&gt;

&lt;p&gt;Many cloud providers like AWS, GCP, Azure, and DigitalOcean allow instant provisioning of Ubuntu VPS instances at reasonable prices. Some of them even provide a complimentary initial credit; for instance, Digital Ocean offers credit for the first 60 days.&lt;/p&gt;

&lt;p&gt;For example, Oracle offers a free-tier cloud account that allows you to utilize 4 cores ARM machine and up to 24GB of memory. Just prepare to be patient, as registering and setting up your account will require some effort.&lt;/p&gt;

&lt;p&gt;A Raspberry Pi also works well if you want to save costs and don't need significant compute resources. Install the latest Raspberry Pi OS (formerly Raspbian) on compatible Pi hardware. To be honest, we haven't attempted it, but if you decide to try it, please let us know.&lt;/p&gt;

&lt;p&gt;Once your Linux server is up and running, SSH into it to begin setup.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1b - Generate SSH Keys (optional)
&lt;/h2&gt;

&lt;p&gt;If you haven't already configured your &lt;a href="https://www.daytona.io/definitions/s/ssh" rel="noopener noreferrer"&gt;SSH&lt;/a&gt; keys, we'll need to create them to establish a secure connection to the remote server.&lt;/p&gt;

&lt;p&gt;Based on the remote server you're using, you'll need to prepare your &lt;a href="https://www.daytona.io/definitions/s/ssh-keys" rel="noopener noreferrer"&gt;SSH keys&lt;/a&gt; for the provisioning process so that you can input them into the dashboard of your preferred cloud provider. Alternatively, you can initially configure your server using a password and then add the SSH keys by following the instructions in the second section below.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;### On your local machine:

# Open a terminal and generate a keypair:
ssh-keygen -t rsa

# Save the private and public keys in the default location.

# Copy the public key:
cat ~/.ssh/id_rsa.pub

### On the remote server:

# Log in and create an .ssh folder:
mkdir .ssh

# Create an authorized_keys file and paste your public key:
nano .ssh/authorized_keys

# Set permissions:
chmod 700 .ssh
chmod 600 .ssh/authorized_keys
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Now, you can SSH into the server without a password using the private key.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ssh user@your-server-ip
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzx40tovnsdz2z8b6peqv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzx40tovnsdz2z8b6peqv.png" width="500" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2 - Install Docker
&lt;/h2&gt;

&lt;p&gt;Since we will leverage Docker to isolate and run services needed for development, Docker Engine is essential. Follow the official &lt;a href="https://docs.docker.com/engine/install/ubuntu/" rel="noopener noreferrer"&gt;Docker install directions for Ubuntu&lt;/a&gt; to get up and running.&lt;/p&gt;

&lt;p&gt;With SSH set up, let's install Docker on the remote server:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Update package lists
sudo apt update 

# Install Docker prerequisites
sudo apt install apt-transport-https ca-certificates curl software-properties-common

# Add Docker's GPG key 
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# Set up the Docker apt repository
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu focal stable" | sudo tee /etc/apt/sources.list.d/docker.list &amp;gt; /dev/null

# Install Docker
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Check it worked:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker --version
docker run hello-world
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This should successfully download a test container image and print a confirmation message. If the last command encounters a permission error, attempt to run it again using &lt;code&gt;sudo&lt;/code&gt; before the command.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmk5sn8l84tdcj1u91cki.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmk5sn8l84tdcj1u91cki.png" width="800" height="486"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While optional, &lt;a href="https://www.daytona.io/definitions/d/docker-compose" rel="noopener noreferrer"&gt;Docker Compose&lt;/a&gt; makes working with multi-container apps much easier. We'll use it later to orchestrate our dev environment services.&lt;/p&gt;

&lt;p&gt;First things first, ensure Docker Compose is properly installed by confirming the version number.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker compose version
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If that is not the case, &lt;a href="https://docs.docker.com/compose/install/linux/#install-using-the-repository" rel="noopener noreferrer"&gt;install Docker Compose&lt;/a&gt; it with the following commands.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo apt-get update
sudo apt-get install docker-compose-plugin
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Add your user to the &lt;code&gt;docker&lt;/code&gt; group by using a terminal to run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;sudo usermod -aG docker $USER
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Please log out and then log back in to ensure that the changes to the settings are applied.&lt;/p&gt;

&lt;p&gt;Adding your username to the Docker group in a Linux system is a common practice to allow non-root users to run Docker commands without needing to use &lt;code&gt;sudo&lt;/code&gt; each time. By default, Docker requires elevated privileges, and running Docker commands as a regular user without proper permissions would result in permission-denied errors.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3 - Connect Visual Studio Code to Remote Environment
&lt;/h2&gt;

&lt;p&gt;To allow connecting to your remote dev environment from Visual Studio Code, we need to install &lt;a href="https://code.visualstudio.com/docs/remote/remote-overview" rel="noopener noreferrer"&gt;VS Code Server&lt;/a&gt;. The Visual Studio Code Server is a service designed to operate on a remote development environment, such as your cloud virtual machine (VM). This will run on the remote host and communicate with the VS Code client on our local machine.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg3bzjec140j6qvexbeoe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg3bzjec140j6qvexbeoe.png" width="800" height="257"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Back on our local machine, launch VS Code and install the &lt;a href="https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.remote-ssh" rel="noopener noreferrer"&gt;Remote - SSH extension&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Use the Command Palette (Ctrl/Cmd+Shift+P or F1) in VS Code to run &lt;strong&gt;Remote-SSH: Connect to Host...&lt;/strong&gt; and enter your server info &lt;code&gt;user@your-server-ip&lt;/code&gt; from the last step.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs97d7cezxvyz8wnjo80m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fs97d7cezxvyz8wnjo80m.png" width="800" height="557"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once connected, VS Code will automatically install the VS Code Server on your remote machine.&lt;/p&gt;

&lt;p&gt;You now have full VS Code functionality on the remote server, you can open folders and work directly on the remote server!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1szrw7b7j0uozdau3erz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1szrw7b7j0uozdau3erz.png" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4 - Clone Sample Project
&lt;/h2&gt;

&lt;p&gt;With our base environment setup, let's clone &lt;a href="https://www.daytona.io/definitions/r/repository" rel="noopener noreferrer"&gt;the repository&lt;/a&gt; of a sample web project to use for development.&lt;/p&gt;

&lt;p&gt;Feel free to use your own project repository here if you already have code to work on. For our example, we will use &lt;a href="https://github.com/withastro/astro" rel="noopener noreferrer"&gt;the Astro web framework&lt;/a&gt; &lt;a href="https://www.daytona.io/definitions/g/git" rel="noopener noreferrer"&gt;git repository&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;You can use the file explorer button and option to &lt;strong&gt;"Clone Repository"&lt;/strong&gt; :&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4tutw30mtm9btqnlhxq3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4tutw30mtm9btqnlhxq3.png" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You will be prompted: &lt;strong&gt;"Cloning a repository in a Dev Container may execute arbitrary code."&lt;/strong&gt; to confirm.&lt;/p&gt;

&lt;p&gt;Or you could use the VS Code terminal and execute the commands directly.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Git clone the project 
git clone https://github.com/my-user/my-project.git  
# Change directory 
cd my-project
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Open the project folder by clicking on the pop-up alert or using &lt;strong&gt;File &amp;gt; Open Folder&lt;/strong&gt; and select the folder you cloned previously.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhvhigl5z9zpiz6axjsyr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhvhigl5z9zpiz6axjsyr.png" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For the Astro repository, you will be offered to install a set of helpful extensions for your Visual Studio Code, such as language support for Astro, the Prettier code formatter, EditorConfig, and ESLint.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu5uf6y0am398qmehpszy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu5uf6y0am398qmehpszy.png" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5 - Standardizing Your Development Environment with Dev Container
&lt;/h2&gt;

&lt;p&gt;The Astro repository contains multiple &lt;a href="https://www.daytona.io/definitions/d/development-container" rel="noopener noreferrer"&gt;devcontainer.json&lt;/a&gt; files, enabling you to set up and run a &lt;a href="https://www.daytona.io/definitions/s/standardized-development-environment-sde" rel="noopener noreferrer"&gt;standardized development environment&lt;/a&gt; tailored to your needs. Whether you're contributing to the Astro project, contributing to documentation, or working within a particular framework like &lt;a href="https://www.daytona.io/definitions/r/react" rel="noopener noreferrer"&gt;React&lt;/a&gt;, these configurations facilitate a &lt;a href="https://www.daytona.io/definitions/d/developer-experience-devex" rel="noopener noreferrer"&gt;seamless development experience&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Understanding and Harnessing Dev Containers
&lt;/h3&gt;

&lt;p&gt;Development &lt;a href="https://containers.dev/" rel="noopener noreferrer"&gt;Containers&lt;/a&gt; is an open standard designed by Microsoft to enhance containers with content and settings tailored specifically for development purposes.&lt;/p&gt;

&lt;p&gt;Dev Containers are defined using &lt;code&gt;devcontainer.json&lt;/code&gt; files, which specify the environment's settings, extensions, and Docker configurations necessary for development. This approach ensures that all developers working on a project have a consistent set of tools and runtime environments, minimizing the "works on my machine" problem.&lt;/p&gt;

&lt;p&gt;Dev Containers will ensure a seamless development experience across different machines, similar to what one might expect from using a platform like Codespaces, but with the flexibility and control of a custom setup. This setup is particularly beneficial for collaborative projects or when working in diverse environments, as it abstracts the underlying system configurations and focuses on providing a unified development experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Dev Container Basic Example from Astro
&lt;/h3&gt;

&lt;p&gt;The following JSON snippet is an example of an &lt;a href="https://github.com/withastro/astro/blob/main/.devcontainer/basics/devcontainer.json" rel="noopener noreferrer"&gt;Astro Basics&lt;/a&gt; &lt;code&gt;devcontainer.json&lt;/code&gt; configuration.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "name": "Basics",
  "build": {
    "dockerfile": "../examples.Dockerfile"
  },

  "workspaceFolder": "/workspaces/astro/examples/basics",

  "portsAttributes": {
    "4321": {
      "label": "Application",
      "onAutoForward": "openPreview"
    }
  },

  "forwardPorts": [4321],

  "postCreateCommand": "pnpm install &amp;amp;&amp;amp; cd /workspaces/astro &amp;amp;&amp;amp; pnpm run build",

  "waitFor": "postCreateCommand",

  "postAttachCommand": {
    "Server": "pnpm start --host"
  },

  "customizations": {
    "codespaces": {
      "openFiles": ["src/pages/index.astro"]
    },
    "vscode": {
      "extensions": ["astro-build.astro-vscode", "esbenp.prettier-vscode"]
    }
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let's break down its components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;build&lt;/code&gt;: Here, &lt;code&gt;"dockerfile": "../examples.Dockerfile"&lt;/code&gt; points to a Dockerfile relative to the location of the &lt;code&gt;devcontainer.json&lt;/code&gt; file. This Dockerfile contains instructions for building the Docker image that the development environment will use.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;portsAttributes&lt;/code&gt;: Defines attributes for ports used by the container. The configuration for port &lt;code&gt;4321&lt;/code&gt; includes the label "Application" and specifies that when this port is auto-forwarded, a preview should be opened automatically (&lt;code&gt;"onAutoForward": "openPreview"&lt;/code&gt;).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;forwardPorts&lt;/code&gt;: Lists the ports that should be forwarded from the container to the host machine, allowing access to services running inside the container.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;postCreateCommand&lt;/code&gt;: Specifies a command to run after the container is created but before a user connects. Here, it installs project dependencies using &lt;code&gt;pnpm install&lt;/code&gt;, then builds the project with &lt;code&gt;pnpm run build&lt;/code&gt;, ensuring the environment is ready for development.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;postAttachCommand&lt;/code&gt;: Defines commands to run after a user attaches to the container. This example specifies that the &lt;code&gt;Server&lt;/code&gt; should start using &lt;code&gt;pnpm start --host&lt;/code&gt;, preparing the Astro development server for use.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;customizations&lt;/code&gt;: Contains environment-specific customizations. Under &lt;code&gt;codespaces&lt;/code&gt;, it automatically opens the file &lt;code&gt;src/pages/index.astro&lt;/code&gt; upon starting, which is useful for getting straight to editing the main page. The &lt;code&gt;vscode&lt;/code&gt; section lists recommended extensions (&lt;code&gt;astro-build.astro-vscode&lt;/code&gt; for Astro support and &lt;code&gt;esbenp.prettier-vscode&lt;/code&gt; for code formatting with Prettier) to enhance the development experience within VS Code.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each part of this configuration ensures that the development environment is tailored to the project's needs, from the Docker build process to the setup and ready state of the development server, including the developer's workspace setup in Visual Studio Code.&lt;/p&gt;

&lt;h3&gt;
  
  
  Open Project in Dev Container
&lt;/h3&gt;

&lt;p&gt;To open your project folder in a dev container:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Open the command palette again.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select &lt;strong&gt;"Remote-Containers: Open Folder in Container..."&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Choose your project folder.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7hbvz5pb817b2q2f2izv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7hbvz5pb817b2q2f2izv.png" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;VS Code will start the dev container, install extensions, and connect automatically.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpdihb70fu4q3up1097z1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpdihb70fu4q3up1097z1.png" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The setup time for your development environment will vary based on the configuration specified in your devcontainer.json file, so anticipate a short wait. While prebuilds can often mitigate this delay, that is a subject better suited for a separate discussion.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fslv9ok8b6tcx7db8i7w6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fslv9ok8b6tcx7db8i7w6.png" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You now have a fully featured, standardized remote development environment accessible through VS Code on your local machine!&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 6: Run Preview Dev Server
&lt;/h2&gt;

&lt;p&gt;In VS Code, once the container is ready, and if the dev container of your choice didn't run the server, open a new terminal within VS Code and start your application.&lt;/p&gt;

&lt;p&gt;You can execute a command to start the preview if your project is web-based. In the case of our Astro project, the command is as follows. However, your specific command may vary.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pnpm run dev
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjxx8rapm8vojtkap6krv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjxx8rapm8vojtkap6krv.png" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 7 - Securely Share and Expose Your Projects on the Internet Behind a Domain
&lt;/h2&gt;

&lt;p&gt;To share your environment or collaborate with others, we can expose services securely over the internet. There are reverse proxy services that allow this to function without a public IP and even behind a firewall. For instance, in our example, we are using &lt;a href="https://ngrok.com/" rel="noopener noreferrer"&gt;ngrok&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;First, retrieve your ngrok authentication token from the &lt;a href="https://dashboard.ngrok.com/get-started/your-authtoken" rel="noopener noreferrer"&gt;ngrok dashboard&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp8r55vhhza466axrvhnz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp8r55vhhza466axrvhnz.png" width="800" height="317"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ngrok.com/docs/getting-started/" rel="noopener noreferrer"&gt;Install Ngrok&lt;/a&gt; from their site, and authenticate it with your account auth token:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;# Download and extract Ngrok  
curl -s https://ngrok-agent.s3.amazonaws.com/ngrok.asc | \
  sudo tee /etc/apt/trusted.gpg.d/ngrok.asc &amp;gt;/dev/null &amp;amp;&amp;amp; \
  echo "deb https://ngrok-agent.s3.amazonaws.com buster main" | \
  sudo tee /etc/apt/sources.list.d/ngrok.list &amp;amp;&amp;amp; \
  sudo apt update &amp;amp;&amp;amp; sudo apt install ngrok

# Add authtoken 
ngrok config add-authtoken &amp;lt;TOKEN&amp;gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To give internet access to our app container from earlier at port 4321, run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ngrok http 4321
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Copy the ngrok tunnel URL provided in the output.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frayrur1b4f8pkat6vggz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frayrur1b4f8pkat6vggz.png" width="749" height="295"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Your application should now be running and accessible via the Ngrok tunnel URL.&lt;/p&gt;

&lt;p&gt;Paste the Ngrok tunnel URL into your browser to access your application. If you encounter a connection refused error, ensure that the necessary port is open on your server's firewall.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fivf3aced9ll79lrs6svb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fivf3aced9ll79lrs6svb.png" width="800" height="453"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To maintain a consistent URL for each ngrok session, set up a static domain via your dashboard. Once you've created it, you can instruct the ngrok agent to utilize this domain using the --domain flag. Begin by halting the current ngrok process with Ctrl+C, and then restart ngrok to apply the changes.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ngrok http 4321 --domain jumpy-red-mollusk.ngrok-free.app
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you prefer to limit access to your application, you can easily implement authentication with ngrok without modifying your app. For instance, if you use the Google account &lt;a href="mailto:alan@example.com"&gt;alan@example.com&lt;/a&gt;, you can restrict access to yourself alone by executing ngrok with the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ngrok http 4321 --oauth=google --oauth-allow-email=alan@example.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When someone attempts to use your app, they must sign in using Google, and access will be exclusively permitted to your account. Please be aware that each time you restart ngrok without using the --domain flag, your app's URL will change.&lt;/p&gt;

&lt;p&gt;If you wish to go a step further, ngrok also enables the &lt;a href="https://ngrok.com/docs/guides/how-to-set-up-a-custom-domain/" rel="noopener noreferrer"&gt;use of your own custom domain&lt;/a&gt;. By leveraging CNAME records, ngrok hosts an endpoint on your custom domain and offers comprehensive management of the TLS certificate lifecycle on your behalf.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 8 - Code on the Go with a Web IDE on Any Device (optional)
&lt;/h2&gt;

&lt;p&gt;After setting up your application and ensuring it's accessible via Ngrok, you might want to take advantage of the &lt;a href="https://www.daytona.io/definitions/o/openvscode-server" rel="noopener noreferrer"&gt;OpenVSCode Server&lt;/a&gt;, an open-source project licensed under MIT and maintained by Gitpod, for a full &lt;a href="https://www.daytona.io/definitions/c/cloud-ide" rel="noopener noreferrer"&gt;web IDE&lt;/a&gt; experience, which allows you to run a web version of VS Code on your server and access it through your web browser.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1xjr6t84wrbzyqfxv5kk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1xjr6t84wrbzyqfxv5kk.png" width="752" height="499"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here's how to set it up and run it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Start the OpenVSCode Server&lt;/strong&gt; : Within your remote server, &lt;a href="https://github.com/gitpod-io/openvscode-server" rel="noopener noreferrer"&gt;install the OpenVSCode Server&lt;/a&gt; by running the following Docker command.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run -it --init -p 3000:3000 -v "$(pwd):/home/workspace:cached" gitpod/openvscode-server
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Configure Inbound Port Rules&lt;/strong&gt; : To access the OpenVSCode Server, you need to configure the network settings to allow traffic on the port it's running on. If you're using a service like Azure, navigate to the network settings and set an inbound port rule to allow TCP traffic on port 3000. Ensure that you review the firewall configurations on your server, utilizing tools such as ufw or iptables.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Test the Connection&lt;/strong&gt; : Once the port is open, try accessing &lt;code&gt;http://remote_server_ip:3000&lt;/code&gt; in your web browser. Replace &lt;code&gt;remote_server_ip&lt;/code&gt; with your server's actual IP address. If you encounter a security warning about the connection not being private (which may happen in some browsers like Chrome), try using a different browser like Safari that may not present this issue. Please note that configuring HTTPS falls outside the scope of this guide.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Access web IDE VS Code&lt;/strong&gt; : If everything is configured correctly, you should see the OpenVSCode Server interface in your browser. You can now access your project straight from the Docker image without additional configuration.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now, you'll have a powerful, browser-based web IDE to access from anywhere, making your development process even more flexible and accessible.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Congratulations! You've successfully set up your own fully-featured remote development environment without being locked into a proprietary platform!&lt;/p&gt;

&lt;p&gt;You can now develop directly inside a container, ensuring a consistent development stack isolated from your local environment. With Ngrok, you have also secured your development environment with a tunnel to be shared with your team for collaboration.&lt;/p&gt;

&lt;h3&gt;
  
  
  Key aspects included:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Provisioning a Linux server to host your infrastructure&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Installing Docker Engine and Docker Compose to define environments&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Getting Visual Studio Code Server running to enable remote coding&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Using Docker containers to encapsulate infrastructure dependencies&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Adding security through SSH, HTTPS encryption, authentication&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scripting setup steps to allow automation and portability&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Exposing services securely over the internet with Ngrok&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can now develop from anywhere using this robust, self-managed environment tailored to your needs!&lt;/p&gt;

&lt;h3&gt;
  
  
  Some additional pointers:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Commit the &lt;code&gt;.devcontainer&lt;/code&gt; folder to source control to share with the team.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use Docker Compose for multi-service applications.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Install the Remote - Containers extension to use dev containers locally.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Read the docs of each tool we have used for more advanced configuration and troubleshooting.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Remember to delete any temporary accounts or services you no longer need to maintain security and avoid unnecessary charges.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let me know if you have any other questions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 9 - Can we automate this?
&lt;/h2&gt;

&lt;p&gt;This is the process you'll undergo for setting up each remote development environment you create, and it's no simple task.&lt;/p&gt;

&lt;p&gt;As an engineer, you might often find yourself thinking, "Could I automate this task with some scripts?" While the answer is yes to some extent, it's important to remember that any modifications you make will necessitate script updates. Eventually, you may find that you have to perform the task manually once more.&lt;/p&gt;

&lt;p&gt;For consistency and portability across projects, we can automate the process using provisioning scripts.&lt;/p&gt;

&lt;p&gt;First, create a setup script &lt;code&gt;setup.sh&lt;/code&gt; that executes our past commands:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#!/bin/bash

# Add Docker's official GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# Add Docker repository
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list &amp;gt; /dev/null

# Update and upgrade the system packages
sudo apt update &amp;amp;&amp;amp; sudo apt upgrade -y

# Install necessary packages for Docker installation
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y

# Install Docker Engine, CLI, and containerd
sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y

# Add current user to the Docker group to run Docker commands without sudo
sudo usermod -aG docker ${USER}

# Print Docker version to verify installation
docker --version

# Install and configure Ngrok
echo "Installing Ngrok..."
curl -s https://ngrok-agent.s3.amazonaws.com/ngrok.asc | \
  sudo tee /etc/apt/trusted.gpg.d/ngrok.asc &amp;gt;/dev/null &amp;amp;&amp;amp; \
  echo "deb https://ngrok-agent.s3.amazonaws.com buster main" | \
  sudo tee /etc/apt/sources.list.d/ngrok.list &amp;amp;&amp;amp; \
  sudo apt update &amp;amp;&amp;amp; sudo apt install ngrok

echo "Please enter your Ngrok auth token (You can find it on your Ngrok dashboard):"
read NGROK_AUTH_TOKEN
ngrok config add-authtoken $NGROK_AUTH_TOKEN
echo "Ngrok installed and configured."

# Install OpenVSCode Server using Docker
echo "Installing OpenVSCode Server..."
docker run -d --init -p 3000:3000 -v "/workspace:/home/workspace:cached" gitpod/openvscode-server
echo "OpenVSCode Server is running on port 3000. Access it at http://your_server_ip:3000"

# VS Code Server installation instructions
echo "To connect Visual Studio Code to this remote environment:"
echo "1. Install the Remote - SSH extension in VS Code on your local machine."
echo "2. Use the Command Palette in VS Code to run 'Remote-SSH: Connect to Host...' and enter this server's SSH credentials."

echo "Setup complete. Please log out and back in for group changes to take effect."
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run the script:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Copy the script above into a file named &lt;code&gt;setup.sh&lt;/code&gt; on the server.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Make the script executable with &lt;code&gt;chmod +x setup.sh&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Execute the script with &lt;code&gt;./setup.sh&lt;/code&gt;.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Consider wrapping them into a simple CLI tool to simplify further.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Frankly, the situation is quite chaotic. The script is horrible and unlikely to function effectively because it requires customization to fit the particular system in question. Moreover, it doesn't address the routine tasks and interactions with repositories, workspaces, and the public preview, among other elements.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Perhaps there's a better way.&lt;/p&gt;

&lt;h2&gt;
  
  
  Follow Daytona on GitHub
&lt;/h2&gt;

&lt;p&gt;Stay tuned for the imminent launch of &lt;a href="https://github.com/daytonaio" rel="noopener noreferrer"&gt;Daytona on GitHub&lt;/a&gt;, our open-source project designed to automate development environment management. The aim to save developers and their teams substantial time by seamlessly standardizing dev environments across any machine, solving this challenge once and for all.&lt;/p&gt;

&lt;p&gt;Join us in our mission to transform and accelerate the development process.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F09se4n687dffse57dab5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F09se4n687dffse57dab5.png" width="500" height="701"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>codespaces</category>
      <category>howto</category>
      <category>diy</category>
      <category>guide</category>
    </item>
    <item>
      <title>Redefining Success in the Engineering Organization</title>
      <dc:creator>Nikola Balic</dc:creator>
      <pubDate>Fri, 16 Feb 2024 00:00:00 +0000</pubDate>
      <link>https://dev.to/daytona/redefining-success-in-the-engineering-organization-3e4b</link>
      <guid>https://dev.to/daytona/redefining-success-in-the-engineering-organization-3e4b</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0rrgax5uawifg4v1ra88.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0rrgax5uawifg4v1ra88.png" alt=" " width="800" height="402"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Over the past decade, the image of the lone “rockstar” coder has become pervasive in engineering culture. The rockstar represents the pinnacle of achievement – a virtuoso developer capable of single-handedly architecting complex systems and cranking out flawless code at superhuman speeds. This archetype holds powerful sway in the minds of many engineers, shaping identities and perceptions of success.&lt;/p&gt;

&lt;p&gt;But as tech leaders, we must look honestly at the implications of idolizing this myth:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;What behaviors and mindsets does it promote or suppress?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;How might it impact diversity, collaboration, and sustainability in our organizations?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Are we setting realistic expectations or inadvertently fostering burnout and imposter syndrome?&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At Daytona, we’ve worked to redefine engineering success by creating an environment optimized for developer empowerment. Through this experience, I believe sustainable high performance requires abandoning the rockstar model for a more nuanced definition – one rooted in collaboration, continuous learning, and resilience.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Collaboration, rather than solitary effort, is frequently the source of genuine innovation.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  The Allure and Risks of the Rockstar Engineer
&lt;/h1&gt;

&lt;p&gt;The trope of the rockstar coder has been glamorized in media, perpetuated through industry hype, and stubbornly persists in engineering culture. Qualities typically associated with this image include raw technical brilliance, an anti-social streak, extremely long hours in intense solitary focus, and often shunning documentation or “boring” tasks.&lt;/p&gt;

&lt;p&gt;This archetype holds undeniable allure – the software magnate crafting ingenious code in a feverish haze of Red Bull and brilliance. Their heroic efforts seem to singlehandedly save the day. It’s a narrative that fuels many engineers' aspirations and egos.&lt;/p&gt;

&lt;p&gt;But this myth also carries significant downsides at both individual and organizational levels. Internalizing it can fuel anxiety and burnout as developers stretch themselves thin trying to live up to unrealistic expectations. It encourages siloed work and discourages collaboration or mentoring. It often dismisses the less glamorous but crucial work of documenting systems, reviewing code, or interviewing users. The rockstar attitude also tends to disdain entry-level tasks beneath their abilities – depriving newcomers of mentoring and growth opportunities.&lt;/p&gt;

&lt;p&gt;This mindset rewards raw individual performance over sustainability, diversity, or team success. It inhibits the cross-pollination of skills and institutional knowledge sharing vital for organizational resiliency. Ultimately, the lone rockstar represents a high-risk, low-scalability model. Their abilities become single points of failure and bottlenecks as systems grow more complex.&lt;/p&gt;

&lt;p&gt;So, how can leaders reshape engineering culture to move past this limiting myth?&lt;/p&gt;

&lt;h1&gt;
  
  
  Redefining Success as a Team Sport
&lt;/h1&gt;

&lt;p&gt;Transitioning from the rockstar model requires reorienting from individual heroics toward collaborative team success.&lt;/p&gt;

&lt;p&gt;This starts with the reconceptualization of projects as complex, multifaceted endeavors that draw on diverse skill sets. A healthy engineering culture values specialists ranging from user researchers to security auditors and generalist coders. It recognizes documentation, QA processes, and &lt;a href="https://www.daytona.io/definitions/d/devops" rel="noopener noreferrer"&gt;DevOps&lt;/a&gt; as integral to delivering robust, scalable systems.&lt;/p&gt;

&lt;p&gt;With this breadth of contributors, stellar outcomes become team achievements earned through coordination. We must assess performance based on aligned cross-functional metrics versus raw individual output. Shared ownership and collective responsibility should be instilled at all levels.&lt;/p&gt;

&lt;p&gt;Incentive structures also require rethinking. Rewarding &lt;a href="https://dev.to/nkko/beyond-metrics-unlocking-true-developer-potential-35po-temp-slug-391246"&gt;individual metrics&lt;/a&gt; like lines of code can incentivize destructive practices like copy-pasted code or cruft accumulation. Consider incentives for cross-training, mentorship, documenting systems, or volunteering for unglamorous tasks that advance the project. Make collaboration and knowledge sharing part of performance reviews.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;We tend to underestimate the value of simplicity in solutions, mistakenly equating complexity with superiority.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Platforms like Daytona enable the transition toward team success by removing tedious configuration and maintenance tasks. &lt;a href="https://dev.to/nkko/the-power-of-automation-in-software-development-53ca-temp-slug-835914"&gt;Automating&lt;/a&gt; these distractions immerses developers in collaboration and core engineering work. Streamlined coordination frees attention toward higher-order team dynamics that enable breakthrough innovations.&lt;/p&gt;

&lt;h1&gt;
  
  
  Embracing Continuous Learning and Growth
&lt;/h1&gt;

&lt;p&gt;Sustainable excellence requires continuous skills development, not just innate genius. The myth of the 10x rockstar coder rests on the idea of innate brilliance – that mastery stems from raw talent rather than practice. But engineering evolves rapidly – today’s hot skill fades into obsolescence within a few years. The lone coding cowboys of yore stranded themselves on soon-outdated islands of expertise.&lt;/p&gt;

&lt;p&gt;Organizations seeking sustained excellence foster a culture of continuous learning and growth. With support for conferences, online courses, and skill-stretching assignments, veteran engineers avoid becoming dinosaurs. Regular retention-focused training and mentorship opportunities are crucial for upskilling staff and transferring institutional knowledge.&lt;/p&gt;

&lt;p&gt;Rotational programs allowing developers to shift across focus areas prevent siloed knowledge and cultivate empathy between teams. Hackathons, open-source Fridays, and casual skill shares encourage enriching side projects and serendipitous discoveries.&lt;/p&gt;

&lt;p&gt;Daytona’s automated dev environment provisioning helps enable continuous learning. Spinning up &lt;a href="https://www.daytona.io/definitions/d/disposable-environments" rel="noopener noreferrer"&gt;sandboxed environments&lt;/a&gt; for experimentation allows risk-free tinkering. Quick reproducibility makes replicating and debugging learning scenarios faster. Built-in &lt;a href="https://dev.to/nkko/10-tips-how-to-boost-collaboration-as-a-developer-424k-temp-slug-6679546"&gt;collaboration capabilities&lt;/a&gt; support interactive training across locations.&lt;/p&gt;

&lt;h1&gt;
  
  
  Rewarding Resilience and Grit
&lt;/h1&gt;

&lt;p&gt;Sustainable excellence requires resilience and grit. The rockstars’ apparent one-shot success hides their dependence on fickle inspiration. But true engineering prowess reveals itself when persevering through protracted debug cycles, integrating complex legacy systems, or grinding through regulations.&lt;/p&gt;

&lt;p&gt;Resilience emerges as a theme across many high-performing teams. MIT research found the highest-achieving software teams were often internally mediocre at cooperation or technical skills. Their advantage lies in sheer grit to push through challenges. Members leaned on and learned from each other during demoralizing setbacks.&lt;/p&gt;

&lt;p&gt;Leaders should assess performance under adversity – how developers respond to tangled dependencies or tight deadlines reveals character. Reward signs of resilience include carefully considering alternative approaches, seeking help appropriately, and implementing post-mortems.&lt;/p&gt;

&lt;p&gt;Part of resilience involves minimizing needless adversity in the first place. Daytona’s development environment automation reduces frustrations from manual configuration and repetitive tasks. Its integrated tools remove &lt;a href="https://dev.to/daytona/designing-developer-workspaces-for-flow-state-2bpi-temp-slug-4758249"&gt;painful context-switching&lt;/a&gt;. The platform aims to amplify human potential by eliminating unnecessary self-imposed obstacles.&lt;/p&gt;

&lt;h1&gt;
  
  
  Final Thoughts
&lt;/h1&gt;

&lt;p&gt;Redefining engineering success requires examining assumptions and incentives permeating tech culture today. The mythic rockstar represents an antiquated archetype mismatched to the complexity of modern systems—sustainable excellence springs from collaborative teamwork, continuous learning, and resilience when facing inevitable challenges.&lt;/p&gt;

&lt;p&gt;As leaders, we shape culture through the metrics, processes, and narratives we endorse. Daytona offers a &lt;a href="https://www.daytona.io/definitions/d/development-environment-management-dem" rel="noopener noreferrer"&gt;development environments management&lt;/a&gt; platform designed to bring out the best in engineering teams beyond individual heroics. Our automated environments empower developers with the space and support structure to reach new levels of productivity and innovation.&lt;/p&gt;

&lt;p&gt;The future belongs not to the lone coding cowboys but to the empowered, cross-trained engineering teams equipped to tackle exponentially growing complexity. By redefining success beyond outdated myths, leaders can foster cultures where every contributor can creatively thrive, and organizations can sustainably excel.&lt;/p&gt;

</description>
      <category>success</category>
      <category>imposter</category>
      <category>rockstar</category>
    </item>
    <item>
      <title>Dev Container: The Path to Standard Dev Environments</title>
      <dc:creator>Chad Metcalf</dc:creator>
      <pubDate>Mon, 12 Feb 2024 00:00:00 +0000</pubDate>
      <link>https://dev.to/daytona/dev-container-the-path-to-standard-dev-environments-4d65</link>
      <guid>https://dev.to/daytona/dev-container-the-path-to-standard-dev-environments-4d65</guid>
      <description>&lt;p&gt;Startups and software companies aligning with the &lt;a href="https://containers.dev/"&gt;Development Container specification&lt;/a&gt; can significantly streamline their development processes. By aligning with established standards and leveraging existing reference implementations, such as those from Microsoft, startups can ensure compatibility and meet user expectations.&lt;/p&gt;

&lt;p&gt;The adoption of &lt;a href="https://dev.to/daytona/inside-the-dev-container-specification-1d6d"&gt;Dev Container Specification&lt;/a&gt; not only reduces the need to reinvent the wheel but also fosters a uniform experience across various platforms, benefiting both business and open-source communities.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Microsoft's reference implementations for Dev Container are not open source, except for the Dev Container CLI.&lt;/li&gt;
&lt;li&gt;There's an advantage for other startups supporting Dev Container as it encourages adherence to specifications, revealing areas where the specification may need improvement.&lt;/li&gt;
&lt;li&gt;Multiple implementations of a specification, as seen with Docker and OCI specs, are beneficial but can be challenging for users.&lt;/li&gt;
&lt;li&gt;Daytona aims to align user experiences across different platforms (VS Code, Codespaces, Daytona), benefiting both business and open source communities.&lt;/li&gt;
&lt;li&gt;This alignment will enable a standardized development environment experience, which is seen as powerful and beneficial for all users.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Evolution of Dev Container Integration
&lt;/h2&gt;

&lt;p&gt;The journey of integrating with the Dev Container specification is one of learning and adaptation. Initially setting out to create a unique solution, it became apparent that the gap between independent efforts and the established Dev Container specification was vast. This realization underscores the importance of leveraging reference implementations and adhering to industry standards to minimize duplication of effort and ensure compatibility.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Challenges of Divergence
&lt;/h2&gt;

&lt;p&gt;Creating a custom solution that deviates significantly from the Dev Container specification can lead to increased workload and a disjointed user experience. Reference implementations, particularly those from Microsoft, have set user expectations for functionality and performance. Deviating from these expectations can create unnecessary hurdles for users.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lessons Learned: Embracing Established Standards
&lt;/h2&gt;

&lt;p&gt;The experience highlights the value in closely integrating with the &lt;a href="https://github.com/devcontainers/cli"&gt;Dev Container CLI&lt;/a&gt; and other extensions. This approach not only taps into the benefits of existing, robust tools but also ensures that users have a consistent experience, whether they're working in Visual Studio Code, Codespaces, or other environments supporting Dev Container.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rising Tide: The Collective Benefit of Specification Adoption
&lt;/h2&gt;

&lt;p&gt;The broader adoption of the Dev Container specification is akin to a rising tide that lifts all boats. It encourages a shared understanding of how development environments should operate. As more implementations of the spec emerge, it can shine a light on areas that may need further refinement, drawing from lessons learned during Docker's evolution with the OCI spec and others.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Challenge for Users: Navigating Multiple Implementations
&lt;/h2&gt;

&lt;p&gt;While having multiple implementations of a specification can be beneficial, it can also pose challenges for users. They may find themselves navigating a fragmented landscape of development environments, which can impede productivity and lead to confusion.&lt;/p&gt;

&lt;h2&gt;
  
  
  Daytona's Strategic Alignment: Bridging User Experiences
&lt;/h2&gt;

&lt;p&gt;Daytona's approach to closely align with what users expect from Dev Container implementations will bridge the gap between disparate user experiences. This alignment ensures that actions performed in one environment will seamlessly translate to others, whether in VS Code, Codespaces, or Daytona.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Power of Standardization for Open Source Communities
&lt;/h2&gt;

&lt;p&gt;Open-source communities benefit significantly from standardization. With contributors using various platforms, a standard development environment facilitates collaboration and reduces friction. Daytona's commitment to &lt;a href="https://www.daytona.io/definitions/s/standardized-development-environment-sde"&gt;standardization of dev environments&lt;/a&gt; is poised to offer a consistent &lt;a href="https://www.daytona.io/definitions/d/developer-experience-devex"&gt;development experience&lt;/a&gt; for all users, regardless of their platform of choice.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion: The Significance of Alignment with Dev Container
&lt;/h2&gt;

&lt;p&gt;The lessons learned from integrating with the Dev Container specification emphasize the importance of alignment and standardization. For dev tools companies like Daytona, this alignment promises developers a &lt;a href="https://dev.to/daytona/designing-developer-workspaces-for-flow-state-2bpi-temp-slug-4758249"&gt;flow state&lt;/a&gt; and an uniform and powerful development environment experience for users across different platforms. It is through this standardization that the open-source community, as well as business users, can enjoy a cohesive and efficient workflow, reinforcing the collective strength of the software development ecosystem.&lt;/p&gt;

</description>
      <category>devcontainer</category>
      <category>devex</category>
      <category>sde</category>
      <category>dem</category>
    </item>
    <item>
      <title>The Dream Dies: Why Cloud IDEs Failed Developers</title>
      <dc:creator>Ivan Burazin</dc:creator>
      <pubDate>Fri, 09 Feb 2024 00:00:00 +0000</pubDate>
      <link>https://dev.to/daytona/the-dream-dies-why-cloud-ides-failed-developers-128o</link>
      <guid>https://dev.to/daytona/the-dream-dies-why-cloud-ides-failed-developers-128o</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F07x73nz2q3eq9y0mkv8m.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F07x73nz2q3eq9y0mkv8m.png" alt="Image description" width="800" height="402"&gt;&lt;/a&gt;&lt;br&gt;
For years, developers have been tantalized by the dream of coding entirely through their web browser—no more installing bulky programs or configuring local environments. Just open your online IDE and start programming from anywhere, on any device. Major players like Google and Amazon poured millions into making this vision a reality.&lt;/p&gt;

&lt;p&gt;But the much-hyped promise of &lt;a href="https://www.daytona.io/definitions/c/cloud-ide"&gt;cloud IDEs&lt;/a&gt; has largely failed to materialize. While they've found niche uses, developers overwhelmingly still prefer native desktop tools. As an industry veteran who built some of the &lt;a href="https://dev.to/nkko/meet-ivan-burazin-our-ceo-and-dev-empowerment-champion-52k3-temp-slug-4616268"&gt;first browser-based coding tools&lt;/a&gt; back in 2009, I've watched the cloud IDE hype cycle unfold firsthand. From my vantage point today, in 2024, I can definitively say the sun is setting on the dream of cloud-based integrated development environments.&lt;/p&gt;

&lt;p&gt;Don't get me wrong - remote development capabilities still have an important role to play. However, trying to force the entire coding experience into a web browser is a fool's errand. The cloud IDE model does not align with what most professional developers need and want in their daily workflows.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Developers Want
&lt;/h2&gt;

&lt;p&gt;To understand why cloud IDEs miss the mark, you have to consider the developer's perspective. What do coders care about most when choosing tools and environments? From my experience, three key factors rise above all else:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Speed and performance&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Customizability and flexibility&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Integration with existing tools&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Let's explore why these factors present major challenges for the browser-centric approach of cloud IDEs.&lt;/p&gt;

&lt;p&gt;First and foremost, developers cherish speed and native performance. They want fluid UI interactions and near-instantaneous feedback when editing code. Even small lags quickly become intolerable frustrations. Unfortunately, browser-based apps still cannot match the raw speed of compiled native programs.&lt;/p&gt;

&lt;p&gt;Next, developers demand deep customizability to optimize their workflows. They want to configure fonts, themes, keyboard shortcuts, and layouts. They want to install plugins and extensions that add new capabilities freely. Browser IDEs restrict them to built-in options.&lt;/p&gt;

&lt;p&gt;Finally, developers rely on tight integration with other indispensable tools like version control, debuggers, package managers, and more. They expect seamless interoperability. Again, the closed ecosystems of current cloud IDEs make this difficult.&lt;/p&gt;

&lt;h2&gt;
  
  
  Paradise Lost
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.daytona.io/definitions/c/cloud-based-development-environment-cde"&gt;Cloud Development Environment&lt;/a&gt; providers promise developers paradise - a utopian coding environment accessible anywhere through the web. But in reaching for heaven, they abandon the practical realities of what developers need to do their jobs effectively each day. By forcing everything through the browser, they create a walled garden that strips away the flexibility and power that programmers have come to depend on in their local toolchains.&lt;/p&gt;

&lt;p&gt;This false paradise comes at an unacceptable cost for professional developers building and maintaining complex applications. The lure of "one IDE to rule them all" makes for a nice headline, but utterly fails the test of real-world developer experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rebirth From Failure
&lt;/h2&gt;

&lt;p&gt;As we move beyond the limitations of cloud IDEs, it's clear that a new approach is necessary—one that builds on the lessons learned from past failures. &lt;a href="https://www.linkedin.com/posts/sevedkim_the-case-for-developer-experience-activity-7142516913573695489-H8kw/?utm_source=share&amp;amp;utm_medium=member_ios"&gt;Seve Kim's insight&lt;/a&gt; captures this transition beautifully:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Newer developer tools present a paradigm shift that solves all the existing problems current tools present. However, these new paradigms seem to be designed in a vacuum and lack a bridge from the old world. Interoperability is table stakes. We need to meet developers where they are today.&lt;/p&gt;

Seve Kim, Spotify, Backstage PM
&lt;/blockquote&gt;

&lt;p&gt;This perspective underscores the importance of not just innovating for the sake of novelty, but ensuring that new tools seamlessly integrate with existing workflows and technologies. The future lies not in discarding the old completely, but in creating a symbiotic relationship between the tried-and-true and the cutting-edge.&lt;/p&gt;

&lt;p&gt;Does this mean the vision of &lt;a href="https://www.daytona.io/definitions/r/remote-development-environment"&gt;remote development&lt;/a&gt; is dead? Not at all. The &lt;a href="https://dev.to/daytona/the-rise-of-cloud-development-environments-2hjp"&gt;CDE hype cycle&lt;/a&gt; produced important lessons that can guide smarter tools in the future. The way forward recognizes that the browser is better positioned as one piece of the environment rather than the whole.&lt;/p&gt;

&lt;p&gt;Instead of replacing all developer tools with a web-only IDE, the future lies in building desktop-native performance and flexibility augmented by cloud capabilities. Open ecosystems and community extensibility will also be critical, avoiding the walled-garden limitations of proprietary cloud IDEs. &lt;a href="https://dev.to/nkko/seamless-developer-experience-with-vs-code-and-daytona-31m3-temp-slug-7346211"&gt;VS Code combined with a DEM platform&lt;/a&gt; like Daytona, enhanced by integrations for collaboration and AI assistance, exemplifies this new direction. It's about augmenting, not replacing, the tools developers already rely on.&lt;/p&gt;

&lt;p&gt;The popularity of emerging tools like &lt;a href="https://zed.dev/"&gt;Zed&lt;/a&gt; show early promise in disbursing this cloud bubble. By focusing first on high-performance native editing, Zed's creators are charting a path beyond the cloud IDEs. Will native tools supported by platforms like Daytona finally unlock the long-awaited dream of remote development done right? We certainly believe so.&lt;/p&gt;

&lt;p&gt;The CDE hype cycle produced more smoke than fire. But from the ashes, space now exists for a rebirth guided by lessons learned. The browser will play an important assisting role, while leaving the coding experience centered firmly on the desktop.&lt;/p&gt;

&lt;p&gt;By upholding the principles developers truly care about - performance, customizability, and integration - the next generation of tools can avoid repeating mistakes. The CDE dream may have died, but developers are poised for something better today.&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>ide</category>
      <category>cde</category>
    </item>
    <item>
      <title>Embracing Open-Source Alignment</title>
      <dc:creator>Ivan Burazin</dc:creator>
      <pubDate>Tue, 23 Jan 2024 00:00:00 +0000</pubDate>
      <link>https://dev.to/daytona/embracing-open-source-alignment-e6</link>
      <guid>https://dev.to/daytona/embracing-open-source-alignment-e6</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9dq5gt296s0k7vrl4y7x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9dq5gt296s0k7vrl4y7x.png" alt="Image description" width="800" height="402"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Open-source software has long been the bedrock of innovation, offering tools and frameworks that have propelled the digital era. In a landscape marked by rapid digital transformation, aligning with open-source methodologies is not merely a forward-thinking strategy but a requisite for businesses aiming to ship quality customer experiences frequently.&lt;/p&gt;

&lt;p&gt;Guided by insights from respected experts like &lt;a href="https://twitter.com/virtualmilin"&gt;Milin Desai&lt;/a&gt;, CEO of &lt;a href="https://sentry.io/"&gt;Sentry&lt;/a&gt; and &lt;a href="https://dev.to/daytona/daytona-raises-2m-in-pre-seed-19ba"&gt;our investor&lt;/a&gt;, the path to success for modern companies lies in aligning with open-source principles.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Shift Toward Open-Source Alignment
&lt;/h2&gt;

&lt;p&gt;Open-source alignment goes beyond using and supporting open-source software; it encompasses a company-wide ethos that contributes time, resources, and innovation back to the community.&lt;/p&gt;

&lt;h3&gt;
  
  
  Customer and Enterprise Perspectives
&lt;/h3&gt;

&lt;p&gt;From the consumer's viewpoint, open-source solutions offer compelling advantages like speed, flexibility, and cost-effectiveness. Enterprises embrace open source to catalyze development, evade vendor lock-in, and diminish costs. With organizations like &lt;a href="https://techcrunch.com/2016/10/03/walmartlabs-open-sources-the-application-platform-that-powers-walmart-com"&gt;Walmart&lt;/a&gt; and &lt;a href="https://newsroom.porsche.com/en/2023/company/porsche-foss-movements-open-source-software-strategy-33413.html"&gt;Porsche&lt;/a&gt; leading the charge, the trend is gaining momentum across various sectors.&lt;/p&gt;

&lt;h3&gt;
  
  
  Software Providers Respond
&lt;/h3&gt;

&lt;p&gt;Companies are responding to this demand by integrating open-source platforms into their service offerings. This strategy allows them to extend beyond mere product provision to a more engaged, contributory role in the development community.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Case for Open-Source Sustainment
&lt;/h2&gt;

&lt;p&gt;The escalation of open-source software use underscores the industry's responsibility to support the underlying projects and contributors. This commitment grows increasingly important given the pivotal nature of open-source software in modern innovation.&lt;/p&gt;

&lt;p&gt;However, sustaining open-source projects in the face of commercial exploitation remains challenging. Companies like MongoDB and Elastic have experienced difficulties when large commercial entities use their open-source projects. MongoDB's shift to the Server Side Public License (SSPL) in response to these challenges illustrates the complexities of balancing open innovation with the need for sustainable development. This situation underscores the importance of finding equitable solutions that protect the interests of open-source creators while maintaining the spirit of open collaboration.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sentry's Advocacy
&lt;/h3&gt;

&lt;p&gt;Sentry has established an impressive support model for the open-source community by &lt;a href="https://blog.sentry.io/we-just-gave-500-000-dollars-to-open-source-maintainers/"&gt;allocating substantial funds&lt;/a&gt; for project maintenance, security enhancements, and long-term sustainability. Their funding approach includes smaller-scale sponsorships and larger contributions, showcasing a versatile strategy to nurture the open-source environment.&lt;/p&gt;

&lt;p&gt;Acknowledging the vital influence of open-source initiatives in software development, Sentry has generously funded various key projects and organizations. Among the prominent beneficiaries are &lt;a href="https://github.com/rrweb-io/rrweb"&gt;rrweb&lt;/a&gt;, receiving $15,000, which underlies Sentry's &lt;a href="https://sentry.io/for/session-replay/"&gt;Replay feature&lt;/a&gt;; the &lt;a href="https://thephp.foundation/"&gt;PHP Foundation&lt;/a&gt; and &lt;a href="https://rubycentral.org/"&gt;Ruby Foundation&lt;/a&gt;, granted $10,000 and $6,000 to support these essential programming languages; and &lt;a href="https://kit.svelte.dev/"&gt;SvelteKit&lt;/a&gt;, awarded $1,750, selected by &lt;a href="https://twitter.com/syntaxfm/status/1716498085273125131"&gt;Syntax&lt;/a&gt; for their website redesign. These donations reflect Sentry's dedication to empowering the open-source ecosystem that drives technological progress.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Industry's Collective Responsibility
&lt;/h2&gt;

&lt;p&gt;The narrative of Sentry reveals an industry at a crossroads. As reliance on open-source software intensifies, the imperative to contribute will become an industry-wide mandate.&lt;/p&gt;

&lt;h3&gt;
  
  
  Open-Source as a Norm
&lt;/h3&gt;

&lt;p&gt;For startup companies and enterprises, open-source alignment should be woven into the fabric of their business models. Beyond financial incentives, contributing to open-source projects can drive internal innovation and quality enhancement.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cultural Shift Towards Sponsorship
&lt;/h3&gt;

&lt;p&gt;The movement toward open-source sponsorship must intensify. Entities such as &lt;a href="https://fossfunders.com/"&gt;FOSS Funders&lt;/a&gt; are mobilizing companies to support this culture shift, advocating for open-source projects as an industry norm.&lt;/p&gt;

&lt;h2&gt;
  
  
  Open-Source Alignment as the Strategic Pillar
&lt;/h2&gt;

&lt;p&gt;For contemporary businesses, particularly in the tech sector, aligning with open-source principles is transitioning from an advantageous strategy to an operational imperative. Companies like Sentry exemplify this shift, showcasing the necessity and benefits of open-source alignment.&lt;/p&gt;

&lt;h3&gt;
  
  
  Daytona's Open-Source Journey
&lt;/h3&gt;

&lt;p&gt;Daytona's journey as an open-source project is just starting. We are currently focused on developing an open-source strategy that guarantees its long-term viability while reflecting our dedication to community contributions.&lt;/p&gt;

&lt;h3&gt;
  
  
  Licensing Model Deliberations
&lt;/h3&gt;

&lt;p&gt;At Daytona, we are carefully evaluating our approach to open-source licensing. We aimed to find a sweet spot that substantially benefits developers and supports the developer community long-term.&lt;/p&gt;

&lt;p&gt;Though the code has not yet been published, &lt;a href="https://github.com/daytonaio/core"&gt;&lt;strong&gt;watch closely our Daytona Core repository&lt;/strong&gt;&lt;/a&gt; for upcoming updates and releases, expected in Q1 2024.&lt;/p&gt;

&lt;h2&gt;
  
  
  Looking Ahead
&lt;/h2&gt;

&lt;p&gt;While Daytona is transitioning towards a fully open-source strategy, it's important to acknowledge that this approach may not suit everyone.&lt;/p&gt;

&lt;p&gt;However, there are alternative ways to support the community. One notable example is Sentry, which demonstrates its commitment through financial and developmental assistance. This sets a clear path forward for technology companies. True to Desai's vision, the future favors those who recognize open-source alignment as a strategic cornerstone for fostering innovation, enhancing competitiveness, and achieving success.&lt;/p&gt;

&lt;p&gt;In this pursuit, contribution and collaboration are not just ethical choices but strategic ones that will define the leading enterprises of tomorrow. The call to action is simple yet profound:  &lt;strong&gt;embrace open-source either directly or through alignment&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;After all, it's important to recognize that our work wouldn't be possible without the solid foundation of open source.&lt;/p&gt;

</description>
      <category>opensource</category>
    </item>
    <item>
      <title>Meeting Developers Where They Are</title>
      <dc:creator>Toma Puljak</dc:creator>
      <pubDate>Mon, 22 Jan 2024 00:00:00 +0000</pubDate>
      <link>https://dev.to/daytona/meeting-developers-where-they-are-bb6</link>
      <guid>https://dev.to/daytona/meeting-developers-where-they-are-bb6</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6yhhm2yn03fbixaz45ca.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6yhhm2yn03fbixaz45ca.png" alt="Image description" width="800" height="402"&gt;&lt;/a&gt;&lt;br&gt;
Innovation is rapid, with new tools and frameworks emerging constantly. As a result, developers today have more choices than ever in how they build applications. This fragmentation presents opportunities and challenges for companies building developer tools and platforms. To be successful, you must meet your users where they are rather than requiring them to conform to your ideals.&lt;/p&gt;

&lt;p&gt;It's worth considering integrating your product's core functionality into the tools developers commonly use, such as their IDE or the terminal for compiling code and executing commands. Consider the tools and applications developers frequently use; a significant portion of their time—around 80%—is spent within an Integrated Development Environment (IDE). This is why companies should consider porting functionality into CLI binaries or extensions for VS Code, JetBrains, etc.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TL;DR&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Meet developers where they are by integrating into existing tools like IDEs, not requiring them to adopt new ones. &lt;/li&gt;
&lt;li&gt;Leverage standards like OpenAPI to create clear APIs that enable ecosystem contributions.&lt;/li&gt;
&lt;li&gt;Embed functionality directly in UIs developers spend time in to reduce context switching.&lt;/li&gt;
&lt;li&gt;API-first thinking reduces friction, future-proofs for new platforms, and promotes customization and community loyalty.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Leveraging Standards for Innovation
&lt;/h2&gt;

&lt;p&gt;The prevalence of APIs has opened up possibilities for integrating with the environments and workflows developers already use. Rather than solely providing your own bespoke interface, you can embed functionality in the IDEs, browsers, terminals and other interfaces developers spend most of their time in. For example, Atlassian's Jira offers a complex web UI for issue tracking. But to reduce context switching, Jira also provides a Visual Studio Code extension so developers can access issues without leaving their editor.&lt;/p&gt;

&lt;p&gt;At Daytona, we've embraced this by carefully considering the developer workflow and all the touchpoints with our product. We are working on a CLI binary and a VS Code extension that allows users to manage workspaces and perform all the actions available in the web UI, as well as integration with the JetBrains ecosystem through their JetBrains Gateway tool.&lt;/p&gt;

&lt;p&gt;These supporting tools align with the principle of meeting developers where they are, as they spend most of their time coding in their IDE. Integrating tools into the IDE reduces friction and enhances developer velocity and satisfaction. It can be frustrating to switch between the IDE and the browser, especially when managing multiple profiles and trying to open links from different sources. Extensions like Daytona's in VS Code simplify this process by keeping everything within the primary tool and minimizing distractions.&lt;/p&gt;

&lt;p&gt;For instance, with Daytona's tools, you can manage workspaces, switch teams, and profiles, which is particularly useful if you have multiple Daytona installations. This approach not only reduces friction but also caters to developers' preferences.&lt;/p&gt;

&lt;h2&gt;
  
  
  The OpenAPI Specification: A Standard for Innovation
&lt;/h2&gt;

&lt;p&gt;At Daytona, we use the OpenAPI specification to create a clear, standardized API that developers can easily interact with, generating API clients in the appropriate language for different tools. This standardization is not only efficient but also enables new features such as AI interactions, where AI agents using OpenAPI spec can easily understand and interact with your API.&lt;/p&gt;

&lt;p&gt;This approach also ties into open-source initiatives, allowing any developer to create supporting tools. For example, someone could integrate Daytona with other platforms or create a Raycast extension for macOS without Daytona having to develop it in-house. By publishing the OpenAPI spec, you empower developers to create tools that suit their needs.&lt;/p&gt;

&lt;p&gt;But also it is important to consider the complexities that come with opening up platforms for external contributions. While it adds work, it's an investment that pays off by enabling innovation and collaboration.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Rise of Intelligent Development Environments
&lt;/h2&gt;

&lt;p&gt;The integration of artificial intelligence (AI) into IDEs is transforming them into Intelligent Development Environments, as forecasted by &lt;a href="https://www.linkedin.com/feed/update/urn:li:activity:7153597472802521089/"&gt;Manjunath Bhat from Gartner&lt;/a&gt;. Local Language Models (LLMs) serve as co-pilots today, but the future may see them become commoditized pilots, integral to the development process. This transition is a testament to the industry's dynamic nature, with IDEs like Cursor and extensions like CodeGPT leading the charge in creating new development workflows.&lt;/p&gt;

&lt;p&gt;This constant evolution of developer workflows underscores the importance of creating standardized, extensible infrastructure. Companies that build open and flexible platforms will be best positioned to anticipate and adapt to future changes in the developer experience. Modular architecture based on common standards allows new capabilities like AI to be smoothly integrated over time. The pace of innovation will only accelerate, so developer tools must be designed for interoperability and evolution from the start. Standardization and extensibility will future-proof products as developer needs and environments continue rapidly transforming.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Compounding Benefits of API-First Thinking
&lt;/h2&gt;

&lt;p&gt;For example, at Daytona we are working on native integrations with VS Code, JetBrains IDEs, our CLI and more. When new platforms gain traction, the community can build clients using well-documented APIs and SDKs. We don't have to build every integration ourselves.&lt;/p&gt;

&lt;p&gt;An API-first approach has compounding benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Reduce friction by meeting developers where they already are&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enable community contributions to clients and integrations&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Future proof for new platforms by letting the community build for emerging tools&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Opening up your platform does require giving up some control. You need processes to curate community integrations before they are published to marketplaces. But done thoughtfully, an API-first approach unlocks contributions and creativity from your user community. Developers want to customize their environment in ways that may not occur to you.&lt;/p&gt;

&lt;p&gt;The market will only continue fragmenting as developers gravitate to specialized tools for different tasks. Companies that embrace this reality will thrive. Meet your users where they are now, not where you want them to be. Building in the open creates feedback loops and community ownership that strengthens your product. API-first thinking future proofs you for the next wave of innovation across the incredibly diverse software development landscape.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Takeaways
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Rapid innovation leads to fragmentation in developer tools&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reduce friction by integrating into environments where users already spend time&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Well-documented APIs and SDKs enable ecosystem integrations&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Give up some control, but gain creativity from the user community&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Meet developers where they are, not where you want them to be&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;API-first thinking future proofs you for ongoing waves of innovation&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The integration ecosystem around developer tools will only grow more complex. Companies that provide the components for others to build on top of will thrive. This means investing in developer experience and documentation for your APIs. When you empower others to extend your platform, it becomes stronger and more adaptable to future needs.&lt;/p&gt;

&lt;p&gt;Relying solely on your bespoke interfaces and portals locks users into your narrow worldview. Exposing capabilities through integrations and APIs shares ownership with your community. Developers will reward companies who understand their desire for customization and meet them where they are.&lt;/p&gt;

</description>
      <category>devex</category>
      <category>devtools</category>
    </item>
    <item>
      <title>2024: The Year CDEs Go Mainstream</title>
      <dc:creator>Ivan Burazin</dc:creator>
      <pubDate>Tue, 16 Jan 2024 00:00:00 +0000</pubDate>
      <link>https://dev.to/daytona/2024-the-year-cdes-go-mainstream-314j</link>
      <guid>https://dev.to/daytona/2024-the-year-cdes-go-mainstream-314j</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe01ryksv7tmd77cz4kg9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe01ryksv7tmd77cz4kg9.png" alt="2024: The Year CDEs Go Mainstream" width="800" height="402"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;At the end of 2022, I reflected on my career's direction. During this time, I stumbled upon an article proclaiming 2023 as the &lt;a href="https://redmonk.com/jgovernor/2022/12/01/the-year-of-the-cloud-development-environment/"&gt;"Year of the Cloud Development Environment."&lt;/a&gt; Reading through it, I couldn't help but wonder: &lt;strong&gt;Could it be true? Could the era of CDEs finally be upon us?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I've been immersed in this space since 2009, even co-founding what might have been the first &lt;a href="https://codeanywhere.com/"&gt;cloud development company&lt;/a&gt;. But as the article quipped, "So 2023 is the year of the cloud development environment (CDE)." That sounded like one of the longest-running jokes in tech — &lt;em&gt;"The year of Linux on the desktop."&lt;/em&gt; I chuckled, pondering if this was just another tongue-in-cheek.&lt;/p&gt;

&lt;p&gt;However, the more I read, the more it resonated. Then, another piece caught my eye – &lt;a href="https://www.gartner.com/en/articles/what-s-new-in-the-2023-gartner-hype-cycle-for-emerging-technologies"&gt;Gartner's hype cycle&lt;/a&gt; — now featuring CDEs, including our former product, a veteran of 14 years in the industry. What was happening? Were CDEs finally stepping into the limelight after years of lurking in the shadows?&lt;/p&gt;

&lt;h2&gt;
  
  
  Evaluating CDEs’ Industry Momentum
&lt;/h2&gt;

&lt;p&gt;As I delved deeper, seeking further validation, I started receiving inbound interest for a new CDE product. Despite my position on a unicorn company's executive board, following the sale of another venture, I felt drawn to explore this. These new signals and encounters were a nudge in a direction I've always found deeply meaningful.&lt;/p&gt;

&lt;p&gt;What caught me off guard even more was the increasing interest from industry analysts. For someone who had never briefed an analyst before, I suddenly found myself amid these inquiries, sharing insights and data that reinforced the argument for CDEs.&lt;/p&gt;

&lt;p&gt;But a nagging question remained: was this just another bubble? Analysts, after all, have been known to be off the mark. Could I risk my career on a second venture into cloud development?&lt;/p&gt;

&lt;h2&gt;
  
  
  Validation from Leading Technology Companies
&lt;/h2&gt;

&lt;p&gt;As my investigation into the state of &lt;a href="https://www.daytona.io/definitions/c/cloud-based-development-environment-cde"&gt;Cloud Development Environments (CDEs)&lt;/a&gt; deepened, clear evidence emerged: leading technology firms were not only discussing CDEs but actively embracing them. The adoption was tangible, backed by data and case studies from prominent players in the tech world.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/daytona/time-is-ripe-for-standardized-dev-environments-306l"&gt;LinkedIn&lt;/a&gt;, for example, made significant strides in cloud-based development, demonstrating scalable and effective environments. &lt;a href="https://dev.to/nkko/leveraging-standardized-development-environments-for-peak-developer-velocity-4n1o-temp-slug-3140212"&gt;Shopify's&lt;/a&gt; story revealed an evolutionary approach to CDEs, adapting their processes to leverage cloud capabilities fully. Similarly, both &lt;a href="https://daytona.io/dotfiles/onboarding-lessons-from-uber-and-stripe"&gt;Stripe&lt;/a&gt; and Palantir have been trailblazers in utilizing CDEs to enhance their operations, setting benchmarks in the industry.&lt;/p&gt;

&lt;p&gt;What struck me most was Slack's strategy. Their focus on remote development has set a new standard for team collaboration and efficiency. These examples solidified my belief that CDEs were indeed the future of development, not just a fleeting trend. The data and case studies from these tech giants provided the concrete evidence I needed to confirm that CDEs were here to stay and thrive.&lt;/p&gt;

&lt;h2&gt;
  
  
  Highlighting Achievements by Uber and Airbnb with CDEs
&lt;/h2&gt;

&lt;p&gt;In addition to Shopify and Stripe, other tech giants have made significant strides with CDEs. &lt;a href="https://daytona.io/dotfiles/managing-complex-development-at-uber"&gt;Uber&lt;/a&gt;, for instance, saw a remarkable improvement in their internal developer NPS score, leaping from a -50 to a commendable +8 after introducing a CDE. This dramatic shift underscores the positive impact that efficient development environments can have on developer satisfaction and productivity.&lt;/p&gt;

&lt;p&gt;Similarly, &lt;a href="https://dev.to/nkko/clarifying-cloud-development-a-dive-into-industry-terminology-6of-temp-slug-4710884"&gt;Airbnb&lt;/a&gt; celebrated the introduction of CDEs as their biggest success in 2023. This milestone highlights the importance of CDEs in modernizing development workflows and enhancing overall efficiency in software engineering teams.&lt;/p&gt;

&lt;p&gt;These achievements by Uber and Airbnb further validate the growing significance of CDEs. They stand as a testament to the transformative potential of cloud-based development environments, not just in improving workflows but in fostering developer satisfaction and organizational success.&lt;/p&gt;

&lt;h2&gt;
  
  
  Daytona and the Confirmation of a Cloud Development Era
&lt;/h2&gt;

&lt;p&gt;A year has passed since the RedMonk article on CDEs first caught my attention — a piece that, until recently, had slipped from my immediate memory. Interestingly, a casual coffee meet-up with &lt;a href="https://redmonk.com/team/james-governor/"&gt;James Governor&lt;/a&gt; in December not only brought me full circle but also reminded me of the gratitude I owe him for that initial spark of insight.&lt;/p&gt;

&lt;p&gt;The catalyst for this flashback was a recent article by The New Stack titled &lt;a href="https://thenewstack.io/web-development-in-2023-javascript-still-rules-ai-emerges/"&gt;"Web Development in 2023."&lt;/a&gt; Reading it, an entire year flashed before my eyes. I remember initially encountering that prediction with a mix of curiosity and skepticism. Now, almost to the day, a year later, a respected media outlet like The New Stack was confirming what was once just a forecast: &lt;strong&gt;2023 indeed marked the year when CDEs firmly established themselves.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This isn't just about a prediction coming true. The enthusiastic embrace of CDEs across the industry marks just the beginning of an extensive transformation. At Daytona, we feel that we have actively shaped the journey of CDEs. But, as we move beyond acknowledging the emergence of CDEs, it is time to shift our focus toward the management of these environments. This critical phase underlines a maturing market, where &lt;a href="https://www.daytona.io/definitions/d/development-environment-management-dem"&gt;Development Environment Management (DEM)&lt;/a&gt; comes into play, meeting the growing need for a secure and scalable approach to development workflows.&lt;/p&gt;

&lt;p&gt;Through exceptionally thought-out DEM practices, we're set to harness the full capacity of CDEs and push the bounds of innovation and productivity. This journey is far from over; in fact, we are set to embark on the consequential next chapter: refining, optimizing, and elevating the cloud development experience to unparalleled heights with Development Environment Management.&lt;/p&gt;

</description>
      <category>cde</category>
      <category>devtools</category>
    </item>
  </channel>
</rss>
