DEV Community

Cover image for My Journey with Daytona and How I Plan to Use It Going Forward
Rohith Singh
Rohith Singh

Posted on

My Journey with Daytona and How I Plan to Use It Going Forward

So... hey!! Lemme be clear for this post, it'll be my first technical one, but I'm sure this is gonna be great. I'm planning to start something big on Devdotso, and a few days ago I was just looking for tools to get everything started when I found this gem. I’ll be honest with everything and would like to share my experience using this awesome tool called Daytona.

Daytona · GitHub

Daytona is a self-hosted and secure open source development environment manager. - Daytona

favicon github.com

So, first of all... what's Daytona?

Daytona is an open-source development environment manager that allows developers to manage and deploy workspaces, which can be reproduced based on standard OCI containers. And do you know what's the best part? You can just provide a remote git repository to Daytona's CLI, and Daytona builds a workspace and provides it on a platform for you based on the configurations provided for the repo. Once everything is set up, you can develop, test, and contribute to open source or any projects using an IDE supported by Daytona. You can learn more about it here: https://www.daytona.io/docs.

My experience with Daytona?

I was just trying to explore few tools for Devdotso, a developer brand that I'm working on from scratch, and I wanted to give Daytona a shot... (the exact motivation was to earn some bucks through Quira, but let it be a secret).

So, to give this awesome tool a try, I used one of my open-source projects, which I worked on a few months ago: therabot. The question was how to set up Daytona and provide configurations. I followed their docs - it’s quite simple, easy to understand, and will help you a lot.

Here's a brief overview of the steps I followed:

  • Install Daytona: I installed Daytona on my windows system using their installation script (lmao will be transitioning soon to a Linux based setup). For Linux and macOS, the command is:
   (curl -sf -L https://download.daytona.io/daytona/install.sh | sudo bash) && daytona server -y && daytona
Enter fullscreen mode Exit fullscreen mode

For Windows, the installation involves a PowerShell script. Detailed instructions are available in their installation guide.

Literally me these days 🤷‍♂️!
Windows

  • Connect Daytona with your repo: I added my Git provider i.e., github to Daytona using the command:
   daytona git-providers add
Enter fullscreen mode Exit fullscreen mode

This step ensures that Daytona can access and manage the repositories. Follow more: Git providers

  • Set up a cloud provider: Daytona supports various providers for deploying development environments. I configured my preferred provider (docker) by following the instructions in their documentation. follow up
   daytona provider install
Enter fullscreen mode Exit fullscreen mode
  • Set a target: A target is basically a destination or environment where your development setups. I specified the deployment target using:
   daytona target set
Enter fullscreen mode Exit fullscreen mode

This command allows developers to define where their development environments will be provisioned. learn more about targets

  • Choose an IDE: Daytona supports multiple IDEs. I set my preferred IDE with:
   daytona ide
Enter fullscreen mode Exit fullscreen mode

This ensures that the development environment opens in your chosen editor.

  • Create a workspace: I created a new workspace using:
   daytona create
Enter fullscreen mode Exit fullscreen mode

This command provisions a new development environment based on the specified configurations.

  • Make project configurations: I configured the project settings as needed, by creating a .devcontainer/devcontainer.json file in root.

Here's what my devcontainer.json looks like: blob/devcontainer.json

Following these steps made the setup process simple and straightforward. Daytona is a well documented tool to start with and helps build applications and manage dev environments hella easy.

Thanks bro

From my POV, if you're building an awesome application/product with a complex configuration/setup you should give Daytona a try. To wrap things up (as always), I want to hear from you all about your way of managing dev environments and make sure to follow me on X, and support me on github.

Top comments (1)

Collapse
 
anmolbaranwal profile image
Anmol Baranwal

It has such an excellent use case 🔥