<?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: Jonathen Adkins</title>
    <description>The latest articles on DEV Community by Jonathen Adkins (@jonathenadkins).</description>
    <link>https://dev.to/jonathenadkins</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%2Fuser%2Fprofile_image%2F3961768%2F82c631ab-3b68-4e58-82e9-4a7b9966aaed.jpg</url>
      <title>DEV Community: Jonathen Adkins</title>
      <link>https://dev.to/jonathenadkins</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jonathenadkins"/>
    <language>en</language>
    <item>
      <title>How Daytona Works: The Complete Guide to AI-Powered Development Environments</title>
      <dc:creator>Jonathen Adkins</dc:creator>
      <pubDate>Sun, 31 May 2026 23:54:35 +0000</pubDate>
      <link>https://dev.to/jonathenadkins/how-daytona-works-the-complete-guide-to-ai-powered-development-environments-4nob</link>
      <guid>https://dev.to/jonathenadkins/how-daytona-works-the-complete-guide-to-ai-powered-development-environments-4nob</guid>
      <description>&lt;p&gt;--|------------------|-------|&lt;br&gt;
| &lt;strong&gt;VS Code&lt;/strong&gt; | Native extension | Full feature support |&lt;br&gt;
| &lt;strong&gt;JetBrains&lt;/strong&gt; | Gateway or remote SSH | Works with all major IDEs |&lt;br&gt;
| &lt;strong&gt;Vim/Neovim&lt;/strong&gt; | Terminal SSH | For terminal-first developers |&lt;br&gt;
| &lt;strong&gt;Web IDE&lt;/strong&gt; | Browser-based | Zero local setup required |&lt;/p&gt;
&lt;h3&gt;
  
  
  VS Code Extension
&lt;/h3&gt;

&lt;p&gt;Install the Daytona extension from the VS Code marketplace:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Search "Daytona" in Extensions&lt;/li&gt;
&lt;li&gt;Install and authenticate with your Daytona server&lt;/li&gt;
&lt;li&gt;Browse and launch environments directly from the IDE sidebar&lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;
  
  
  Git Provider Integration
&lt;/h3&gt;

&lt;p&gt;Link Daytona to your Git provider to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Auto-detect repositories with devcontainer configs&lt;/li&gt;
&lt;li&gt;Branch-based environment creation&lt;/li&gt;
&lt;li&gt;Pull request preview environments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Supported providers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt; (including GitHub Enterprise)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitLab&lt;/strong&gt; (including self-hosted)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Bitbucket&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  Security and Access Control
&lt;/h2&gt;
&lt;h3&gt;
  
  
  VPN and Network Isolation
&lt;/h3&gt;

&lt;p&gt;Daytona environments are accessible only through authenticated VPN connections by default. This means:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No public IP exposure&lt;/li&gt;
&lt;li&gt;Encrypted traffic between your IDE and the environment&lt;/li&gt;
&lt;li&gt;Per-user authentication via API tokens&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  Authentication
&lt;/h3&gt;

&lt;p&gt;Daytona uses API token-based authentication:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;daytona login &lt;span class="nt"&gt;--token&lt;/span&gt; YOUR_API_TOKEN
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;For enterprise setups, integrate with your identity provider (SSO/SAML) through the server configuration.&lt;/p&gt;

&lt;h3&gt;
  
  
  Best Practices
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Rotate API tokens&lt;/strong&gt; regularly&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Use per-user tokens&lt;/strong&gt; instead of shared credentials&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Restrict provider access&lt;/strong&gt; — only allow environments on approved hosts&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audit environment creation&lt;/strong&gt; — review who's spinning up what&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Set resource limits&lt;/strong&gt; prevent runaway environments from consuming all cluster resources&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Scaling with Daytona
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Multi-User Workspaces
&lt;/h3&gt;

&lt;p&gt;For teams running Daytona at scale:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Environment quotas&lt;/strong&gt;: Limit how many environments each developer can run simultaneously&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resource allocation&lt;/strong&gt;: Set CPU/memory limits per environment&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Namespace isolation&lt;/strong&gt;: Keep team environments separate&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Centralized logging&lt;/strong&gt;: Aggregate logs from all environments to your monitoring stack&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Eliminating Configuration Drift
&lt;/h3&gt;

&lt;p&gt;The biggest hidden cost of development is configuration drift — when every developer's setup diverges slightly over time. Daytona eliminates this by:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Defining environments as code (version-controlled)&lt;/li&gt;
&lt;li&gt;Rebuilding from scratch on each &lt;code&gt;create&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Using immutable container images instead of mutable VMs&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Running Multiple Environments
&lt;/h3&gt;

&lt;p&gt;Developers frequently need multiple environments open simultaneously — one per feature branch, one for debugging, one for code review. Daytona handles this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;daytona create https://github.com/org/repo &lt;span class="nt"&gt;--branch&lt;/span&gt; feature/auth
daytona create https://github.com/org/repo &lt;span class="nt"&gt;--branch&lt;/span&gt; bugfix/payment
daytona list
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Each environment is isolated. Changes in one won't affect another.&lt;/p&gt;

&lt;h2&gt;
  
  
  Performance Optimization
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Startup Speed
&lt;/h3&gt;

&lt;p&gt;Daytona environments typically start in &lt;strong&gt;2–5 seconds&lt;/strong&gt; for prebuilt environments, compared to 30–60 seconds for traditional container-based setups. This is because:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Prebuilds cache the fully-initialized environment&lt;/li&gt;
&lt;li&gt;Only incremental changes are applied on branch switch&lt;/li&gt;
&lt;li&gt;Provider-level caching avoids redundant dependency installation&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Resource Usage
&lt;/h3&gt;

&lt;p&gt;Typical Daytona environment resource profile:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;CPU&lt;/strong&gt;: 1–2 cores (configurable)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Memory&lt;/strong&gt;: 2–8 GB (configurable)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Disk&lt;/strong&gt;: Size of your project + dependencies&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These are defined in the devcontainer config:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="nl"&gt;"hostRequirements"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"cpus"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"memory"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"4gb"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"storage"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"16gb"&lt;/span&gt;&lt;span class="w"&gt;
  &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Troubleshooting Common Issues
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Environment won't start:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;daytona logs &amp;lt;env-name&amp;gt;
&lt;span class="c"&gt;# Check for devcontainer build errors&lt;/span&gt;
&lt;span class="c"&gt;# Verify provider connectivity&lt;/span&gt;
daytona provider list
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;IDE can't connect:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;daytona ssh &amp;lt;env-name&amp;gt;
&lt;span class="c"&gt;# Verify the environment is running&lt;/span&gt;
&lt;span class="c"&gt;# Check your VPN/API token&lt;/span&gt;
daytona login &lt;span class="nt"&gt;--token&lt;/span&gt; YOUR_TOKEN
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Slow performance:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Check resource allocation in devcontainer config&lt;/li&gt;
&lt;li&gt;Verify provider host has available capacity&lt;/li&gt;
&lt;li&gt;Enable prebuilds for frequently-used environments&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Comparison with Alternatives
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Daytona&lt;/th&gt;
&lt;th&gt;GitHub Codespaces&lt;/th&gt;
&lt;th&gt;Gitpod&lt;/th&gt;
&lt;th&gt;Dev Containers (local)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Self-hosted&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;td&gt;❌ No&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cloud provider&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;✅ Pluggable&lt;/td&gt;
&lt;td&gt;✅ GitHub only&lt;/td&gt;
&lt;td&gt;✅ GCP/AWS&lt;/td&gt;
&lt;td&gt;❌ Local only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;IDE support&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;VS Code, JetBrains, Vim, Web&lt;/td&gt;
&lt;td&gt;VS Code, JetBrains&lt;/td&gt;
&lt;td&gt;VS Code, JetBrains&lt;/td&gt;
&lt;td&gt;VS Code, JetBrains&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Prebuilds&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;td&gt;❌ No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;VPN access&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;✅ Default&lt;/td&gt;
&lt;td&gt;✅ Codespaces&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;td&gt;❌ Local&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Open source&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;✅ MIT&lt;/td&gt;
&lt;td&gt;❌ Proprietary&lt;/td&gt;
&lt;td&gt;❌ Proprietary&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Provider plugins&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;td&gt;❌ GitHub only&lt;/td&gt;
&lt;td&gt;✅ Limited&lt;/td&gt;
&lt;td&gt;❌ Docker only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Pricing&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Free (self-hosted)&lt;/td&gt;
&lt;td&gt;Pay per usage&lt;/td&gt;
&lt;td&gt;Free tier + paid&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Choose Daytona when:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You need self-hosted environments (compliance, data sovereignty)&lt;/li&gt;
&lt;li&gt;You want provider flexibility (run on any cloud or on-prem)&lt;/li&gt;
&lt;li&gt;Your team uses multiple IDEs&lt;/li&gt;
&lt;li&gt;You need VPN-only access for security&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Choose GitHub Codespaces when:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You're already deeply embedded in the GitHub ecosystem&lt;/li&gt;
&lt;li&gt;You don't need self-hosted infrastructure&lt;/li&gt;
&lt;li&gt;VS Code is your only IDE&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Choose Gitpod when:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You want a managed cloud solution with minimal setup&lt;/li&gt;
&lt;li&gt;You primarily use VS Code or JetBrains&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Real-World Use Cases
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Developer Onboarding
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Before Daytona:&lt;/strong&gt; New hire spends 2–3 days setting up their development environment. Senior developers lose ~5 hours helping troubleshoot.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;After Daytona:&lt;/strong&gt; New hire runs &lt;code&gt;daytona create&lt;/code&gt; on day one. They're committing code within an hour.&lt;/p&gt;

&lt;h3&gt;
  
  
  Multi-Repo Development
&lt;/h3&gt;

&lt;p&gt;Teams working across multiple repositories (microservices, frontend + backend + mobile) can maintain separate environments for each service without complex local configuration.&lt;/p&gt;

&lt;h3&gt;
  
  
  CI/CD Integration
&lt;/h3&gt;

&lt;p&gt;Daytona environments can be used as ephemeral CI runners for testing, building, and reviewing code in an environment that matches production.&lt;/p&gt;

&lt;h3&gt;
  
  
  Hackathons and Demos
&lt;/h3&gt;

&lt;p&gt;Spin up pre-configured environments for hackathon participants or demo environments for clients — all from the same devcontainer config.&lt;/p&gt;

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

&lt;p&gt;Daytona solves a real problem: development environment setup is broken. It's slow, error-prone, and doesn't scale. By treating environments as code and providing a flexible provider system, Daytona makes consistent, secure development environments accessible to teams of any size.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Daytona is right for you if:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your team struggles with "it works on my machine" issues&lt;/li&gt;
&lt;li&gt;You're onboarding developers frequently&lt;/li&gt;
&lt;li&gt;You need self-hosted or multi-cloud development environments&lt;/li&gt;
&lt;li&gt;Security and access control are priorities&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Get started:&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Install Daytona: &lt;code&gt;curl -fsSL https://get.daytona.io | bash&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Add a &lt;code&gt;.devcontainer.json&lt;/code&gt; to your project&lt;/li&gt;
&lt;li&gt;Run &lt;code&gt;daytona create .&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Start coding&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Additional Resources
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Documentation&lt;/strong&gt;: &lt;a href="https://daytona.io/docs" rel="noopener noreferrer"&gt;https://daytona.io/docs&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/daytonaio/daytona" rel="noopener noreferrer"&gt;https://github.com/daytonaio/daytona&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;YouTube Overview&lt;/strong&gt;: &lt;a href="https://www.youtube.com/watch?v=RNf_vfgc91c" rel="noopener noreferrer"&gt;Daytona Explained&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Community&lt;/strong&gt;: Join the Daytona Discord for support and discussions&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devex</category>
    </item>
  </channel>
</rss>
