<?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: Javier Hernandez</title>
    <description>The latest articles on DEV Community by Javier Hernandez (@wickathou).</description>
    <link>https://dev.to/wickathou</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%2F1021764%2F472aacd3-5702-453b-885e-38345f82bc28.png</url>
      <title>DEV Community: Javier Hernandez</title>
      <link>https://dev.to/wickathou</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/wickathou"/>
    <language>en</language>
    <item>
      <title>Exporting from Lovable to Cursor, and hosting without using the Lovable Cloud</title>
      <dc:creator>Javier Hernandez</dc:creator>
      <pubDate>Mon, 27 Oct 2025 12:28:01 +0000</pubDate>
      <link>https://dev.to/diploi/using-cursor-with-apps-built-with-lovable-and-hosting-without-lovable-cloud-1m43</link>
      <guid>https://dev.to/diploi/using-cursor-with-apps-built-with-lovable-and-hosting-without-lovable-cloud-1m43</guid>
      <description>&lt;p&gt;Updated &lt;time&gt;October 24, 2025&lt;/time&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Table of contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;How to expand Lovable apps with Cursor and flexible hosting&lt;/li&gt;
&lt;li&gt;What is possible with Diploi&lt;/li&gt;
&lt;li&gt;
Importing a Lovable app to Diploi

&lt;ul&gt;
&lt;li&gt;Getting started with a Development environment&lt;/li&gt;
&lt;li&gt;How to connect Cursor to your Lovable app&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Creating a Production deployment for your Lovable app&lt;/li&gt;

&lt;li&gt;Adding a custom domain to your deployed Lovable app&lt;/li&gt;

&lt;li&gt;Expanding your Lovable app with Components and Add-ons&lt;/li&gt;

&lt;li&gt;Bringing It All Together&lt;/li&gt;

&lt;li&gt;References&lt;/li&gt;

&lt;/ul&gt;




&lt;h2&gt;
  
  
  How to expand Lovable apps with Cursor and flexible hosting
&lt;/h2&gt;

&lt;p&gt;When you create a new application with Lovable, you get a lot done for you with just one prompt, which is great to get your project going, but! If you are here, it is because you also noticed that this is not enough.&lt;/p&gt;

&lt;p&gt;Maybe you reached the limits of what's possible with Lovable, got tired of context pollution, or limited branching support when deploying your app.&lt;/p&gt;

&lt;p&gt;Lovable's context can get polluted, and after a few chats, you end up either spending credits to fix bugs that the AI has introduced as it goes or looking for ways to restore your app to a point when it was working.&lt;/p&gt;

&lt;p&gt;Other times, you might want to use tools like Cursor, so you can target specific areas of your codebase and work along with Cursor's AI to improve your product, but since Lovable has it's own cloud and environment settings, you might cause unnintended issues, when your app is not able to run on Lovable and you need to find an alternative to host it.&lt;/p&gt;

&lt;p&gt;Because of these issues, we decided to create something to help people who use Lovable extensively by adding a way to import apps built with Lovable on Diploi. As a developer platform, with Diploi, we give you a way to host and code without the usual work of running apps locally or setting up servers.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is possible with Diploi
&lt;/h2&gt;

&lt;p&gt;Not only can you import your apps or start from zero, but you can also expand what's possible for your apps by using Diploi, where you can:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;add a backend for your imported apps,&lt;/li&gt;
&lt;li&gt;migrate from paid Supabase to open-source Supabase,&lt;/li&gt;
&lt;li&gt;add additional databases,&lt;/li&gt;
&lt;li&gt;add blogging with Ghost,&lt;/li&gt;
&lt;li&gt;and add automated tasks with n8n,&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The best part is that you can host all of these services along your Lovable app, within the same server cluster, so you only pay for one service, rather than paying for multiple servers to host each part of your full-stack application.&lt;/p&gt;

&lt;p&gt;You get a smooth hosting experience, where you can add custom domains, and the option to deploy preview or production environments for your app without having to set up CI/CD pipelines or SSL certificates.&lt;/p&gt;

&lt;p&gt;You can add components and add-ons in Diploi just by modifying a &lt;a href="https://docs.diploi.com/reference/diploi-yaml" rel="noopener noreferrer"&gt;diploi.yaml&lt;/a&gt; file, which is created when you import an app from Lovable.&lt;/p&gt;

&lt;p&gt;So let's go over a walkthrough.&lt;br&gt;
In this blog, we'll show you how to import an application created using Lovable. Let's get going 👨‍🏭&lt;/p&gt;




&lt;h2&gt;
  
  
  Importing a Lovable app to Diploi
&lt;/h2&gt;

&lt;p&gt;In this walkthrough, we'll be importing an application stored on GitHub and built with Lovable. The app has a soundboard interface where you can play sounds and it allows you to add new sounds to the list available.&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%2F68klmdzlpww2tkxumb3a.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%2F68klmdzlpww2tkxumb3a.png" alt="Screenshot of soundboard app example" width="800" height="613"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you want to use this same application for testing, here's the public repository which you can use to import the app to your own Diploi account: &lt;a href="http://github.com/wickathou/vibe-tune-podcast" rel="noopener noreferrer"&gt;http://github.com/wickathou/vibe-tune-podcast&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can see the live app here: &lt;a href="https://demo--soundboarded.diploi.me/" rel="noopener noreferrer"&gt;https://demo--soundboarded.diploi.me/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's get started by creating a new project and starting a Development environment, where you can start coding with Cursor right away.&lt;/p&gt;




&lt;h3&gt;
  
  
  Getting started with a Development environment
&lt;/h3&gt;

&lt;p&gt;We'll assume that you already have a GitHub account and at least one project built with Lovable (you can use the repository we used for this guide too).&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Create a Diploi Account
&lt;/h4&gt;

&lt;p&gt;Now you'll need to create an account in Diploi, which is free. You can do it from &lt;a href="https://console.diploi.com" rel="noopener noreferrer"&gt;console.diploi.com&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Create a new project
&lt;/h4&gt;

&lt;p&gt;Once you finish creating an account, you will be welcomed with the Stack Builder, which is the place to create a new application from zero or import a repository from GitHub.&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%2F0hv0bvdy4wy2zg1s6dva.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%2F0hv0bvdy4wy2zg1s6dva.png" alt="Import Repository tab" width="800" height="590"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  3. Select the repository you want to import
&lt;/h4&gt;

&lt;p&gt;From the Stack Builder, choose the option &lt;strong&gt;Import Repository&lt;/strong&gt; and you have the option to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Select the application you want to import from your list of repositories.&lt;br&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%2Fxc7ww8kosu8pk3cqvmw7.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%2Fxc7ww8kosu8pk3cqvmw7.png" alt="Selecting a repository from own list of repos" width="800" height="721"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Importing from a URL, which allows you to use the URL from any repository you own or public repositories, even if you are not the owner.&lt;br&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%2Fbfle1yzji953jl6v4irz.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%2Fbfle1yzji953jl6v4irz.png" alt="Importing from URL" width="800" height="224"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  4. Analyze the repository
&lt;/h4&gt;

&lt;p&gt;To make sure that the repository will be able to run on Diploi, you must click &lt;strong&gt;"Analyze repository"&lt;/strong&gt; so Diploi can check the configuration of your project and prepare your deployment environment.&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%2Flh3oucfc4a354jve8x8e.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%2Flh3oucfc4a354jve8x8e.png" alt="Analyzing a repository to import" width="599" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If the analysis is successful, you will get a notification indicating that your repository contains a Lovable application.&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%2Fkghztkfnqcffjthqvjpp.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%2Fkghztkfnqcffjthqvjpp.png" alt="Repository analysis result" width="599" height="194"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  5. Launching the application
&lt;/h4&gt;

&lt;p&gt;Something we must note is that depending on the ownership of the repository, the steps after the repository has been analyzed are different.&lt;/p&gt;

&lt;h5&gt;
  
  
  If you are the owner of the imported repository
&lt;/h5&gt;

&lt;p&gt;You can just launch your application instantly, without having to configure additional settings for your deployment. Any updates you made to the code will be linked to the repository you imported.&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%2F3vva4w8ec8x4gf61oeaq.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%2F3vva4w8ec8x4gf61oeaq.png" alt="Configuration of Diploi stack if imported repository belongs to the user" width="800" height="423"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  If you are importing a repository from someone else
&lt;/h5&gt;

&lt;p&gt;You can customize the stack for your imported Lovable app, so you can add other services like &lt;a href="http://diploi.com/component/bun" rel="noopener noreferrer"&gt;Bun&lt;/a&gt; to create a backend for your app or &lt;a href="http://diploi.com/component/ghost" rel="noopener noreferrer"&gt;Ghost&lt;/a&gt; to add a blog.&lt;/p&gt;

&lt;p&gt;Diploi allows you to create a new repository for your application, since you don't own the imported repository.&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%2Fgiklo7jg91m6dn30ihg8.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%2Fgiklo7jg91m6dn30ihg8.png" alt="Diploi stack customized for external public repositories" width="800" height="734"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;At this stage your app should be ready to be launched, so all you need to do is click &lt;strong&gt;"Launch Stack"&lt;/strong&gt; and a new Development environment will be created for you.&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%2Fdsddvd1lgjzr96v3bdxf.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%2Fdsddvd1lgjzr96v3bdxf.png" alt="Launch Stack" width="410" height="135"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  How to connect Cursor to your Lovable app
&lt;/h3&gt;

&lt;p&gt;Now your application should be running, and you should see something like this:&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%2Fnoa2141j57lkz4r4y4pi.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%2Fnoa2141j57lkz4r4y4pi.png" alt="Deployment dashboard" width="800" height="610"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;From here you can preview the application live, by clicking on &lt;strong&gt;"View App"&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%2Fi4s6fnfpg2ge832cheyu.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%2Fi4s6fnfpg2ge832cheyu.png" alt="App live preview link" width="414" height="80"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And you can also access the Remote Development environment where you can start coding your application, that allows you to start coding without installing anything.&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%2Fwn22u481tbpowtimowah.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%2Fwn22u481tbpowtimowah.png" alt="Accesing the remote development environment" width="609" height="558"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now, we want to connect Cursor, so we need first to add an SSH key to connect your computer to the Remote Development environment. Here's what you need to do.&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Create an SSH key
&lt;/h4&gt;

&lt;p&gt;There are multiple ways to generate an SSH key, but in my opinion the easiest way to do it is by using the command &lt;code&gt;ssh-keygen&lt;/code&gt; from whatever Terminal application you have available in your computer. The steps you must follow are:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Open a Terminal&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;in &lt;strong&gt;Linux&lt;/strong&gt;, you can open the terminal by pressing &lt;code&gt;Ctrl&lt;/code&gt;+&lt;code&gt;Alt&lt;/code&gt;+&lt;code&gt;T&lt;/code&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%2F2t8k533n1f1g438h3trc.png" alt="Linux terminal" width="414" height="245"&gt;
&lt;/li&gt;
&lt;li&gt;in &lt;strong&gt;Mac&lt;/strong&gt;, open the Spotlight Search by pressing &lt;code&gt;Command&lt;/code&gt;+&lt;code&gt;Space&lt;/code&gt; and then typing "terminal".
&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%2Fqw49voex9wz1pxnnihff.png" alt="mac terminal" width="800" height="583"&gt;
&lt;/li&gt;
&lt;li&gt;in &lt;strong&gt;Windows&lt;/strong&gt;, you can open the terminal by opening Git Bash from your apps (If you don't have it, you can download it here &lt;a href="https://git-scm.com/downloads" rel="noopener noreferrer"&gt;https://git-scm.com/downloads&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Then type the command &lt;code&gt;ssh-keygen&lt;/code&gt;, which will generate an SSH key, which by default will have the name &lt;code&gt;id_ed25519&lt;/code&gt;, but you can assign a different name and store it on a different folder. For convenience, use the default filename and location, since Cursor by default will use the same filename and location to fetch your SSH keys.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;After the filename has been assigned, you will have the option to assign a passphrase to use your SSH key. You can leave it empty by just pressing enter.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  2. Add the SSH Public Key in Diploi
&lt;/h4&gt;

&lt;p&gt;By now, &lt;code&gt;ssh-keygen&lt;/code&gt; would have generated 2 files. If you used the default name, the filenames would be &lt;code&gt;id_ed25519&lt;/code&gt;, which stores your Private Key and `&lt;code&gt;id_ed25519.pub&lt;/code&gt;, which stores your Public Key.&lt;/p&gt;

&lt;p&gt;The next steps are to copy your Public Key, which you can do by reading and copying the contents from &lt;code&gt;id_ed25519.pub&lt;/code&gt;, and pasting them in your Diploi account settings.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;To copy the contents of your Public Keyu file, you can use any text editor to open and copy the contents of the file, or from the terminal, you can use the command &lt;strong&gt;cat&lt;/strong&gt;, so if you used the default name and location, the command would look like this: &lt;code&gt;cat ~/.ssh/id_ed25519.pub&lt;/code&gt;, and after pressing enter you should see in the terminal something like this:&lt;br&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%2Frnr2t3f7mxm9t4bsit3n.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%2Frnr2t3f7mxm9t4bsit3n.png" alt="Result from using the cat command on the .pub key generated" width="800" height="58"&gt;&lt;/a&gt;&lt;br&gt;
From there, you can just select the text starting from "ssh-ed25519..." and then press &lt;code&gt;Ctrl&lt;/code&gt;+&lt;code&gt;Shift&lt;/code&gt;+&lt;code&gt;C&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now you need to add the copied text in Diploi, which you can do from the settings page at &lt;code&gt;https://console.diploi.com/&amp;lt;YOUR_USERNAME&amp;gt;/settings&lt;/code&gt;, scroll down to the &lt;strong&gt;"authentication"&lt;/strong&gt; section, and then click on &lt;strong&gt;"Add New SSH Key"&lt;/strong&gt;.&lt;br&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%2Fl7bad736pyx5desmdmea.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%2Fl7bad736pyx5desmdmea.png" alt="SSH keys gallery" width="800" height="193"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;And the last step is to paste the contents we copied before inside the &lt;strong&gt;"Public Key"&lt;/strong&gt; text field, and then press &lt;strong&gt;"Add SSH Key"&lt;/strong&gt;.&lt;br&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%2F3c0eat46zzhj3idrdlyc.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%2F3c0eat46zzhj3idrdlyc.png" alt="Adding an SSH key" width="621" height="782"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Now we are ready to open the imported Lovable app with Cursor.&lt;/p&gt;

&lt;h4&gt;
  
  
  3. Opening your app with Cursor
&lt;/h4&gt;

&lt;p&gt;Now we are ready to open the imported app from Lovable using Cursor.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Go to the deployment page and enable Cursor, from the &lt;strong&gt;"Develop"&lt;/strong&gt; section, press the button &lt;strong&gt;+&lt;/strong&gt; and you'll be able to see the &lt;strong&gt;"Open in Cursor"&lt;/strong&gt; option.&lt;br&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%2Fw5e8a3z4slkxplu9v5sg.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%2Fw5e8a3z4slkxplu9v5sg.png" alt="Open in Cursor launch button" width="800" height="730"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;To pin the &lt;strong&gt;"Open in Cursor"&lt;/strong&gt; button to your deployment, just click on the pin icon next to the text.&lt;br&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%2Fzfgwc1t0z706m9nw3qmt.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%2Fzfgwc1t0z706m9nw3qmt.png" alt="Pinning Cursor to the deployment dashboard" width="370" height="267"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;When you click on the button to open Cursor, the app will use SSH to connect to the development environment.&lt;br&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%2F639thi6ujq1v80tvh3ax.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%2F639thi6ujq1v80tvh3ax.png" alt="Cursor connected to a remote development environment" width="800" height="497"&gt;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;




&lt;p&gt;And that's it! Now you can connect Cursor to any other app you import or create in Diploi.&lt;/p&gt;




&lt;h2&gt;
  
  
  Creating a Production deployment for your Lovable app
&lt;/h2&gt;

&lt;p&gt;Once you get your application to a stage where it is ready to be launched in Production, you can create a new deployment that will be used for that specific case. Before getting started, you must first push your updates to GitHub, so your application has your changes plus the files that Diploi added to your repository in order to be able to run your application.&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%2F1ci6ghjst0kg0ccul1qf.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%2F1ci6ghjst0kg0ccul1qf.png" alt="Pushing updates to GitHub before starting a Production deployment" width="800" height="635"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you don't push files that Diploi creates for your repository, then your Production deployment will fail to start.&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Create a new deployment
&lt;/h4&gt;

&lt;p&gt;Go to the project page, and click on the button &lt;strong&gt;"Create Deployment"&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%2Fnvjzn6de7s2mjz1rxzwa.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%2Fnvjzn6de7s2mjz1rxzwa.png" alt="Creating a new deployment from the project dashboard" width="800" height="428"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Select the stage for the new deployment
&lt;/h4&gt;

&lt;p&gt;On the deployment creation page, select the stage for the deployment as &lt;strong&gt;"Production"&lt;/strong&gt;. You can also choose "Staging" if you want to generate a deployment intended for testing.&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%2Fo3ajucf0wvox5qeo94z6.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%2Fo3ajucf0wvox5qeo94z6.png" alt="Selecting the Production stage for a new deployment" width="800" height="443"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  3. Choose the size for the cluster
&lt;/h4&gt;

&lt;p&gt;You can choose between 4 cluster specs, and in general we recommend you start with &lt;strong&gt;S&lt;/strong&gt; size clusters when launching Lovable apps to Production, since you can always resize the cluster later if your application starts getting a lot of traffic.&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%2Fvxa0erj0sf1fclmuq0th.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%2Fvxa0erj0sf1fclmuq0th.png" alt="Cluster size selection" width="800" height="419"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  4. Select the branch you will deploy to Production
&lt;/h4&gt;

&lt;p&gt;If you have your production version for your app on a different branch than main, here you can select it for your new Production deployment.&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%2Foqtuypzf15qgtz1wxd54.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%2Foqtuypzf15qgtz1wxd54.png" alt="Select branch" width="800" height="575"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  5. Configure the environment variables for Production
&lt;/h4&gt;

&lt;p&gt;If your Lovable app uses environment variables, in this section you can add them.&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%2Fomc9n626uor3hs56s4f6.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%2Fomc9n626uor3hs56s4f6.png" alt="Lovable environment variables" width="800" height="713"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;And that should be all you need to set up your new &lt;strong&gt;"Production"&lt;/strong&gt; deployment, just click &lt;strong&gt;Create Deployment&lt;/strong&gt; and you'll have a Production environment live.&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%2F5uezvfk40fqvwqagc4dl.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%2F5uezvfk40fqvwqagc4dl.png" alt="Create Deployment" width="546" height="157"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Adding a custom domain to your deployed Lovable app
&lt;/h2&gt;

&lt;p&gt;Now that your app is in Production, you probably want to use a custom domain too. Let's walk through over the steps you need to follow.&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Open the Options tab from the Production deployment dashboard
&lt;/h4&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%2F1tcatqcwe3x7jx4uee3d.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%2F1tcatqcwe3x7jx4uee3d.png" alt="Accessing deployment options" width="553" height="192"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Turn off auto-generated endpoints
&lt;/h4&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%2F30tvwfwz5t3djr8si910.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%2F30tvwfwz5t3djr8si910.png" alt="Disabling auto-generated endpoints" width="800" height="339"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  3. Enable "Use Custom Domain" and enter your hostname
&lt;/h4&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%2F50lk467yhscw2dk36soa.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%2F50lk467yhscw2dk36soa.png" alt="Assigning custom domains to imported app" width="800" height="593"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  4. Create a CNAME record from your domain's DNS settings, pointing to &lt;code&gt;edge.diploi.com&lt;/code&gt;
&lt;/h4&gt;




&lt;p&gt;It is common for the custom domain to be fully set up within 1 to 2 minutes, but it can take up to 30 minutes for the update to propagate and for your website to be reachable and SSL-protected.&lt;/p&gt;




&lt;h2&gt;
  
  
  Expanding your Lovable app with Components and Add-ons
&lt;/h2&gt;

&lt;p&gt;If you want to elevate your application with a proper Backend, blogging, or databases, you can add components like &lt;strong&gt;FastAPI&lt;/strong&gt;, &lt;strong&gt;Ghost&lt;/strong&gt;, &lt;strong&gt;n8n&lt;/strong&gt;, etc., and add-ons like &lt;strong&gt;Redis&lt;/strong&gt; and &lt;strong&gt;Supabase&lt;/strong&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Open the diploi.yaml file
&lt;/h4&gt;

&lt;p&gt;To add them, all you need to do is access your app's folder and find the &lt;code&gt;diploi.yaml&lt;/code&gt; file. When you open it, the content for your Lovable app would look like this:&lt;/p&gt;

&lt;p&gt;`&lt;code&gt;&lt;/code&gt;yaml&lt;br&gt;
diploiVersion: v1.0&lt;br&gt;
components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;name: Lovable
identifier: lovable
folder: /
package: &lt;a href="https://github.com/diploi/component-lovable#v1" rel="noopener noreferrer"&gt;https://github.com/diploi/component-lovable#v1&lt;/a&gt;
addons: []
&lt;code&gt;&lt;/code&gt;`&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;code&gt;diploi.yaml&lt;/code&gt; tells Diploi how to build your app's environment. Each component and addon defined for your app has a name, identifier, and a package URL pointing to the Diploi component repository.&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Add new components and addons to your Lovable add
&lt;/h4&gt;

&lt;p&gt;To add a new component for your app's stack, all you need to do is add a new entry to the components or addons list with all of the properties required to define them. For example, let's say we want to add &lt;strong&gt;FastAPI&lt;/strong&gt;, &lt;strong&gt;Postgres&lt;/strong&gt;, and &lt;strong&gt;Redis&lt;/strong&gt;, your &lt;code&gt;diploi.yaml&lt;/code&gt; would then look like this:&lt;/p&gt;

&lt;p&gt;`&lt;code&gt;&lt;/code&gt;yaml&lt;br&gt;
diploiVersion: v1.0&lt;br&gt;
components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;name: Lovable
identifier: lovable
folder: /
package: &lt;a href="https://github.com/diploi/component-lovable#v1" rel="noopener noreferrer"&gt;https://github.com/diploi/component-lovable#v1&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;name: FastAPI
identifier: fastapi
package: &lt;a href="https://github.com/diploi/component-fastapi#main" rel="noopener noreferrer"&gt;https://github.com/diploi/component-fastapi#main&lt;/a&gt;
addons:&lt;/li&gt;
&lt;li&gt;name: Redis
identifier: redis
package: &lt;a href="https://github.com/diploi/addon-redis#main" rel="noopener noreferrer"&gt;https://github.com/diploi/addon-redis#main&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;name: Postgres
identifier: postgres
package: &lt;a href="https://github.com/diploi/addon-postgres#main" rel="noopener noreferrer"&gt;https://github.com/diploi/addon-postgres#main&lt;/a&gt;
&lt;code&gt;&lt;/code&gt;`&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After modifying the &lt;code&gt;diploi.yaml&lt;/code&gt; file, if you go back to your deployment's dashboard, you'll see a notice listing the pending changes for your environment.&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%2Fpa3qblzpfn9lx5bbsnvx.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%2Fpa3qblzpfn9lx5bbsnvx.png" alt="Pending changes for a deployment" width="800" height="334"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By clicking &lt;strong&gt;"Apply Changes"&lt;/strong&gt;, Diploi will proceed to start additional containers to host the new component and addons as pods in the same cluster that already hosts your Lovable app.&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%2Ft8hi2wkcpo62025dy38j.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%2Ft8hi2wkcpo62025dy38j.png" alt="Deployment running newly added components and addons" width="454" height="980"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Bringing It All Together
&lt;/h2&gt;

&lt;p&gt;In summary, importing a Lovable app into Diploi would allow you to elevate what your apps can do and how you can host them, without having to do manual work setting up servers or configuring anything manually.&lt;/p&gt;

&lt;p&gt;For more details about the &lt;code&gt;diploi.yaml&lt;/code&gt; syntax and available components/add-ons, check the Diploi docs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.diploi.com" rel="noopener noreferrer"&gt;https://docs.diploi.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;By importing your Lovable app into Diploi, you effectively upgrade it from a frontend prototype into a full-stack, production-ready app, without leaving the Diploi console. You get one-click deployments, remote dev environments, and pay-as-you-go hosting all in one place.&lt;/p&gt;

&lt;p&gt;And the best part is that you can still continue using the Lovable AI chat for your frontend, because the changes that Diploi makes on your repository's folder structure and the files added do not conflict with Lovable's system.&lt;/p&gt;




&lt;p&gt;If you are building something using Lovable and Diploi, please let us know!&lt;/p&gt;

&lt;p&gt;You can connect with us directly on Discord or via email. We'll be happy to talk with you and help however we can.&lt;/p&gt;

&lt;p&gt;Until the next one! 😎&lt;/p&gt;




&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Diploi Components &lt;a href="https://docs.diploi.com/building/components" rel="noopener noreferrer"&gt;https://docs.diploi.com/building/components&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Diploi Addons &lt;a href="https://docs.diploi.com/building/add-ons" rel="noopener noreferrer"&gt;https://docs.diploi.com/building/add-ons&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Custom Domains &lt;a href="https://docs.diploi.com/deploying/custom-domain/" rel="noopener noreferrer"&gt;https://docs.diploi.com/deploying/custom-domain/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Adding an SSH key in Diploi &lt;a href="https://docs.diploi.com/building/add-ssh-key" rel="noopener noreferrer"&gt;https://docs.diploi.com/building/add-ssh-key&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>hosting</category>
      <category>vibecode</category>
      <category>webdev</category>
      <category>learning</category>
    </item>
    <item>
      <title>Making AI sound like a human should be illegal</title>
      <dc:creator>Javier Hernandez</dc:creator>
      <pubDate>Mon, 27 Oct 2025 09:51:28 +0000</pubDate>
      <link>https://dev.to/wickathou/making-ai-sound-like-a-human-should-be-illegal-448l</link>
      <guid>https://dev.to/wickathou/making-ai-sound-like-a-human-should-be-illegal-448l</guid>
      <description>&lt;p&gt;Let's be honest, right now the point of an AI that sounds like a human is to deceive humans into thinking that they are talking with another human, nothing else.&lt;/p&gt;

&lt;p&gt;Why do we need an AI that when it's speaking says "uhm" and mumbles? Even though it doesn't need to.&lt;/p&gt;

&lt;p&gt;What's the point of allowing heartless entities handle interactions as if they are human?&lt;/p&gt;

&lt;p&gt;I believe it would be actually cheaper to skip all the work dedicated to make AI human-like, and rather just focus on making it useful.&lt;/p&gt;

&lt;p&gt;I know it might not all be for a nefarious cause, but seeing how some of these AI companies act makes me feel that this effort on humanizing AI is for the worst.&lt;/p&gt;

&lt;p&gt;The fact that people has already killed themselves because of their interactions with AI should be a trigger to ban it from sounding like a human, but it feels like the argument so far is along the lines of "well they were dumb so it's their fault and they had mental health problems" and that's it.&lt;/p&gt;

&lt;p&gt;Is sad that all I can do is sound like Luddite to express my annoyance towards this push for dystopian tech.&lt;/p&gt;

&lt;p&gt;Rant over.&lt;/p&gt;

</description>
      <category>changemymind</category>
      <category>ai</category>
      <category>discuss</category>
      <category>security</category>
    </item>
    <item>
      <title>Exploring 7 Lesser Known AI Coding Extensions for VS Code</title>
      <dc:creator>Javier Hernandez</dc:creator>
      <pubDate>Fri, 03 Oct 2025 13:03:48 +0000</pubDate>
      <link>https://dev.to/diploi/exploring-7-lesser-known-ai-coding-extensions-for-vs-code-2nmb</link>
      <guid>https://dev.to/diploi/exploring-7-lesser-known-ai-coding-extensions-for-vs-code-2nmb</guid>
      <description>&lt;h6&gt;
  
  
  Beyond the popular tools that most people are using
&lt;/h6&gt;

&lt;p&gt;If you code for a living or just got started in the journey to become a developer, I imagine you are aware of how helpful AI can be, but chances are that you are aware of the usual suspects, like GitHub Copilot or OpenAI Codex.&lt;/p&gt;




&lt;p&gt;I have heard so much about the same 4 or 5 tools already that I got fed up and wondered, "what else is out there?"&lt;/p&gt;

&lt;p&gt;So I decided to explore some lesser known tools that might be interesting too, and who knows, maybe even better.&lt;/p&gt;

&lt;p&gt;In this post, I explore seven AI coding extensions for VS Code that you probably haven't heard about, covering:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Supported AI models&lt;/li&gt;
&lt;li&gt;Features&lt;/li&gt;
&lt;li&gt;Pricing&lt;/li&gt;
&lt;li&gt;Voice Support&lt;/li&gt;
&lt;li&gt;Context Window&lt;/li&gt;
&lt;li&gt;MCP / Tools&lt;/li&gt;
&lt;li&gt;Privacy &amp;amp; Security&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And at the end, I provide a short conclusion based on the findings.&lt;/p&gt;

&lt;p&gt;TLDR? Check the comparison tables&lt;/p&gt;




&lt;h2&gt;
  
  
  Table of contents
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;List of AI coding extensions explored in this article&lt;/li&gt;
&lt;li&gt;Comparing the Extensions&lt;/li&gt;
&lt;li&gt;Closing thoughts&lt;/li&gt;
&lt;li&gt;References&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  List of AI coding extensions explored in this article
&lt;/h2&gt;

&lt;p&gt;We'll go over the following extensions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Sixth AI&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Code Web Chat&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Syntx Agentic workflow&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tabby&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Augment code&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;GoCodeo&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Vibe Coder&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Let's get started!&lt;/strong&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  Sixth AI
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;The All-in-One Coding Agent&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Official website:&lt;br&gt;
&lt;a href="https://trysixth.com/" rel="noopener noreferrer"&gt;https://trysixth.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;VS Code Marketplace listing:&lt;br&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=Sixth.sixth-ai" rel="noopener noreferrer"&gt;https://marketplace.visualstudio.com/items?itemName=Sixth.sixth-ai&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub:&lt;br&gt;
&lt;a href="https://github.com/SixHq/GPT4-AI-Realtime-code-scanner-Autocomplete-and-Highlighter-for-Javascript-Py-JS-Java-Php-Sixth-SAST" rel="noopener noreferrer"&gt;https://github.com/SixHq/GPT4-AI-Realtime-code-scanner-Autocomplete-and-Highlighter-for-Javascript-Py-JS-Java-Php-Sixth-SAST&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%2Feq4azzxg81hfl8qoe4gf.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%2Feq4azzxg81hfl8qoe4gf.png" alt="Sixth interface"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sixth offers code autocompletion, chat mode, debugging, agentic mode, and codebase search. You can ask it to refactor a function, and it will apply changes across files through the chat interface.&lt;/p&gt;

&lt;p&gt;It also integrates with VS Code’s inline editing (you can highlight code and get suggestions in-place) and CodeLens for explanations and one-click refactors, plus it can be integrated with Model Context Protocol (MCP) servers to extend the AI’s capabilities.&lt;/p&gt;
&lt;h4&gt;
  
  
  Supported AI models
&lt;/h4&gt;

&lt;p&gt;Sixth works with the most popular AI models and allows you to use custom models through HuggingFace.&lt;/p&gt;

&lt;p&gt;The full list of models supported by Sixth include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Groq&lt;/li&gt;
&lt;li&gt;Cohere Command&lt;/li&gt;
&lt;li&gt;HuggingFace&lt;/li&gt;
&lt;li&gt;Nomic&lt;/li&gt;
&lt;li&gt;Voyage AI&lt;/li&gt;
&lt;li&gt;Cerebras Instruct&lt;/li&gt;
&lt;li&gt;SambaNova&lt;/li&gt;
&lt;li&gt;Pixtral Large&lt;/li&gt;
&lt;li&gt;Llama 4 Maverick&lt;/li&gt;
&lt;li&gt;Llama 3.1&lt;/li&gt;
&lt;li&gt;Llama 3&lt;/li&gt;
&lt;li&gt;Qwen 3&lt;/li&gt;
&lt;li&gt;Qwen 2.5 Coder&lt;/li&gt;
&lt;li&gt;Qwen Plus Latest&lt;/li&gt;
&lt;li&gt;Qwen Plus&lt;/li&gt;
&lt;li&gt;Qwen Turbo Latest&lt;/li&gt;
&lt;li&gt;Qwen Turbo&lt;/li&gt;
&lt;li&gt;Qwen Max&lt;/li&gt;
&lt;li&gt;Doubao 1.5 Pro&lt;/li&gt;
&lt;li&gt;Doubao&lt;/li&gt;
&lt;li&gt;Grok 4&lt;/li&gt;
&lt;li&gt;Grok 3 Beta&lt;/li&gt;
&lt;li&gt;Grok 3 Fast Beta&lt;/li&gt;
&lt;li&gt;Grok 3 Mini Betax&lt;/li&gt;
&lt;li&gt;Grok 3&lt;/li&gt;
&lt;li&gt;Grok Beta&lt;/li&gt;
&lt;li&gt;Grok Vision Beta&lt;/li&gt;
&lt;li&gt;DeepSeek R1&lt;/li&gt;
&lt;li&gt;DeepSeek Chat&lt;/li&gt;
&lt;li&gt;DeepSeek Coder&lt;/li&gt;
&lt;li&gt;Amazon Nova Premier&lt;/li&gt;
&lt;li&gt;Amazon Nova Pro&lt;/li&gt;
&lt;li&gt;Amazon Nova Lite&lt;/li&gt;
&lt;li&gt;Amazon Nova Micro&lt;/li&gt;
&lt;li&gt;Mistral Large&lt;/li&gt;
&lt;li&gt;Mistral Small&lt;/li&gt;
&lt;li&gt;Ministral&lt;/li&gt;
&lt;li&gt;Codestral&lt;/li&gt;
&lt;li&gt;Devstral Small&lt;/li&gt;
&lt;li&gt;GPT-5&lt;/li&gt;
&lt;li&gt;GPT-5-mini&lt;/li&gt;
&lt;li&gt;GPT-4.1&lt;/li&gt;
&lt;li&gt;GPT-4o&lt;/li&gt;
&lt;li&gt;GPT-4o Mini&lt;/li&gt;
&lt;li&gt;GPT-4 Turbo&lt;/li&gt;
&lt;li&gt;GPT-4&lt;/li&gt;
&lt;li&gt;GPT-3.5 Turbo&lt;/li&gt;
&lt;li&gt;o4 Mini&lt;/li&gt;
&lt;li&gt;o3&lt;/li&gt;
&lt;li&gt;o1 Preview&lt;/li&gt;
&lt;li&gt;o1 Mini&lt;/li&gt;
&lt;li&gt;Gemini 2.5 Pro&lt;/li&gt;
&lt;li&gt;Gemini 2.5 Flash&lt;/li&gt;
&lt;li&gt;Gemini 2.5 Flash Lite&lt;/li&gt;
&lt;li&gt;Gemini Pro&lt;/li&gt;
&lt;li&gt;Gemini 1.5 Pro&lt;/li&gt;
&lt;li&gt;Gemini 1.5 Flash&lt;/li&gt;
&lt;li&gt;Claude Sonnet 4&lt;/li&gt;
&lt;li&gt;Claude Opus 4.1&lt;/li&gt;
&lt;li&gt;Claude Opus 4&lt;/li&gt;
&lt;li&gt;Claude 3.7 Sonnet&lt;/li&gt;
&lt;li&gt;Claude 3.5 Sonnet&lt;/li&gt;
&lt;li&gt;Claude 3.5 Haiku&lt;/li&gt;
&lt;li&gt;Claude 3 Opus&lt;/li&gt;
&lt;li&gt;Claude 3 Haiku&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  Features
&lt;/h4&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%2Fq1ik3wzv08xu91u9yx9z.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%2Fq1ik3wzv08xu91u9yx9z.png" alt="Sixth features"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When you use &lt;strong&gt;Sixth&lt;/strong&gt;, you get a two-phase workflow and editor-native helpers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Plan and Act modes&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Plan&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Sixth reads your codebase, asks clarifying questions, and helps design an approach without touching files. It’s meant for scoping, exploring structure, and de-risking changes.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Act&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Once you’re happy with the plan, Sixth can implement it, making edits across files while keeping the planning context. You approve changes as it go.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Editor integrations&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Inline/CodeLens actions and code commands&lt;/strong&gt; for explanations, fixes, and refactors directly in the file.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Terminal helper (“See Terminal”)&lt;/strong&gt; to generate shell commands from natural language.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Project-aware chat and codebase indexing&lt;/strong&gt; so the agent can navigate and modify multiple files in one flow.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Under the hood, Sixth can &lt;strong&gt;read/write files, run commands, use a browser tool, and extend itself via MCP servers&lt;/strong&gt;, which all require explicit approvals unless you enable auto-approve.&lt;/p&gt;
&lt;h4&gt;
  
  
  Pricing
&lt;/h4&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%2F3nda3ew55u8ioc9dfgt4.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%2F3nda3ew55u8ioc9dfgt4.png" alt="Sixth pricing"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sixth has a free tier with limits, and if you want to take advantage of MCP servers and agentic functionality regularly, Sixth offers paid plans, starting at $10/month.&lt;/p&gt;

&lt;p&gt;Neither the free or paid tiers of Sixth require you to have your own API keys for the models you want to use.&lt;/p&gt;
&lt;h4&gt;
  
  
  Voice Support
&lt;/h4&gt;

&lt;p&gt;At the moment, Sixth doesn’t support voice input and all interaction is via chat, inline edits, and commands in VS Code.&lt;/p&gt;
&lt;h4&gt;
  
  
  Context Window
&lt;/h4&gt;

&lt;p&gt;Sixth actively builds context in two ways: automatic file exploration and user-guided context.&lt;/p&gt;

&lt;p&gt;Additionally, it shows a context progress bar so you can see how many tokens could still be processed before reaching the context window's limit.&lt;/p&gt;
&lt;h4&gt;
  
  
  MCP / Tools
&lt;/h4&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%2Fkzdgzwh2c1ejz1jdyfai.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%2Fkzdgzwh2c1ejz1jdyfai.png" alt="Sixth MCP servers"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sixth allows you to use MCP servers from their marketplace or by adding your own custom remote server, to extend the capabilities of Sixth.&lt;/p&gt;
&lt;h4&gt;
  
  
  Privacy &amp;amp; Security
&lt;/h4&gt;

&lt;p&gt;Relevant links:&lt;br&gt;
&lt;a href="https://docs.trysixth.com/more-info/telemetry" rel="noopener noreferrer"&gt;https://docs.trysixth.com/more-info/telemetry&lt;/a&gt;&lt;br&gt;
&lt;a href="https://docs.trysixth.com/enterprise-solutions/security-concerns#data-privacy-commitment" rel="noopener noreferrer"&gt;https://docs.trysixth.com/enterprise-solutions/security-concerns#data-privacy-commitment&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sixth hasn't have published a privacy policy or terms of service on their homepage, which is a major oversight given that it would be the bare minimum for these kinds of products. The closest documents I could find related to how data is handled was about how the use telemetry data and a security concerns page.&lt;/p&gt;

&lt;p&gt;Based on those documents, Sixth discloses that the VS Code extension has no server-side components and it connects directly to your chosen AI endpoints. They also have a zero-data-retention policy for code, so code and responses aren’t collected.&lt;/p&gt;

&lt;p&gt;Another point that stands out is their claim about Sixth being open-source, which it is not available on their official GitHub profile and seems odd since there's no evidence in the document to verify that claim. If you know of a different repository where they are hosting their code, please let me know.&lt;/p&gt;
&lt;h4&gt;
  
  
  Conclusion
&lt;/h4&gt;

&lt;p&gt;Sixth provides multiple features within one extension, like code completion, agentic actions like browser navigation, multiple-file changes and MCP actions. You can ask questions about your codebase, generate documentation, and also execute shell commands using the terminal.&lt;/p&gt;

&lt;p&gt;I believe that Sixth is a young startup, and I understand they still need to polish the product, but the lack of clear privacy policies, terms of service and transparency disclaimers makes me a bit worried about the legitimacy of this extension.&lt;/p&gt;

&lt;p&gt;I hope I'm being paranoid and it's all good, but we'll see.&lt;/p&gt;

&lt;p&gt;That said, I think Sixth has a lot of potential and I believe that it's worth giving it a try if you are looking for a solution that could give you access to multiple AI models, without the need to manage API keys or individual payments to each AI provider you want to use.&lt;/p&gt;


&lt;h3&gt;
  
  
  Code Web Chat
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;ChatGPT in Your VS Code&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Official site:&lt;br&gt;
&lt;a href="https://codeweb.chat/" rel="noopener noreferrer"&gt;https://codeweb.chat/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;VS Code Marketplace listing:&lt;br&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=robertpiosik.gemini-coder" rel="noopener noreferrer"&gt;https://marketplace.visualstudio.com/items?itemName=robertpiosik.gemini-coder&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub:&lt;br&gt;
&lt;a href="https://github.com/robertpiosik/CodeWebChat" rel="noopener noreferrer"&gt;https://github.com/robertpiosik/CodeWebChat&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Code Web Chat (CWC) is a free, open-source VS Code extension that connects your editor to AI chatbots in your web browser, which acts as a bridge between VS Code and all those web AI chat interfaces (ChatGPT, Claude, Bard/Gemini, etc.).&lt;/p&gt;

&lt;p&gt;Instead of copying code to ChatGPT and back, CWC lets you do it in one flow:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You select files or code in VS Code&lt;/li&gt;
&lt;li&gt;Type an instruction (like “Optimize this function” or “Explain this code”),&lt;/li&gt;
&lt;li&gt;And it will automatically open your browser and initialize a chat with the AI of your choice, pre-loaded with the selected code and prompt&lt;/li&gt;
&lt;li&gt;When the AI responds in the browser, CWC adds an “Apply” button so you can insert the answer back into your code with one click&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%2Fg1jyadssral54c2fnwjn.gif" 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%2Fg1jyadssral54c2fnwjn.gif" alt="Code Web Chat Demo"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Source:&lt;a href="https://codeweb.chat/" rel="noopener noreferrer"&gt;https://codeweb.chat/&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;To use CWC, you need to install the VS Code extension and then install the browser extension, because as I mentioned above, your prompt and context will be sent to the chatbot you choose to use. For example, you can use regular ChatGPT (free or Plus version) or other free chatbots via their web interfaces, without API keys or payments to the AI provider needed. Essentially, if there’s a web-based AI that can help with coding, CWC likely supports it.&lt;br&gt;
ed AI models&lt;/p&gt;
&lt;h4&gt;
  
  
  Supported AI models
&lt;/h4&gt;

&lt;p&gt;CWC supports some of the most popular chatbots and interacts with them via their web interface. This is the full list:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AI Studio&lt;/li&gt;
&lt;li&gt;ChatGPT&lt;/li&gt;
&lt;li&gt;Claude&lt;/li&gt;
&lt;li&gt;DeepSeek&lt;/li&gt;
&lt;li&gt;Doubao&lt;/li&gt;
&lt;li&gt;Gemini&lt;/li&gt;
&lt;li&gt;Grok&lt;/li&gt;
&lt;li&gt;Kimi&lt;/li&gt;
&lt;li&gt;Mistral&lt;/li&gt;
&lt;li&gt;Open WebUI&lt;/li&gt;
&lt;li&gt;OpenRouter Chat&lt;/li&gt;
&lt;li&gt;Perplexity&lt;/li&gt;
&lt;li&gt;Qwen&lt;/li&gt;
&lt;li&gt;Together&lt;/li&gt;
&lt;li&gt;Yuanbao&lt;/li&gt;
&lt;li&gt;Z.AI&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%2F4sov3udm3fsfxi5mmoka.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%2F4sov3udm3fsfxi5mmoka.png" alt="Supported chatbots by Code Web Chat"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  Features
&lt;/h4&gt;

&lt;p&gt;By installing the companion browser extension (&lt;a href="https://chromewebstore.google.com/detail/code-web-chat-connector/ljookipcanaglfaocjbgdicfbdhhjffp" rel="noopener noreferrer"&gt;Chrome&lt;/a&gt; and &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/code-web-chat-connector/" rel="noopener noreferrer"&gt;Firefox&lt;/a&gt;), CWC can launch these chats and inject your prompt and context hands-free. The extension doesn’t store the AI’s input or output, and you can review the answers before explicitly clicking “Apply” to paste the AI's response inside your code editor.&lt;/p&gt;

&lt;p&gt;Besides the browser chats, CWC also includes some basic API-based tools: you can configure an OpenAI-compatible API key (OpenAI, Azure, or local OAI-like APIs) to get inline code completions or run edits within VS Code. So it offers both real-time completions (like Copilot style) and the multi-file chat workflow.&lt;/p&gt;
&lt;h4&gt;
  
  
  Pricing
&lt;/h4&gt;

&lt;p&gt;Code Web Chat is MIT-licensed open source software and doesn’t charge anything. It’s a community-driven “free forever” project. The only costs would be optional: e.g. if you use an API that charges money (OpenAI API usage) or if you decide to donate to the developer. Otherwise, by using the free web UIs of AI models, you avoid paying.&lt;/p&gt;
&lt;h4&gt;
  
  
  Voice Support
&lt;/h4&gt;

&lt;p&gt;There’s no voice control in CWC, it’s all text-based. However, since it works with browser chat UIs, you could technically use something like Chrome’s voice typing or a browser extension for voice if you really wanted to dictate, but natively, CWC doesn’t handle voice commands.&lt;/p&gt;
&lt;h4&gt;
  
  
  Context Window
&lt;/h4&gt;

&lt;p&gt;CWC’s workflow allows a multi-file context. You can select multiple files or sections in VS Code and send them together to an AI chat prompt. The limitation is whatever the target AI’s context size is (ChatGPT has its token limit, Claude has its larger context, etc.). There’s no fancy vector database or code indexing here, it’s a funnel to the AI's UI chat interface.&lt;/p&gt;
&lt;h4&gt;
  
  
  MCP / Tools
&lt;/h4&gt;

&lt;p&gt;This extension doesn’t integrate with MCPs or tool use, because its philosophy is to keep things local and simple. It doesn’t run external commands and it just hands off to web AIs and brings back the results.&lt;/p&gt;
&lt;h4&gt;
  
  
  Privacy &amp;amp; Security
&lt;/h4&gt;

&lt;p&gt;Relevant links:&lt;br&gt;
&lt;a href="https://codeweb.chat/privacy" rel="noopener noreferrer"&gt;https://codeweb.chat/privacy&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;CWC claims that it doesn't collect telemetry or stash your code. The code you select is sent to the AI in your web browser, just as if you pasted it yourself. Since it’s open source, you can inspect their claims.&lt;/p&gt;
&lt;h4&gt;
  
  
  Conclusion
&lt;/h4&gt;

&lt;p&gt;In a nutshell, Code Web Chat turns your browser into a sidekick for VS Code. It’s lightweight and focused, with no complex features to configure. You do need to install a browser plugin and keep a browser open.&lt;/p&gt;

&lt;p&gt;I think this tool is best suited for devs who want to save money and don't need complex features. It's not as streamlined as other extensions explored here, but it gets the job done for simple tasks.&lt;/p&gt;


&lt;h3&gt;
  
  
  Syntx
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Autonomous AI Agent in Your Editor&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Official site:&lt;br&gt;
&lt;a href="https://syntx.dev/" rel="noopener noreferrer"&gt;https://syntx.dev/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;VS Code Marketplace listing:&lt;br&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=OrangecatTechPvtLtd.syntx" rel="noopener noreferrer"&gt;https://marketplace.visualstudio.com/items?itemName=OrangecatTechPvtLtd.syntx&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub:&lt;br&gt;
&lt;a href="https://github.com/OrangeCat-Technologies/SyntX" rel="noopener noreferrer"&gt;https://github.com/OrangeCat-Technologies/SyntX&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%2Fn2ftg0qn1ows32xe5vrk.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%2Fn2ftg0qn1ows32xe5vrk.png" alt="Syntx interface"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Syntx is an AI autonomous coding agent that works in VS Code, which started as a fork of the popular Roo-Code AI coding extension. It can read and write files in your project, run terminal commands, automate browser tasks, and integrate with popular AI models and custom models.&lt;br&gt;
models&lt;/p&gt;

&lt;p&gt;

  &lt;iframe src="https://www.youtube.com/embed/sY1AOOywlxQ"&gt;
  &lt;/iframe&gt;


&lt;/p&gt;

&lt;h4&gt;
  
  
  Supported AI models
&lt;/h4&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%2Fmyzoc75r4wddqwgw1gw9.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%2Fmyzoc75r4wddqwgw1gw9.png" alt="Supported models in Syntx"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Syntx allows multiple AI API providers, so you can access different proprietary models, either by adding your own API keys or through Syntx. Additionally, it allows you also use your own AI models, using LM Studio or Ollama.&lt;/p&gt;

&lt;p&gt;The complete list of API providers includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Amazon Bedrock&lt;/li&gt;
&lt;li&gt;Anthropic&lt;/li&gt;
&lt;li&gt;Chutes AI&lt;/li&gt;
&lt;li&gt;Claude Code&lt;/li&gt;
&lt;li&gt;DeepSeek&lt;/li&gt;
&lt;li&gt;GCP Vertex AI&lt;/li&gt;
&lt;li&gt;Glama&lt;/li&gt;
&lt;li&gt;Google Gemini&lt;/li&gt;
&lt;li&gt;Groq&lt;/li&gt;
&lt;li&gt;Human Relay&lt;/li&gt;
&lt;li&gt;LiteLLM&lt;/li&gt;
&lt;li&gt;LM Studio&lt;/li&gt;
&lt;li&gt;Mistral&lt;/li&gt;
&lt;li&gt;Ollama&lt;/li&gt;
&lt;li&gt;OpenAI&lt;/li&gt;
&lt;li&gt;OpenAI Compatible&lt;/li&gt;
&lt;li&gt;OpenRouter&lt;/li&gt;
&lt;li&gt;Requesty&lt;/li&gt;
&lt;li&gt;SyntX&lt;/li&gt;
&lt;li&gt;Unbound&lt;/li&gt;
&lt;li&gt;VS Code LM API&lt;/li&gt;
&lt;li&gt;xAI (Grok)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you use Syntx as your default provider, you can use the following models:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;claude-opus-4-20250514&lt;/li&gt;
&lt;li&gt;claude-sonnet-4-20250514&lt;/li&gt;
&lt;li&gt;claude-3-7-sonnet-latest&lt;/li&gt;
&lt;li&gt;claude-3-5-sonnet-latest&lt;/li&gt;
&lt;li&gt;claude-3-5-haiku-latest&lt;/li&gt;
&lt;li&gt;claude-opus-4-20250514-thinking&lt;/li&gt;
&lt;li&gt;claude-sonnet-4-20250514-thinking&lt;/li&gt;
&lt;li&gt;claude-3-7-sonnet-latest-thinking&lt;/li&gt;
&lt;li&gt;gpt-5&lt;/li&gt;
&lt;li&gt;gpt-4.1&lt;/li&gt;
&lt;li&gt;gpt-4.1-mini&lt;/li&gt;
&lt;li&gt;gpt-4.1-nano&lt;/li&gt;
&lt;li&gt;o3-mini&lt;/li&gt;
&lt;li&gt;o4-mini&lt;/li&gt;
&lt;li&gt;llama-3.3-70b-versatile&lt;/li&gt;
&lt;li&gt;meta-llama/llama-4-scout-17b-16e-instruct&lt;/li&gt;
&lt;li&gt;qwen-qwq-32b&lt;/li&gt;
&lt;li&gt;deepseek-r1-distill-llama-70b&lt;/li&gt;
&lt;li&gt;Kimi-K2&lt;/li&gt;
&lt;li&gt;perplexity-sonar-pro&lt;/li&gt;
&lt;li&gt;perplexity-sonar&lt;/li&gt;
&lt;li&gt;perplexity-sonar-premium&lt;/li&gt;
&lt;li&gt;perplexity-r1-1776&lt;/li&gt;
&lt;li&gt;perplexity-sonar-reasoning-pro&lt;/li&gt;
&lt;li&gt;perplexity-sonar-reasoning&lt;/li&gt;
&lt;li&gt;gemini-2.5-flash&lt;/li&gt;
&lt;li&gt;gemini-2.5-pro&lt;/li&gt;
&lt;li&gt;gemini-2.5-flash-thinking&lt;/li&gt;
&lt;li&gt;gemini-2.5-pro-thinking&lt;/li&gt;
&lt;li&gt;deepseek-v3&lt;/li&gt;
&lt;li&gt;deepseek-v3-premium&lt;/li&gt;
&lt;li&gt;Grok-4&lt;/li&gt;
&lt;li&gt;openrouter-deepseek-r1&lt;/li&gt;
&lt;li&gt;openrouter-claude-sonnet-4&lt;/li&gt;
&lt;li&gt;openrouter-gemini-2.5-pro&lt;/li&gt;
&lt;li&gt;openrouter-codestral-2501&lt;/li&gt;
&lt;li&gt;openrouter-magistral-medium-thinking&lt;/li&gt;
&lt;li&gt;openrouter-devstral-small&lt;/li&gt;
&lt;li&gt;GLM-4.5&lt;/li&gt;
&lt;li&gt;qwen3-coder&lt;/li&gt;
&lt;li&gt;gpt-oss&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Features
&lt;/h4&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%2Fa6dcjwkgp0ni6fre22sl.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%2Fa6dcjwkgp0ni6fre22sl.png" alt="Syntx available modes"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When you use Syntx, you’re not limited to one mode of operation. It provides multiple “Modes” or personas you can switch between depending on what you need. The available modes are:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Plan&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Intended to first prepare the assistant, based on your app's context, and it prepares the actions that the agent must follow&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Code&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Allows for code editing and generation inside your files&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Chat&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Which lets you make questions about your code&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Debug&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Used for code reviewing and fixing issues&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Orchestrator&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Which can be used to combine the other modes to execute complex operations&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Additionally, it allows you to create custom modes, so you could, for example, create a mode to generate documentation or security audits. The use of modes gives Syntx the possibility to adapt its style and the tools it uses based on context.&lt;/p&gt;

&lt;h4&gt;
  
  
  Pricing
&lt;/h4&gt;

&lt;p&gt;Syntx's extension is free to use if you use an API provider, and you only pay for the credits you consume through those providers or infrastructure costs if you host your own modes.&lt;/p&gt;

&lt;p&gt;Syntx, as an API provider, allows some free usage, but there's no free tier and doesn't have a trial to explore all features in-depth, which might be limiting if you want to test Syntx as your API provider without paying for an extended period of time. If you choose to use Syntx as your default provider, they charge $1 per credit plus a 15% platform fee + 3.37% processing fee, which amounts to $1.19 per credit.&lt;/p&gt;

&lt;h4&gt;
  
  
  Voice Support
&lt;/h4&gt;

&lt;p&gt;At the moment, Syntx doesn't have voice capabilities and it only operates through the chat interface and command palette. You type commands/instructions and the AI executes them.&lt;/p&gt;

&lt;h4&gt;
  
  
  Context Window
&lt;/h4&gt;

&lt;p&gt;Syntx can read multiple files, it can open and inspect parts of your project as needed, but it doesn't index all files in your project proactively.&lt;/p&gt;

&lt;h4&gt;
  
  
  MCP / Tools
&lt;/h4&gt;

&lt;p&gt;Syntx also has agentic capabilities via MCP servers and it can perform actions inside of your code on demand. Some actions include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Create, modify, or delete any file in your workspace files.&lt;/li&gt;
&lt;li&gt;Run shell commands in the VS Code terminal, so it can run your build, or git commands, etc., on request.&lt;/li&gt;
&lt;li&gt;Control a browser and automate actions to fetch info or run a web-based tool.&lt;/li&gt;
&lt;li&gt;Use external MCP tools, allowing you to plug in community or custom tools.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;MCP support means you could, for example, add a tool that calls an API or queries documentation, and Syntx’s AI could invoke that as part of solving a task. Syntx will execute commands only with your permission at each step.&lt;/p&gt;

&lt;h4&gt;
  
  
  Privacy &amp;amp; Security
&lt;/h4&gt;

&lt;p&gt;Relevant links:&lt;br&gt;
&lt;a href="https://syntx.dev/policy" rel="noopener noreferrer"&gt;https://syntx.dev/policy&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Because Syntx allows you to bring your own model and it’s open-source, you can use AI in your codebase, sending all data only to the AI provider you prefer. Although if you use Syntx as your API provider, it means that your code will be exposed to Syntx as well.&lt;/p&gt;

&lt;p&gt;One important security aspect is that because Syntx can run commands and edit files, you should only use it in directories and with projects where you’re okay with those kind of operations. By default, Syntx will always ask for confirmation before performing an action.&lt;/p&gt;
&lt;h4&gt;
  
  
  Conclusion
&lt;/h4&gt;

&lt;p&gt;Syntx offers code assistant capabilities, with a wide range of options and behaviours that allow for a lot of flexibility, for example, it figures out a plan and executes step by step, while confirming with you to make sure that it is only executing changes that you agree with.&lt;/p&gt;

&lt;p&gt;If you want to evaluate different models in your code or use different models for various tasks within your code, then Syntx will be an interesting option for you. &lt;/p&gt;


&lt;h3&gt;
  
  
  Tabby
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Self-Hosted Copilot Alternative&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Official site:&lt;br&gt;
&lt;a href="https://www.tabbyml.com/" rel="noopener noreferrer"&gt;https://www.tabbyml.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;VS Code Marketplace listing:&lt;br&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=TabbyML.vscode-tabby" rel="noopener noreferrer"&gt;https://marketplace.visualstudio.com/items?itemName=TabbyML.vscode-tabby&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub:&lt;br&gt;
&lt;a href="https://github.com/TabbyML/tabby" rel="noopener noreferrer"&gt;https://github.com/TabbyML/tabby&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tabby is an open-source, self-hosted AI coding assistant that provides code completions and a chat helper, much like GitHub Copilot, but you run it on your own machine or server.&lt;/p&gt;

&lt;p&gt;With Tabby, you must install the Tabby extension and also run the Tabby AI local server. The server hosts the actual AI models that generate code suggestions. The VS Code extension then communicates with this server to get completions or to answer questions. This architecture means your code and prompts stay within your environment.&lt;/p&gt;
&lt;h4&gt;
  
  
  Supported AI models
&lt;/h4&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%2Fqedj4zrkf3cy7iz6dhu9.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%2Fqedj4zrkf3cy7iz6dhu9.png" alt="Tabby AI models supported"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tabby doesn’t come with a single huge pretrained model like GPT-4 (that wouldn’t be open source or lightweight). Instead, Tabby supports various open-source LLMs for code. You can choose from models like StarCoder, CodeLlama, Qwen, among other options that the Tabby team has integrated.&lt;/p&gt;

&lt;p&gt;They provide a Model Registry listing open source models that they support and they can be used for three different purposes:&lt;/p&gt;
&lt;h5&gt;
  
  
  Completion models
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;StarCoder-1B&lt;/li&gt;
&lt;li&gt;StarCoder-3B&lt;/li&gt;
&lt;li&gt;StarCoder-7B&lt;/li&gt;
&lt;li&gt;StarCoder2-3B&lt;/li&gt;
&lt;li&gt;StarCoder2-7B&lt;/li&gt;
&lt;li&gt;CodeLlama-7B &lt;/li&gt;
&lt;li&gt;CodeLlama-13B &lt;/li&gt;
&lt;li&gt;DeepSeekCoder-1.3B &lt;/li&gt;
&lt;li&gt;DeepSeekCoder-6.7B &lt;/li&gt;
&lt;li&gt;CodeGemma-2B &lt;/li&gt;
&lt;li&gt;CodeGemma-7B &lt;/li&gt;
&lt;li&gt;CodeQwen-7B &lt;/li&gt;
&lt;li&gt;Qwen2.5-Coder-0.5B &lt;/li&gt;
&lt;li&gt;Qwen2.5-Coder-1.5B &lt;/li&gt;
&lt;li&gt;Qwen2.5-Coder-3B &lt;/li&gt;
&lt;li&gt;Qwen2.5-Coder-7B &lt;/li&gt;
&lt;li&gt;Qwen2.5-Coder-14B &lt;/li&gt;
&lt;li&gt;Codestral-22B &lt;/li&gt;
&lt;li&gt;DeepSeek-Coder-V2-Lite &lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;
  
  
  Chat models
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;Mistral-7B &lt;/li&gt;
&lt;li&gt;CodeGemma-7B-Instruct &lt;/li&gt;
&lt;li&gt;CodeQwen-7B-Chat &lt;/li&gt;
&lt;li&gt;Qwen2.5-Coder-0.5B-Instruct &lt;/li&gt;
&lt;li&gt;Qwen2.5-Coder-1.5B-Instruct &lt;/li&gt;
&lt;li&gt;Qwen2.5-Coder-7B-Instruct &lt;/li&gt;
&lt;li&gt;Qwen2.5-Coder-14B-Instruct &lt;/li&gt;
&lt;li&gt;Qwen2.5-Coder-32B-Instruct &lt;/li&gt;
&lt;li&gt;Qwen2-1.5B-Instruct &lt;/li&gt;
&lt;li&gt;Qwen3-0.6B &lt;/li&gt;
&lt;li&gt;Qwen3-1.7B &lt;/li&gt;
&lt;li&gt;Qwen3-4B&lt;/li&gt;
&lt;li&gt;Qwen3-8B&lt;/li&gt;
&lt;li&gt;Qwen3-14B&lt;/li&gt;
&lt;li&gt;Qwen3-32B&lt;/li&gt;
&lt;li&gt;Qwen3-30B-A3B&lt;/li&gt;
&lt;li&gt;Qwen3-235B-A22B&lt;/li&gt;
&lt;li&gt;Codestral-22B&lt;/li&gt;
&lt;li&gt;Yi-Coder-9B-Chat
&lt;/li&gt;
&lt;/ul&gt;
&lt;h5&gt;
  
  
  Embedding models
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;Nomic-Embed-Text&lt;/li&gt;
&lt;li&gt;Jina-Embeddings-V2-Code&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can also specify your own model by following the &lt;a href="https://github.com/TabbyML/tabby/blob/main/MODEL_SPEC.md" rel="noopener noreferrer"&gt;Tabby Model Specification&lt;/a&gt;.&lt;/p&gt;
&lt;h4&gt;
  
  
  Features
&lt;/h4&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%2Fagcs2nirotc44vuclzqs.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%2Fagcs2nirotc44vuclzqs.png" alt="Tabby chat"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tabby’s primary feature is autocomplete, so as you type, it suggests the code you need, including multi-line suggestions and whole function bodies in real-time.&lt;/p&gt;

&lt;p&gt;It also has a chat Q&amp;amp;A component, where you can ask questions about your code (e.g. “What does this function do?” or “How can I optimize this query?”) and it will answer, citing context from your code.&lt;/p&gt;

&lt;p&gt;There’s also an inline chat feature to give commands to modify selected code or generate via prompt (similar to Copilot’s “edit” functionality).&lt;/p&gt;

&lt;p&gt;Tabby also has a code browser, which allows you to explore files from your indexed repositories.&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%2F50kypvpxd66ihhphmjea.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%2F50kypvpxd66ihhphmjea.png" alt="Tabby code browser"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  Pricing
&lt;/h4&gt;

&lt;p&gt;Tabby is free, but if you're working with a team with more than 5 users, then you need to buy a subscription. The base subscription costs $19/month per user, so for a team of 6, it would be $114/month.&lt;/p&gt;

&lt;p&gt;Tabby doesn't charge you for inference, since you must handle the hosting for your AI models, so all compute costs would come from the hardware you use, rather than from Tabby.&lt;/p&gt;
&lt;h4&gt;
  
  
  Voice Support
&lt;/h4&gt;

&lt;p&gt;Tabby doesn't have support for voice commands.&lt;/p&gt;
&lt;h4&gt;
  
  
  Context Window
&lt;/h4&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%2Fc8it74fbsm566tts7u3e.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%2Fc8it74fbsm566tts7u3e.png" alt="Tabby context"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tabby can index git repositories from GitHub, GitLab and docs, but it doesn't index your local code. For chats, you can feed specific files within your code and docs, to tailor responses based on context.&lt;/p&gt;
&lt;h4&gt;
  
  
  MCP / Tools
&lt;/h4&gt;

&lt;p&gt;It doesn't support MCP servers or agentic behaviours.&lt;/p&gt;
&lt;h4&gt;
  
  
  Privacy &amp;amp; Security
&lt;/h4&gt;

&lt;p&gt;Relevant links:&lt;br&gt;
&lt;a href="https://www.tabbyml.com/terms" rel="noopener noreferrer"&gt;https://www.tabbyml.com/terms&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.tabbyml.com/privacy" rel="noopener noreferrer"&gt;https://www.tabbyml.com/privacy&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With Tabby, you must use self-hosted models, so your code doesn't leave your local environment. One point to note is that Tabby collects telemetry data on all self-hosted instances, which they claim is only used internally at Tabby.&lt;/p&gt;
&lt;h4&gt;
  
  
  Conclusion
&lt;/h4&gt;

&lt;p&gt;In short, Tabby is the “roll your own” solution. It’s meant for those who value privacy and control over convenience. You might not get OpenAI-level IQ, but it won’t surprise you with large bills. For small projects or learning purposes, using Tabby can also teach you how AI code assistants work under the hood.&lt;/p&gt;

&lt;p&gt;It's not the most plug-and-play tool out there, but if you are looking for a fully self-hosted solution, then Tabby is for you.&lt;/p&gt;


&lt;h3&gt;
  
  
  Augment Code
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;The Professional’s AI Copilot with Superpowers&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Official site:&lt;br&gt;
&lt;a href="https://www.augmentcode.com/" rel="noopener noreferrer"&gt;https://www.augmentcode.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;VS Code Marketplace listing:&lt;br&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=augment.vscode-augment" rel="noopener noreferrer"&gt;https://marketplace.visualstudio.com/items?itemName=augment.vscode-augment&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub:&lt;br&gt;
&lt;a href="https://github.com/augmentcode" rel="noopener noreferrer"&gt;https://github.com/augmentcode&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%2F3n7nouub5ywg5m7hsp4p.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%2F3n7nouub5ywg5m7hsp4p.png" alt="Augment interface"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Augment is an AI coding extension can handle context indexing. Based on feedback from their community, it seems they have a better context engine than other popular tools like Cursor and Windsurf, although I couldn't validate how true that is.&lt;/p&gt;
&lt;h4&gt;
  
  
  Supported AI models
&lt;/h4&gt;

&lt;p&gt;The models available within Augment depend on the mode you need to use. If you use the Chat mode, then Augment uses its own model and it doesn't have support for external models. When instead, you are using the agent mode (local or remote), then you can choose between &lt;strong&gt;Claude Sonnet 4&lt;/strong&gt; or &lt;strong&gt;OpenAI GPT-5&lt;/strong&gt;.&lt;/p&gt;
&lt;h4&gt;
  
  
  Features
&lt;/h4&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%2Fm3vtb03f0dyj1gb940ib.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%2Fm3vtb03f0dyj1gb940ib.png" alt="Augment MCP and integrations"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Augment has multiple interesting features, with one of its core features being its Context Engine, which indexes your codebase to generate suggestions and chat responses that are context-aware across your project.&lt;/p&gt;

&lt;p&gt;Other features include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Agent mode:&lt;/strong&gt; An AI agent that can complete high-level tasks like “Add a new API endpoint for X” by planning and making multiple edits across files. It’s aware of your frameworks, dependencies, schemas, etc.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Remote agent mode:&lt;/strong&gt; This mode uses the same agent as the local mode, but instead of running the agent locally, it runs it remotely, so you can use it in any environment.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;MCP servers:&lt;/strong&gt; Augment supports 100+ MCP tools and native integrations to expand what the agent can do. It ranges from database lookups to calling an external API during its reasoning.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Chat with Smart Apply:&lt;/strong&gt; The chat interface allows for Q&amp;amp;A with your codebase, but additionally, when it gives you an answer or code change, you can apply the suggested changes from the chat interface.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Next Edit:&lt;/strong&gt; This feature is a guided workflow for multi-step code changes, for example, if renaming a function might require updating references, docs, tests, the workflow walks you through each update required.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Inline Instructions and Completions:&lt;/strong&gt; You can use natural language to modify code directly inside your files, similar to how GitHub Copilot works. It can also do autocompletions as you type, which are based on the overall context of your project, rather than standalone suggestions.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  Pricing
&lt;/h4&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%2Fy51fxqn1nbgo0z28aysn.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%2Fy51fxqn1nbgo0z28aysn.png" alt="Augment pricing"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Augment Code is a closed-source, fully paid service, with a 7-day trial, which gives you code completions and Next Edit, and if you add a payment method, you get 50 chat messages free.&lt;/p&gt;

&lt;p&gt;They have 4 different pricing tiers and a custom plan for larger companies. Their prices start at $20/month.&lt;/p&gt;

&lt;p&gt;To get serious usage, you’d move to the Developer plan at $50/month, which gives you 600 messages/month and additional features like team collaboration and SOC2-grade security. They also have Pro $100/month for 1500 chat messages and Max $250/month for 4500 chat messages for higher volume.&lt;/p&gt;

&lt;p&gt;Completions and Next Edits are unlimited for all plans, while the message limits apply to chat/agent interactions. Regardless of your plan, if you exceed your message limit, Augment offers extra message packs of 100 messages for $15.&lt;/p&gt;
&lt;h4&gt;
  
  
  Voice Support
&lt;/h4&gt;

&lt;p&gt;Augment doesn't have voice control. It’s all text-based through their chat interface and code completions.&lt;/p&gt;
&lt;h4&gt;
  
  
  Context Window
&lt;/h4&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%2Fyrit13hwsbi6t4x1bl1q.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%2Fyrit13hwsbi6t4x1bl1q.png" alt="Augment code indexing"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Augment indexes your project folder, so the Context Engine can retrieve the most relevant pieces into the model, to keep code completions and chat constrained and cost-effective. If you have a multi-folder project, you can extend a project's context by linking to other folders containing relevant code for your project.&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%2F8aj8xr4f7hdwm82v0g22.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%2F8aj8xr4f7hdwm82v0g22.png" alt="Augment context control"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Beyond local files, Augment’s context can be extended with its tools and MCP servers. One example is the integration with GitHub, which can feed recent Git commit history so the Augment agent can reuse it to understand patterns and answer questions linked to previous changes, extending context beyond the current state of the code in your project.&lt;/p&gt;
&lt;h4&gt;
  
  
  MCP / Tools
&lt;/h4&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%2Fjexb1amdiv4n9lrqd3ze.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%2Fjexb1amdiv4n9lrqd3ze.png" alt="Augment MCP support"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Augment supports MCP servers so the Agent mode can use external tools and data sources, with one-click integrations for popular dev services like CircleCI, MongoDB, Redis, Honeycomb, Heroku, Render, and Vercel.&lt;/p&gt;

&lt;p&gt;You can also configure additional servers manually or import JSON configs. For control, Augment exposes tool permissions so you decide what the agent can do (e.g., running commands, editing files, calling integrations).&lt;/p&gt;
&lt;h4&gt;
  
  
  Privacy &amp;amp; Security
&lt;/h4&gt;

&lt;p&gt;Relevant links:&lt;br&gt;
&lt;a href="https://www.augmentcode.com/legal/privacy-policy" rel="noopener noreferrer"&gt;https://www.augmentcode.com/legal/privacy-policy&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.augmentcode.com/legal/community-terms-of-service" rel="noopener noreferrer"&gt;https://www.augmentcode.com/legal/community-terms-of-service&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.augmentcode.com/legal/professional-terms-of-service" rel="noopener noreferrer"&gt;https://www.augmentcode.com/legal/professional-terms-of-service&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.augmentcode.com/legal/enterprise-terms-of-service" rel="noopener noreferrer"&gt;https://www.augmentcode.com/legal/enterprise-terms-of-service&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Augment claims that it doesn't train its AI with your data, and all users get SOC 2 Type II compliance by default.&lt;/p&gt;

&lt;p&gt;Now, something confusing is that depending on what service tier you are using, their terms of service are different. For users on the Community tier, who are people using Augment code for free, the user's code and the responses generated are used for training, while the Professional and Enterprise tiers are not used for code.&lt;/p&gt;

&lt;p&gt;I suspect that the Community tier is no longer available, but some users might still have access to it, which is why they still list the Community terms.&lt;/p&gt;
&lt;h4&gt;
  
  
  Conclusion
&lt;/h4&gt;

&lt;p&gt;Augment positions itself as an agentic coding platform for large codebases, where you pay per user message, while “Next Edits” and completions are unlimited. Their Context Engine pulls the code, docs, and commit history into its responses, which adds an extra layer of accuracy.&lt;/p&gt;

&lt;p&gt;Additionally, their MCP support and integrations with other dev tools make it easy to wire build systems, databases, and deployment platforms to extend Augment's capabilities beyond just coding.&lt;/p&gt;

&lt;p&gt;If you work with large codebases and need code completions and agentic capabilities with context awareness, then Augment is an interesting alternative for you to explore.&lt;/p&gt;


&lt;h3&gt;
  
  
  GoCodeo
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Build &amp;amp; Ship Apps with an AI Agent&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Official site:&lt;br&gt;
&lt;a href="https://www.gocodeo.com/" rel="noopener noreferrer"&gt;https://www.gocodeo.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;VS Code Marketplace listing:&lt;br&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=GoCodeo.gocodeo" rel="noopener noreferrer"&gt;https://marketplace.visualstudio.com/items?itemName=GoCodeo.gocodeo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub:&lt;br&gt;
&lt;a href="https://github.com/gocodeo/" rel="noopener noreferrer"&gt;https://github.com/gocodeo/&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%2Fepayk9hopnrovx4ffdwe.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%2Fepayk9hopnrovx4ffdwe.png" alt="GoCodeo onboarding"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GoCodeo&lt;/strong&gt; is an AI coding agent that lives inside VS Code and helps you &lt;strong&gt;ask&lt;/strong&gt;, &lt;strong&gt;build&lt;/strong&gt;, and &lt;strong&gt;test&lt;/strong&gt;, from scaffolding full-stack apps to one-click deploys. It ships with workflow models for &lt;strong&gt;ASK&lt;/strong&gt;, &lt;strong&gt;BUILD&lt;/strong&gt; and &lt;strong&gt;TEST&lt;/strong&gt;. It also supports &lt;strong&gt;MCP&lt;/strong&gt; to wire up tools like GitHub, Notion, Postgres, and Stripe, for example, so agents can fetch external context and perform multi-step actions.&lt;/p&gt;

&lt;p&gt;

  &lt;iframe src="https://www.youtube.com/embed/3dNLxoinblU"&gt;
  &lt;/iframe&gt;


&lt;/p&gt;

&lt;h4&gt;
  
  
  Supported AI models
&lt;/h4&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%2Fwxk8ilq85jkv5m9r6lph.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%2Fwxk8ilq85jkv5m9r6lph.png" alt="GoCodeo AI models"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GoCodeo lets you pick models via a &lt;strong&gt;Model Selector&lt;/strong&gt;, listing 4 providers and specific options that include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Anthropic

&lt;ul&gt;
&lt;li&gt;Claude 3.5 Sonnet&lt;/li&gt;
&lt;li&gt;Claude 4 Sonnet&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;OpenAI

&lt;ul&gt;
&lt;li&gt;GPT-4.1&lt;/li&gt;
&lt;li&gt;o4-Mini&lt;/li&gt;
&lt;li&gt;GPT-4o Mini&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Google

&lt;ul&gt;
&lt;li&gt;Gemini-2.5-Pro&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;DeepSeek

&lt;ul&gt;
&lt;li&gt;DeepSeek-R1&lt;/li&gt;
&lt;li&gt;DeepSeek-V3&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;In GoCodeo, you need to bring your own API key for each provider you wish to use.&lt;/p&gt;

&lt;h4&gt;
  
  
  Features
&lt;/h4&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%2Fsrjbgzx43xfajzq5j9qx.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%2Fsrjbgzx43xfajzq5j9qx.png" alt="GoCodeo Build interface"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GoCodeo's features cover a wide range of tasks, from general Q&amp;amp;A to full-stack app development. Here's the full list of features:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Different modes for specific tasks within your code, which include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;ASK&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;This allows you to chat with the agent to &lt;strong&gt;ask over documents and images&lt;/strong&gt;, use a &lt;strong&gt;Terminal Helper&lt;/strong&gt; for command suggestions and a &lt;strong&gt;Terminal Debugger&lt;/strong&gt; for failed commands, and keep an organized &lt;strong&gt;chat history&lt;/strong&gt;. There’s also an &lt;strong&gt;Enhance Prompt&lt;/strong&gt; helper that expands simple asks into richer specs.&lt;/p&gt;

&lt;p&gt;To access the ASK mode, you can use the shortcut: &lt;strong&gt;Ctrl/Cmd + Shift + L&lt;/strong&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;BUILD&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Which is all about &lt;strong&gt;scaffolding front-end and back-end codebases&lt;/strong&gt;, with the following frameworks:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Front-end Templates&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;React&lt;/li&gt;
&lt;li&gt;Angular&lt;/li&gt;
&lt;li&gt;Vue.js&lt;/li&gt;
&lt;li&gt;Typescript&lt;/li&gt;
&lt;li&gt;Vite&lt;/li&gt;
&lt;li&gt;Next.js&lt;/li&gt;
&lt;li&gt;Astro&lt;/li&gt;
&lt;li&gt;Nuxt&lt;/li&gt;
&lt;li&gt;Svelte&lt;/li&gt;
&lt;li&gt;Remix&lt;/li&gt;
&lt;li&gt;Slidev&lt;/li&gt;
&lt;li&gt;Remotion&lt;/li&gt;
&lt;li&gt;Qwik&lt;/li&gt;
&lt;li&gt;Nativescript&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Back-end Templates&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Express.js&lt;/li&gt;
&lt;li&gt;node.js&lt;/li&gt;
&lt;li&gt;SpringBoot&lt;/li&gt;
&lt;li&gt;Django&lt;/li&gt;
&lt;li&gt;FastAPI&lt;/li&gt;
&lt;li&gt;ASP.net&lt;/li&gt;
&lt;li&gt;Ruby on Rails&lt;/li&gt;
&lt;li&gt;Laravel&lt;/li&gt;
&lt;li&gt;NestJS&lt;/li&gt;
&lt;li&gt;Flask&lt;/li&gt;
&lt;li&gt;Fastify&lt;/li&gt;
&lt;li&gt;Gin&lt;/li&gt;
&lt;li&gt;Echo&lt;/li&gt;
&lt;li&gt;koa&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;You can also use a visual &lt;strong&gt;scaffolding&lt;/strong&gt; panel, &lt;strong&gt;dependency management&lt;/strong&gt;, &lt;strong&gt;build history&lt;/strong&gt;, and &lt;strong&gt;one-click deploy&lt;/strong&gt; to Vercel. It also supports &lt;strong&gt;Supabase&lt;/strong&gt; for auth/data. You can attach an &lt;strong&gt;image to generate code&lt;/strong&gt;, and use &lt;strong&gt;@ references&lt;/strong&gt; to target files/symbols. &lt;/p&gt;

&lt;p&gt;The BUILD mode shortcut is: &lt;strong&gt;Ctrl/Cmd + Shift + K&lt;/strong&gt;&lt;/p&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;TEST&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;Used to generate unit tests in multiple languages, and execute them with a built-in runner (e.g., Python/JS/Java/Go). You get &lt;strong&gt;AI debugging insights&lt;/strong&gt;, and can apply &lt;strong&gt;auto-fixes&lt;/strong&gt; when reviewing the results.&lt;/p&gt;


&lt;/li&gt;

&lt;li&gt;&lt;p&gt;GoCodeo supports MCP servers, which can be declared in a &lt;code&gt;mcp.json&lt;/code&gt; file, and allows you to add &lt;strong&gt;Global MCP servers&lt;/strong&gt;, browse &lt;strong&gt;community MCP servers&lt;/strong&gt;, and let the agent &lt;strong&gt;auto-select&lt;/strong&gt; tools per request. You get &lt;strong&gt;inline logs and reasoning&lt;/strong&gt; for each tool call.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Context handling&lt;/strong&gt; by using &lt;strong&gt;@Files&lt;/strong&gt; and &lt;strong&gt;@Code&lt;/strong&gt; to reference file paths or specific code sections, plus the option to attach &lt;strong&gt;documents/images&lt;/strong&gt; as context to generate answers.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;WebSearch (@Web)&lt;/strong&gt; powered by Perplexity, to find relevant documentation.&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;Auto-generate README files&lt;/strong&gt; by analyzing repository contents&lt;/p&gt;&lt;/li&gt;

&lt;li&gt;&lt;p&gt;&lt;strong&gt;GitHub pull-request assistance&lt;/strong&gt; to create and manage pull request, with reference generation.&lt;/p&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;h4&gt;
  
  
  Pricing
&lt;/h4&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%2Fore2a5zz38k5zn8f4voe.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%2Fore2a5zz38k5zn8f4voe.png" alt="GoCodeo pricing"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There are &lt;strong&gt;two stories&lt;/strong&gt; depending on where you look:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;On the &lt;strong&gt;VS Code Marketplace&lt;/strong&gt;, GoCodeo’s FAQ says it’s &lt;strong&gt;“now completely free because you bring your own API keys”&lt;/strong&gt;, with no per-token charges, and you control provider costs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;On GoCodeo’s &lt;strong&gt;website pricing page&lt;/strong&gt;, there are tiers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Hobby (Free)&lt;/strong&gt; with quotas for premium model requests, autocompletions, and deployments&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Starter ($9/month)&lt;/strong&gt; and &lt;strong&gt;Pro ($19/month)&lt;/strong&gt;, with higher limits, including daily Claude Sonnet allowances.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;In practice, this suggests two pricing models, one free where you &lt;strong&gt;bring your own API keys&lt;/strong&gt;, and the other, which is paid, where you access the models via &lt;strong&gt;GoCodeo-metered usage&lt;/strong&gt;, if you want built-in usage without managing keys.&lt;/p&gt;

&lt;p&gt;Although to me it seems odd that there are limits on the free tier, if you have to bring your own API key, I suppose it could be due to the costs generated from handling the requests that the extension has to perform.&lt;/p&gt;

&lt;h4&gt;
  
  
  Voice Support
&lt;/h4&gt;

&lt;p&gt;GoCodeo doesn’t have built-in microphone/voice control in the VS Code extension. Interaction is all text-based for all ASK/BUILD/TEST modes.&lt;/p&gt;

&lt;h4&gt;
  
  
  Context Window
&lt;/h4&gt;

&lt;p&gt;GoCodeo treats “context” as what you attach or reference, then streams only the relevant pieces to the model you pick:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;@Files to reference files.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;@Code to reference exact code snippets.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Document and image attachments (PDF/DOC, UI mocks) as additional context.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  MCP / Tools
&lt;/h4&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%2Fbi4opxtjrlms9osjrhpn.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%2Fbi4opxtjrlms9osjrhpn.png" alt="GoCodeo MCP"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;MCP servers must be manually set up in GoCodeo, which can be defined in an &lt;code&gt;mcp.json&lt;/code&gt; file, and allows you to add &lt;strong&gt;Global MCP servers&lt;/strong&gt;. The user experience is not as smooth as other AI extensions we explored so far.&lt;/p&gt;

&lt;p&gt;There are no additional integrations to other services inside GoCodeo.&lt;/p&gt;

&lt;h4&gt;
  
  
  Privacy &amp;amp; Security
&lt;/h4&gt;

&lt;p&gt;Relevant links:&lt;br&gt;
&lt;a href="https://www.gocodeo.com/terms-of-use" rel="noopener noreferrer"&gt;https://www.gocodeo.com/terms-of-use&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GoCodeo doesn't have standalone pages for terms of service or privacy policy on its homepage and instead has a "Terms of Use" page, which covers some points, but in a very short and generic way.&lt;/p&gt;

&lt;p&gt;They claim that your usage data might be used to improve their services, and that customer data is never shared or sold, but they don't specify what they classify as usage data or customer data, or if your code is used for training.&lt;/p&gt;

&lt;h4&gt;
  
  
  Conclusion
&lt;/h4&gt;

&lt;p&gt;GoCodeo seems ok to explore if you are comfortable with the lack of transparency around their data policies. Maybe they are just a young startup and they will improve their policies as they grow.&lt;/p&gt;

&lt;p&gt;Their lack of consistency around pricing is also odd, and it's not clear if the limits apply as a trial or if they apply even if you add your own API keys.&lt;/p&gt;

&lt;p&gt;If you are an individual developer who likes to test out different tools, then GoCodeo might be a good option for you to explore. However, if you work at a company that has strict rules around data privacy, then I would avoid using this extension.&lt;/p&gt;




&lt;h3&gt;
  
  
  Vibe Coder
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Voice-Driven Coding with AI&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Official site:&lt;br&gt;
&lt;a href="https://deepgram.com/" rel="noopener noreferrer"&gt;https://deepgram.com/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;VS Code Marketplace listing:&lt;br&gt;
&lt;a href="https://marketplace.visualstudio.com/items?itemName=Deepgram.vibe-coder" rel="noopener noreferrer"&gt;https://marketplace.visualstudio.com/items?itemName=Deepgram.vibe-coder&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub:&lt;br&gt;
&lt;a href="https://github.com/deepgram/vibe_coder" rel="noopener noreferrer"&gt;https://github.com/deepgram/vibe_coder&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%2Fgf9fax7c3an03kasmra3.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%2Fgf9fax7c3an03kasmra3.png" alt="Vibe Coder interface"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Vibe Coder is a different flavor of AI coding assistant. Vibe Coder is a voice-first coding assistant by Deepgram, a company focused on voice assist. This extension lets you interact with VS Code and generate code using natural voice commands. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Important&lt;/strong&gt;&lt;br&gt;
Vibe Coder seems to be in a very early stage and hasn't been updated in a while, which might explain why, while I was trying it, I couldn't get the Vibe mode to work, so I can't speak about its capabilities for vibe coding. The Code mode worked fine, and I'll try it out in my workflow when writing blogs.&lt;/p&gt;

&lt;h4&gt;
  
  
  Supported AI models
&lt;/h4&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%2Fjbqlbmn96w329duevkgz.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%2Fjbqlbmn96w329duevkgz.png" alt="Vibe Coder prompts"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Vibe Coder uses their own model for voice-to-text, and then they use OpenAI for the AI response generation, although from their documentation, it's not clear what model they use, but from their repository, you can see that they use &lt;code&gt;gpt-4-turbo-preview&lt;/code&gt;, and during testing it showed on my usage dashboard as &lt;strong&gt;gpt-4-0125-preview&lt;/strong&gt;, which is the right model ID. I couldn't find a way to change the model from the extension settings, but in theory, it should be possible by using the source code to self-host the extension.&lt;/p&gt;

&lt;h4&gt;
  
  
  Features
&lt;/h4&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%2Ft0xk298bd4skyfu6gxih.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%2Ft0xk298bd4skyfu6gxih.png" alt="Vibe Coder code chat mode"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Since I couldn't test the Vibe mode, I can only speak about the Code mode with certainty, but I'll list other features that I found in the documentation and marketplace listing for Vibe Coder, and will separate them into two main categories, verified and unverified:&lt;/p&gt;

&lt;h5&gt;
  
  
  Verified features
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Code mode (dictation and voice-to-text chat): Speak code/instructions, the extension sends your transcript to the DeepGram API for transcription, and then using customizable prompts (e.g., “debug this,” “fix typos,” “make it idiomatic ”), uses OpenAI to generate the response, and copies the result to your clipboard.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Cross-platform mic support: Uses SoX (macOS/Windows) or ALSA tools (Linux) for audio capture; includes commands to test and list microphones and per-OS device settings.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h5&gt;
  
  
  Unverified features
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Vibe mode (voice agent): Brainstorm ideas, validate approaches, and even ask it to generate a product spec at the end of the conversation or code snippets. As I mentioned before, I couldn't get this mode to work, so I can't speak about its capabilities.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Voice commands and navigation: Sample commands include “open the file index.js,” “create a new file,” “show explorer,” “tell me about this codebase.”&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Besides these features, DeepGram claims in the Vibe Coder marketplace listing to be working on other future improvements like adding project context and MCP capabilities, but the last update of their extension was in February 2025, so I'm not sure if they are still actively working on it.&lt;/p&gt;

&lt;h4&gt;
  
  
  Pricing
&lt;/h4&gt;

&lt;p&gt;Vibe Coder is free to use, but you need to provide your own API keys for DeepGram and OpenAI. There are no additional costs associated with using the extension.&lt;/p&gt;

&lt;h4&gt;
  
  
  Voice Support
&lt;/h4&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%2Fl7gezarad4akqlb5hr3v.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%2Fl7gezarad4akqlb5hr3v.png" alt="Deepgram dashboard"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Vibe-Coder is voice-first, all you need to do is open the Vibe Coder panel with &lt;code&gt;Cmd/Ctrl + Shift + V&lt;/code&gt;, select the model you want to use, and start/stop dictation with &lt;code&gt;Cmd/Ctrl + Shift + D&lt;/code&gt;. You can't continuously talk to the agent, you need to stop and start the dictation to send the prompt to OpenAI to get a response.&lt;/p&gt;

&lt;p&gt;The extension includes cross-platform mic support and requires system audio tools (SoX on macOS/Windows, ALSA utilities on Linux) for capture.&lt;/p&gt;

&lt;h4&gt;
  
  
  Context Window
&lt;/h4&gt;

&lt;p&gt;Vibe-Coder doesn't have a way to index projects, which is odd since the Vibe mode would require a way to understand the context of the project to be useful.&lt;/p&gt;

&lt;h4&gt;
  
  
  MCP / Tools
&lt;/h4&gt;

&lt;p&gt;There’s no MCP support yet. The public roadmap calls out “Add MCP capability to the Vibe mode agent,” indicating tool-calling via MCP is a future enhancement rather than a current feature.&lt;/p&gt;

&lt;h4&gt;
  
  
  Privacy &amp;amp; Security
&lt;/h4&gt;

&lt;p&gt;Relevant links:&lt;br&gt;
&lt;a href="https://deepgram.com/privacy" rel="noopener noreferrer"&gt;https://deepgram.com/privacy&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The extension is open-source, so you can check their code, while the audio is sent to Deepgram for processing. The extension doesn't store audio itself and all conversations are handled under Deepgram’s privacy policy. From the repository of Vibe Coder, it seems that once the audio is processed, it is then sent to OpenAI.&lt;/p&gt;

&lt;p&gt;DeepGram doesn't have a privacy policy or terms of service for Vibe Coder, so it's hard to know what they do with the audio and the conversations in the released extension.&lt;/p&gt;

&lt;h4&gt;
  
  
  Conclusion
&lt;/h4&gt;

&lt;p&gt;Vibe Coder is an interesting initiative to explore voice-first coding, but as I mentioned, the fact that the product hasn't been updated in the past months makes me question if it's still actively maintained. &lt;/p&gt;

&lt;p&gt;If you want to experiment with voice coding, give Vibe Coder a try, although I couldn't get the Vibe mode to work on my machine. 🥲&lt;/p&gt;




&lt;h2&gt;
  
  
  Comparing the Extensions
&lt;/h2&gt;

&lt;p&gt;In summary, let's compare all extensions:&lt;/p&gt;

&lt;h3&gt;
  
  
  Pricing
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Extension&lt;/th&gt;
&lt;th&gt;Plans&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Sixth AI&lt;/td&gt;
&lt;td&gt;Free with limits and paid from $10/month or $7/month if you take the annual plans.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Code Web Chat&lt;/td&gt;
&lt;td&gt;Free and also open source&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Syntx&lt;/td&gt;
&lt;td&gt;Free if you bring your own API keys or paid if you use Syntx credits to access AI models, for $1 per credit + 15% platform fee + 3.37% Razorpay fee&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tabby&lt;/td&gt;
&lt;td&gt;Self-hosted models only, Free for up to 5 users, paid for teams $19/user/month up to 50 users and custom pricing for Enterprise&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Augment Code&lt;/td&gt;
&lt;td&gt;No free plans, Entry tier $20/month, Developer $50/month, Pro $100/month, Max $250/month and Enterprise custom pricing&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GoCodeo&lt;/td&gt;
&lt;td&gt;Free with limits or fully free if you bring your own API keys, paid plans Starter $9/month or $85/year, and Pro $19/month or $182/year&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vibe Coder&lt;/td&gt;
&lt;td&gt;Free to use, but you must bring your own API keys for Deepgram and OpenAI&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Code base indexing and context window
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Extension&lt;/th&gt;
&lt;th&gt;Summary&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Sixth AI&lt;/td&gt;
&lt;td&gt;Project indexing with automatic file exploration and user-guided context&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Code Web Chat&lt;/td&gt;
&lt;td&gt;No indexing, sends selected code to the target web chatbot and it's limited by that model’s context&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Syntx&lt;/td&gt;
&lt;td&gt;No indexing, but you can add files to your chat prompts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tabby&lt;/td&gt;
&lt;td&gt;No indexing, but you can add files to chat prompts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Augment Code&lt;/td&gt;
&lt;td&gt;Context Engine indexes the project folder and you can link additional folders&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GoCodeo&lt;/td&gt;
&lt;td&gt;No indexing, but context can be added to prompts via @Files, @Code and attachments&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vibe Coder&lt;/td&gt;
&lt;td&gt;No indexing, but in Vibe mode, the assistant should, in theory, be able to read files&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  MCP, tools and integrations
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Extension&lt;/th&gt;
&lt;th&gt;Summary&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Sixth AI&lt;/td&gt;
&lt;td&gt;MCP servers supported, can read/write files, run commands, use browser tool and terminal helper&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Code Web Chat&lt;/td&gt;
&lt;td&gt;No MCP, browser connector to many chatbots&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Syntx&lt;/td&gt;
&lt;td&gt;MCP servers supported, file edits, shell and browser automation with step approvals&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tabby&lt;/td&gt;
&lt;td&gt;No MCP, no browser tools or integrations&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Augment Code&lt;/td&gt;
&lt;td&gt;MCP servers supported with easy integrations like CircleCI, MongoDB, and others&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GoCodeo&lt;/td&gt;
&lt;td&gt;MCP support via &lt;code&gt;mcp.json&lt;/code&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vibe Coder&lt;/td&gt;
&lt;td&gt;No MCP or other integrations&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Privacy and security
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Extension&lt;/th&gt;
&lt;th&gt;Summary&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Sixth AI&lt;/td&gt;
&lt;td&gt;Doesn't sell data, and doesn't use your code for training, closed source, routes requests via vendor servers, no published privacy policy or terms of service&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Code Web Chat&lt;/td&gt;
&lt;td&gt;Doesn't sell data, and doesn't use your code for training, open source, runs locally, sends code only to the chosen AI in your browser&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Syntx&lt;/td&gt;
&lt;td&gt;Doesn't sell data, and doesn't use your code for training, open source, confirms before performing actions&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Tabby&lt;/td&gt;
&lt;td&gt;Self-hosted, code stays in your environment&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Augment Code&lt;/td&gt;
&lt;td&gt;Closed source, states no training on your data, although there's a Community plan where user data is used for training, SOC 2 Type II&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GoCodeo&lt;/td&gt;
&lt;td&gt;No dedicated privacy policy or terms on homepage noted in article, generic Terms of Use, usage data wording is unclear&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Vibe Coder&lt;/td&gt;
&lt;td&gt;Open source, audio is sent to Deepgram for processing and then directed to OpenAI, covered by Deepgram privacy policy, there's no separate Vibe Coder privacy policy&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Closing thoughts
&lt;/h2&gt;

&lt;p&gt;So hopefully now I have given you some new tools to explore and maybe even to use in production, who knows.&lt;/p&gt;

&lt;p&gt;I tried to make this post as neutral as possible, although, as you might have noticed, whenever I saw providers without clear privacy policies and terms of use, I tend to be negative about those providers, because it is important for me to know what happens with our data, especially for production.&lt;/p&gt;

&lt;p&gt;If there's anything in this article that you disagree with or if you find any mistakes, please let me know, because it's important for me to know how I can improve my posts.&lt;/p&gt;




&lt;p&gt;If you try any of these tools, please let me know how your experience was!&lt;/p&gt;




&lt;p&gt;That's all for now, see you 😌&lt;/p&gt;

&lt;p&gt;&lt;a href="https://diploi.com/" rel="noopener noreferrer"&gt;Launch apps with a single click 👉&lt;/a&gt;✨&lt;/p&gt;




&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://trysixth.com/" rel="noopener noreferrer"&gt;https://trysixth.com/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://codeweb.chat/" rel="noopener noreferrer"&gt;https://codeweb.chat/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://syntx.dev/" rel="noopener noreferrer"&gt;https://syntx.dev/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.tabbyml.com/" rel="noopener noreferrer"&gt;https://www.tabbyml.com/&lt;/a&gt;&lt;br&gt;
&lt;a href="http://augmentcode.com/" rel="noopener noreferrer"&gt;http://augmentcode.com/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.gocodeo.com/" rel="noopener noreferrer"&gt;https://www.gocodeo.com/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://github.com/deepgram/vibe_coder/tree/main/src" rel="noopener noreferrer"&gt;https://github.com/deepgram/vibe_coder/tree/main/src&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>extensions</category>
      <category>vscode</category>
      <category>learning</category>
    </item>
    <item>
      <title>UI Clutterification, do you know it?</title>
      <dc:creator>Javier Hernandez</dc:creator>
      <pubDate>Thu, 03 Jul 2025 08:08:59 +0000</pubDate>
      <link>https://dev.to/wickathou/ui-clutterification-do-you-know-it-1g4d</link>
      <guid>https://dev.to/wickathou/ui-clutterification-do-you-know-it-1g4d</guid>
      <description>

&lt;p&gt;You go fast! You push new features! You have 1000+1 features now! Then one day you look at your product after taking a day off and coming back clear-minded, and after 2 seconds looking at it, you think:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“How tf did this screen become so… f#ck3d up?”&lt;/p&gt;
&lt;/blockquote&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%2Fm2xubx6i4i5qivoyys73.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%2Fm2xubx6i4i5qivoyys73.png" alt="From simple to clutter" width="800" height="435"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Yep... Welcome to the joys of &lt;strong&gt;UI Clutterification&lt;/strong&gt; a slow, but steady build-up of buttons, menus, and panels that bury the essentials, which &lt;strong&gt;will&lt;/strong&gt; happen to your product at some point&lt;/p&gt;




&lt;h2&gt;
  
  
  What is UI Clutterification?
&lt;/h2&gt;

&lt;p&gt;In the simplest terms possible, Clutterification is when you try to add EVERY SINGLE THING you know your users need, plus the ones you think they need, in areas you assume they will need those features to be, while ensuring that all features are visible in the (mostly unintentionally) worst way possible&lt;/p&gt;

&lt;p&gt;It is a gradual accumulation of interface elements, added without a clear hierarchy. Each addition may seem harmless, even necessary, but over time the product devolves into your average Microsoft or SAP UI experience. Users struggle to find what they need, and teams lose clarity on what truly matters&lt;/p&gt;

&lt;p&gt;It's a (usually unavoidable) part of software development, so no shame friend 🤗&lt;/p&gt;




&lt;h2&gt;
  
  
  Why it happens?
&lt;/h2&gt;

&lt;p&gt;In a nutshell, this happens because it is natural, you try to add more stuff thinking "users need this", and it grows faster when: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Speed-First Mindset&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Startups and agile teams often prioritize shipping features quickly. In the rush, design takes a backseat constantly...&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Feature Guesswork&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You do something, all programmers are incredible at... guessing and assuming, since we are ALWAYS right, because, well... "I can code! I'm a genius!" (don't act like you haven't thought that). Without consistent user research, teams guess where new controls belong. "Users will know to look here”, until they don’t&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;“More Is Best” Fallacy&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When users start dropping out, you decide not to "waste" time talking with them, so the solution is to add more "useful" features and display information that no one has asked for. It’s tempting to expose every capability in the UI, assuming visibility equals adoption. In reality, this causes more confusion&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  How to recognize it?
&lt;/h2&gt;

&lt;p&gt;If your product looks like your typical MS Office app, then you have reached apex clutter, but let's break it down a bit:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Menus Packed with Options&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Scrolling forever to find the one action you need&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Unclear Calls-to-Action&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Multiple buttons compete for attention, leaving users uncertain what to click first&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Recurring “Where Is X?” Support Tickets&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;When your support queue is full of “how do I…?” questions, it’s a sure sign key features are hidden in plain sight&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The sure way solution to declutter
&lt;/h2&gt;

&lt;p&gt;Great, now you figured that your app is cluttered, what to do next? Well, the only thing that will for sure help you declutter your app is to &lt;strong&gt;TALK TO YOUR USERS!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Setup a call with some of your key users, new users, and also people who haven't tried your product yet, and ask them to share their screen so you can see firsthand, how they interact with your product&lt;/p&gt;

&lt;p&gt;I know it sounds insane, but it is not, some users will be thrilled to be interviewed and share their experience with you!&lt;/p&gt;




&lt;h2&gt;
  
  
  High-Level Remedies
&lt;/h2&gt;

&lt;p&gt;If talking with users sounds too overwhelming, try these:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Rate features by using frequency and priority&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Find what elements are “core” (used daily), “occasional,” or “rare”&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Reorganize how element hierarchy is presented&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Move “core” items front and center&lt;/li&gt;
&lt;li&gt;Relocate “occasional” tools into a secondary panel&lt;/li&gt;
&lt;li&gt;Archive or remove “rare” features, or hide them under advanced settings&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Group related features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Apply consistent patterns (e.g., all reporting tools in one dropdown)&lt;/li&gt;
&lt;li&gt;Use visual separators or tabs to signal different functional areas&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Progressive disclosure&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Show only the most common actions by default&lt;/li&gt;
&lt;li&gt;Hide advanced or infrequently used controls behind an “Advanced” panel or contextual menu&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;p&gt;&lt;strong&gt;Ongoing user testing&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Schedule brief usability sessions regurlaly&lt;/li&gt;
&lt;li&gt;Watch real users navigate the product—note where they hesitate or ask for help.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;I'm repeating myself with point 5, because there's no world in which you can declutter your product without asking your users...&lt;/p&gt;




&lt;h2&gt;
  
  
  Did you declutter?
&lt;/h2&gt;

&lt;p&gt;Cool, but know this, you can declutter here and there but as your product evolves, new people join your team, others leave, investors want this and that, users needs change, you will have clutter again, and that's ok&lt;/p&gt;

&lt;p&gt;As I said, it's natural&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%2Fmedia1.giphy.com%2Fmedia%2Fv1.Y2lkPTc5MGI3NjExZ2tmczF4cjVtcnpydjdvaWF0MWFvem5zMGoxcnVieW1waGNrc3AxciZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw%2FDCsTuBZx1I76L9GXUP%2Fgiphy.gif" 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%2Fmedia1.giphy.com%2Fmedia%2Fv1.Y2lkPTc5MGI3NjExZ2tmczF4cjVtcnpydjdvaWF0MWFvem5zMGoxcnVieW1waGNrc3AxciZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw%2FDCsTuBZx1I76L9GXUP%2Fgiphy.gif" alt="recurrent pain" width="480" height="270"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Handling your own Clutterification
&lt;/h2&gt;

&lt;p&gt;Wherever I have worked before, we didn't figure out that our UI was cluttered, but there were signs whenever users weren't able to figure out the product, but we, the devs, didn't see it since we are in way too deep&lt;/p&gt;

&lt;p&gt;This will sounds cliche, but it's the ONLY WAY to figure out how to keep your product focused on what your users need, &lt;strong&gt;talking to your users&lt;/strong&gt;, that's the only way to understand what users are struggling with, and hands down the issue tends to be that your UI became difficult to decipher and feels too complex 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%2Fmedia0.giphy.com%2Fmedia%2Fv1.Y2lkPTc5MGI3NjExY3JrZm85Y2t6Z20zYXowdGFlZWs4b3JvaWY5MWlkMmNsaGNrdXZhdyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw%2FYoD0G5DJhlqPkDKbS5%2Fgiphy.gif" 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%2Fmedia0.giphy.com%2Fmedia%2Fv1.Y2lkPTc5MGI3NjExY3JrZm85Y2t6Z20zYXowdGFlZWs4b3JvaWY5MWlkMmNsaGNrdXZhdyZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw%2FYoD0G5DJhlqPkDKbS5%2Fgiphy.gif" alt="in too deep" width="" height=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Closing thoughts
&lt;/h2&gt;

&lt;p&gt;There's something I haven't mention here yet... All companies I worked with struggling with churn due to UI complexity did not have an in-house designer...&lt;/p&gt;

&lt;p&gt;Why? Well... Because "I know design"&lt;/p&gt;

&lt;p&gt;That was the average response I got. So hire an actual designer, it will payback for you. Why else you think that big companies pay LOTS of money? Because "they can afford it"? If you believe that, your business deserves to go bankrupt&lt;/p&gt;




&lt;p&gt;Until the next time! 🙂&lt;/p&gt;




&lt;h4&gt;
  
  
  &lt;a href="https://diploi.com/?utm=devto-cluter" rel="noopener noreferrer"&gt;try Diploi for free ✨&lt;/a&gt;
&lt;/h4&gt;




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

&lt;p&gt;&lt;a href="https://medium.com/design-bootcamp/the-art-of-simplifying-user-interfaces-less-is-more-d690d96bed46" rel="noopener noreferrer"&gt;https://medium.com/design-bootcamp/the-art-of-simplifying-user-interfaces-less-is-more-d690d96bed46&lt;/a&gt;&lt;br&gt;
&lt;a href="https://blush.design/blog/post/guide-ui-design" rel="noopener noreferrer"&gt;https://blush.design/blog/post/guide-ui-design&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ui</category>
      <category>ux</category>
      <category>webdev</category>
      <category>design</category>
    </item>
    <item>
      <title>The easiest way to start new Django and Hono apps, literally one click</title>
      <dc:creator>Javier Hernandez</dc:creator>
      <pubDate>Tue, 01 Jul 2025 08:20:07 +0000</pubDate>
      <link>https://dev.to/diploi/the-easiest-way-to-start-new-django-and-hono-apps-literally-one-click-141e</link>
      <guid>https://dev.to/diploi/the-easiest-way-to-start-new-django-and-hono-apps-literally-one-click-141e</guid>
      <description>&lt;h6&gt;
  
  
  Hono and Django now available on Diploi
&lt;/h6&gt;

&lt;p&gt;There are two powerful new additions to Diploi, &lt;strong&gt;Hono&lt;/strong&gt; and &lt;strong&gt;Django&lt;/strong&gt;!&lt;/p&gt;

&lt;p&gt;These frameworks are now officially supported, meaning you can deploy, host, and manage full applications with Hono or/and Django with one click&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;TLDR?&lt;/strong&gt; Sure, to launch a &lt;strong&gt;Hono&lt;/strong&gt; app, go to &lt;a href="https://diploi.com/component/hono" rel="noopener noreferrer"&gt;https://diploi.com/component/hono&lt;/a&gt; and for &lt;strong&gt;Django&lt;/strong&gt; apps, go to &lt;a href="https://diploi.com/component/django" rel="noopener noreferrer"&gt;https://diploi.com/component/django&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What is Hono?
&lt;/h2&gt;

&lt;p&gt;From their &lt;a href="https://hono.dev/docs/" rel="noopener noreferrer"&gt;docs&lt;/a&gt;,&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;is a small, simple, and ultrafast web framework built on Web Standards. It works on any JavaScript runtime: Cloudflare Workers, Fastly Compute, Deno, Bun, Vercel, Netlify, AWS Lambda, Lambda@Edge, and Node.js.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Hono is mainly used for backend applications, like APIs, proxy servers, edge apps, and typical servers, but that's not all, it can also serve HTML and UI components, so it is appropiate to think of Hono as a fullstack framework. You can think of Hono as a modern alternative to Express, which supports Typescript and can be used with the most popular runtimes available&lt;/p&gt;

&lt;p&gt;Hono aims to make your life easier by enabling API Spec and type inference via Hono's RPC, which transforms how you can share types and API expected responses between server and client, into a smooth experience. Additionally, Hono has multiple helpers and middlewares to handle typical operations, like managing Cookies, JWT, Webhooks, authentication, and headers, so you don't need external libraries to handle these actions&lt;/p&gt;

&lt;p&gt;To launch a Hono app instantly, check out this link &lt;a href="https://diploi.com/component/hono" rel="noopener noreferrer"&gt;https://diploi.com/component/hono&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  What is Django?
&lt;/h2&gt;

&lt;p&gt;From their &lt;a href="https://www.djangoproject.com/" rel="noopener noreferrer"&gt;homepage&lt;/a&gt;,&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Django is a high-level Python web framework that encourages rapid development and clean, pragmatic design. Built by experienced developers, it takes care of much of the hassle of web development, so you can focus on writing your app without needing to reinvent the wheel. It’s free and open source.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In simpler terms, Django is a framework for building web applications, and it is mostly considered a backend framework because it features ORM, auth, middleware, and other typical backend features, but it can also serve HTML and handle frontend templating just like fullstack frameworks, so it is fair to think that Django is whatever you need it to be 😅&lt;/p&gt;

&lt;p&gt;Django uses a pattern they call Model-View-Template (MVT), which is similar to Model-View-Controller (MVC), with their main difference being that in MVT, the View and Controller from MVC are technically bundled together into the View from MVT&lt;/p&gt;

&lt;p&gt;Fun fact: Before this blog, I didn't know that Django has been around since 2005... damn 🫡&lt;/p&gt;

&lt;p&gt;Start a new Django application with Diploi, here &lt;a href="https://diploi.com/component/django" rel="noopener noreferrer"&gt;https://diploi.com/component/django&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Using Django and Hono with other frameworks in Diploi
&lt;/h2&gt;

&lt;p&gt;If you would like to test out how these frameworks work together with other frameworks, you can use Diploi to create monorepo applications, where you can for example, have Django as your backend and Astro in the frontend, or Hono as your API server with a Next.js fullstack app, or any other combination of frameworks and databases that fits your requirements&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Visit the &lt;strong&gt;Stack Builder&lt;/strong&gt; on the Diploi homepage at &lt;a href="https://diploi.com/#StackBuilder" rel="noopener noreferrer"&gt;https://diploi.com/#StackBuilder&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;Select all the components and add-ons&lt;/li&gt;
&lt;li&gt;That's it, click &lt;code&gt;Launch Stack&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/rsnqJ2QzMIY"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Diploi will then start a remote development environment that allows you to code in the browser and your application is deployed online. If you would like to start your application with a GitHub repository, all you need to do is register using GitHub and you will be able to start a new repository with your new application&lt;/p&gt;




&lt;p&gt;What frameworks should we support next? Let me know in the comments!&lt;/p&gt;




&lt;p&gt;You can start new apps on &lt;a href="https://diploi.com/" rel="noopener noreferrer"&gt;Diploi for free without registration&lt;/a&gt; and if you sign up, you will get 50€ in free credits&lt;/p&gt;




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

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://hono.dev/" rel="noopener noreferrer"&gt;https://hono.dev/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.djangoproject.com/" rel="noopener noreferrer"&gt;https://www.djangoproject.com/&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.diploi.com/" rel="noopener noreferrer"&gt;https://docs.diploi.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>python</category>
      <category>typescript</category>
      <category>learning</category>
    </item>
    <item>
      <title>7 Remote Development Platforms you should have tried back in 2025. You still can btw</title>
      <dc:creator>Javier Hernandez</dc:creator>
      <pubDate>Tue, 24 Jun 2025 08:17:59 +0000</pubDate>
      <link>https://dev.to/diploi/7-remote-development-platforms-in-2025-to-code-without-a-local-setup-1f92</link>
      <guid>https://dev.to/diploi/7-remote-development-platforms-in-2025-to-code-without-a-local-setup-1f92</guid>
      <description>&lt;h6&gt;
  
  
  If you code locally, probably you heard this at least once
&lt;/h6&gt;

&lt;p&gt;Jump to the list of remote development platforms&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%2Ffko4ou1ino9v48v52vk8.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%2Ffko4ou1ino9v48v52vk8.png" alt="It works on my machine"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Or maybe your version of &lt;code&gt;node/python/&amp;lt;insert other languages, runtime or framework&amp;gt;&lt;/code&gt; is too old or too new to run the application you are working on, so you need to install an additional tool to manage different versions of said tool&lt;/p&gt;

&lt;p&gt;When it is not an issue with the tooling necessary to run your application, it can be a config issue or environment variables missing &lt;/p&gt;

&lt;p&gt;Well, there are ways to avoid the additional work required to run an application locally. One example that blew my mind was how the team at OkTurtles handles all of their config, where you don't need any &lt;code&gt;.env&lt;/code&gt; files or special config for one of their very complex projects, &lt;a href="https://github.com/okTurtles/group-income" rel="noopener noreferrer"&gt;Group Income&lt;/a&gt;, where they put a lot of effort to make the process of onboarding new people and working collaboratively as seamless as possible&lt;/p&gt;

&lt;p&gt;Check their video about &lt;a href="https://www.youtube.com/watch?v=AaX28k9pJ8s" rel="noopener noreferrer"&gt;how they handle passwords inside Group Income&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;BUT... that was a lot of effort and time dedicated to making their product work as consistent as possible for all developers, regardless of the machine you are using&lt;/p&gt;

&lt;p&gt;So what about us? I don't want to spend time doing that and chances are you neither...&lt;/p&gt;

&lt;p&gt;This leads me to introduce you to:&lt;/p&gt;




&lt;h2&gt;
  
  
  Remote Development Environments
&lt;/h2&gt;

&lt;p&gt;Remote development environments are platforms that allow you to code, run, and test your applications in the cloud, eliminating the need for local setup and configuration. This means you can work from anywhere, on any device (even from your mobile browser although with limitations), without worrying about compatibility issues or missing dependencies&lt;/p&gt;

&lt;p&gt;The benefits of using remote development platforms include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Consistency&lt;/strong&gt;: Ensures that everyone on your team is using the same environment, reducing the "it works on my machine" problem&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Accessibility&lt;/strong&gt;: Access your development environment from any device with an internet connection, making it easier to work on the go&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resource Management&lt;/strong&gt;: Offload resource-intensive tasks to the cloud, freeing up your local machine&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Collaboration&lt;/strong&gt;: Share your development environment with team members, making it easier to collaborate on projects&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scalability&lt;/strong&gt;: Easily scale your development environment to handle larger projects or more complex applications&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cost-Effective&lt;/strong&gt;: Many platforms offer free tiers or pay-as-you-go pricing, making it affordable for individuals and small teams&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security&lt;/strong&gt;: Remote platforms often provide better security measures than local setups, protecting your code and data&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Environment Isolation&lt;/strong&gt;: Each project can have its isolated environment, preventing conflicts between dependencies&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Integrated Tools&lt;/strong&gt;: Many platforms come with built-in tools for version control, debugging, and deployment, streamlining your workflow&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There might be more benefits, but these are the ones I find most relevant for me. When I started working at Diploi, since our product supports remote development, I have been using it for all of my projects, specially for testing and experimenting with new ideas&lt;/p&gt;

&lt;p&gt;An example of this is how we use Diploi to develop and test changes to our documentation, where we create a project for our team to host our Docs, and then we can create multiple environments for each team member or feature we are working on&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%2F34zcumahrjkzuceq95yd.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%2F34zcumahrjkzuceq95yd.png" alt="Diploi remote development environment for our Docs"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This way I can start coding without running anything locally, and I can share my work with the team by just sharing the link to the project, which is hosted on Diploi&lt;/p&gt;

&lt;p&gt;For example, while writing this blog, I created a new remote development environment to show how it works in about 60 seconds:&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/DRhv0SD4E_8"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;As you can see, no local setup is required. I simply created a new deployment, and I can start coding right away. But that's not why you are here, you want to know which remote development platforms are available, so let's get to it!&lt;/p&gt;




&lt;h2&gt;
  
  
  Top 7 Remote Development Platforms in 2025
&lt;/h2&gt;




&lt;h3&gt;
  
  
  DevZero
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.devzero.io/cloud-development-environment" rel="noopener noreferrer"&gt;https://www.devzero.io/cloud-development-environment&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Ready-to-Code, Cost Efficient Dev Environment."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;DevZero is a cloud-based development platform designed to provide developers with ready-to-code, production-like environments. By mirroring production setups, it aims to eliminate the common "it works on my machine" problem, ensuring consistency across development and deployment stages. DevZero leverages MicroVMs to offer isolated environments that dynamically scale resources, optimizing performance and cost&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%2Fvfqt7xx8d6wk9h1a37qq.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%2Fvfqt7xx8d6wk9h1a37qq.png" alt="DevZero dashboard screenshot"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Known as Workspace or DevBoxes in DevZero, these allow developers to create isolated, customizable environments for development, testing, and deployment. These environments are built dynamically from a predefined configuration file called a recipe, which specifies dependencies, tools, and resources.&lt;/p&gt;

&lt;p&gt;Each workspace is provisioned with its own Kubernetes cluster and can be launched in a region of the user's choice. This approach ensures consistent environments for team members and supports demanding workloads like CI/CD pipelines and data processing. The next step for users is to create a workspace by selecting or configuring a recipe and launching it on the DevZero platform.&lt;/p&gt;

&lt;h4&gt;
  
  
  IDE options supported
&lt;/h4&gt;

&lt;p&gt;To access and work within DevZero's Workspaces, you can use JetBrains and VS Code with the Remote SSH extension. For either IDE, you will need to install the DevZero's CLI to connect to your workspace&lt;/p&gt;

&lt;h4&gt;
  
  
  Anything free?
&lt;/h4&gt;

&lt;p&gt;DevZero used to offer a free tier, but it seems that they have moved away from this model 🥲&lt;/p&gt;

&lt;h4&gt;
  
  
  Pricing?
&lt;/h4&gt;

&lt;p&gt;DevZero no longer showcases its pricing plans on its website, and the latest information available online comes from SaaSworthy which lists the following plans:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Starter Plan&lt;/strong&gt;: Allows up to 2 users per team and 2 workspaces per user&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Price&lt;/strong&gt;: $0/month&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Pro Plan&lt;/strong&gt;: Includes custom roles, up to 15 users, 2 active workspaces per user, and 30 workspaces per team  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Price&lt;/strong&gt;: $39.95 per user per month
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Growth Plan&lt;/strong&gt;: Offers storage volumes/buckets, integrations with existing infrastructure, up to 15 teams (max 15 users per team), administrative dashboards, usage controls/policies, and dedicated support SLA  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Price&lt;/strong&gt;: $429.95 per team per month
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Enterprise Plan&lt;/strong&gt;: Provides self-hosted options, SSO support, external secret manager, APM, full RBAC, and dedicated support rep with SLA  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Price&lt;/strong&gt;: Custom pricing&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://www.saasworthy.com/product/devzero-io/pricing" rel="noopener noreferrer"&gt;https://www.saasworthy.com/product/devzero-io/pricing&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But keep in mind that these prices are not directly from DevZero's website and were last updated on the 26th of August 2024, so they are probably not accurate anymore&lt;/p&gt;

&lt;h4&gt;
  
  
  Something else?
&lt;/h4&gt;

&lt;p&gt;You can launch workspaces on DevZero in different regions. The region where a workspace is launched depends on the user's team and subscription tier. Upon signing up, a default region is set, but users can change this preference in their user settings&lt;/p&gt;

&lt;h4&gt;
  
  
  Video demo?
&lt;/h4&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/ft6ilE0OjTI"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  Codeanywhere
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://codeanywhere.com/" rel="noopener noreferrer"&gt;https://codeanywhere.com/&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The AI Cloud IDE"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Codeanywhere is a cross-platform cloud-integrated development environment (IDE) that enables users to write, edit, collaborate, and run web development projects directly from a web browser or mobile device. It supports over 75 programming languages, including HTML, JavaScript, Node.js, PHP, Ruby, Python, and Go&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%2Fmzdxs5bd0tz2e0vvdxrc.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%2Fmzdxs5bd0tz2e0vvdxrc.png" alt="Codeanywhere dashboard screenshot"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The platform offers features such as real-time collaboration, version control integration with GitHub, GitLab, and Bitbucket, and the ability to connect to remote file systems via SFTP.  Codeanywhere supports DevContainer.json for standardized workspace configurations which you can customize in multiple ways&lt;/p&gt;

&lt;h4&gt;
  
  
  IDE options supported
&lt;/h4&gt;

&lt;p&gt;Codeanywhere provides a browser-based IDE powered by Visual Studio Code where you can import your own VS Code extensions, themes, and settings. Additionally, it offers AI-powered code completion and suggestions using the &lt;a href="https://www.continue.dev/" rel="noopener noreferrer"&gt;Continue.dev&lt;/a&gt; extension &lt;/p&gt;

&lt;h4&gt;
  
  
  Anything free?
&lt;/h4&gt;

&lt;p&gt;Codeanywhere offers a free tier with an allowance of 20 hours of use, so users can explore the platform before committing to a subscription&lt;/p&gt;

&lt;h4&gt;
  
  
  Pricing?
&lt;/h4&gt;

&lt;p&gt;Codeanywhere has monthly, annual, and 2-year plans, with the following options:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Free Plan&lt;/strong&gt;: One-time usage with essential features for getting started&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Price&lt;/strong&gt;: $0 (one-time usage)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Basic Plan&lt;/strong&gt;: Ideal for growing teams with more flexibility and workspace options&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Price&lt;/strong&gt;: $12 monthly | $9.60 per member/month, billed annually | $8.40 per member/month, billed every 2 years&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Premium Plan&lt;/strong&gt;: Maximum value for teams needing more resources and parallel workspaces&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Price&lt;/strong&gt;: $29 monthly | $23 per member/month, billed annually | $20 per member/month, billed every 2 years&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Enterprise Plan&lt;/strong&gt;: Custom solutions for organizations with on-premise or cloud deployment need&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Price&lt;/strong&gt;: Custom pricing (contact sales)&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Something else?
&lt;/h4&gt;

&lt;p&gt;Codeanywhere supports on-premises deployment options, allowing users to host the platform within their own infrastructure.  The platform is also SOC2 Type II, ISO 27001, and GDPR compliant, ensuring high standards of security and data protection&lt;/p&gt;

&lt;h4&gt;
  
  
  Video demo?
&lt;/h4&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/h-vXh88gvaE"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  Coder
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://coder.com/" rel="noopener noreferrer"&gt;https://coder.com/&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Secure environments for developers and their agents"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Coder is a self-hosted cloud development platform that allows you to code in the cloud without needing a local setup. The main use of Coder is to provide a way to launch and manage your virtual development environments from a single dashboard, without having to set up each environment manually&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%2Fzl4wbkyzw0dg5jb6x4cq.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%2Fzl4wbkyzw0dg5jb6x4cq.png" alt="Coder dashboard screenshot"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can define your development environments using templates, where you can launch remote development servers using Kubernetes or Docker, and then launch them from the Coder dashboard. Besides managing your environments, Coder also provides a way to code using their own open source IDE, Coder-server, or using your own IDE by connecting via SSH&lt;/p&gt;

&lt;h4&gt;
  
  
  IDE options supported
&lt;/h4&gt;

&lt;p&gt;Officially supports VS Code, JetBrains IDEs, and their own web-based IDE&lt;/p&gt;

&lt;h4&gt;
  
  
  Anything free?
&lt;/h4&gt;

&lt;p&gt;Coder is open‑source and allows you to self-host so you would only worry about the costs of your infrastructure. You can also start a Premium trial which has additional features intended for teams and enterprises&lt;/p&gt;

&lt;h4&gt;
  
  
  Pricing?
&lt;/h4&gt;

&lt;p&gt;Coder is open source and it is available in two editions&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Community&lt;/strong&gt;: Open-source edition, self-hosted, and free to use&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Price&lt;/strong&gt;: Free&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Premium&lt;/strong&gt;: Paid edition with additional features such as global support, access controls, audit logging, workspace autoscaling and proxying, branding, and enterprise-grade governance&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Price&lt;/strong&gt;: Custom pricing&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Something else?
&lt;/h4&gt;

&lt;p&gt;As I mentioned before, Coder also has a web-based IDE called Coder-server which is based on VS Code. You can use it to code in the browser or to connect to your remote development environments via SSH&lt;/p&gt;

&lt;h4&gt;
  
  
  Video demo?
&lt;/h4&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/zzxnEeSkU5w"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  GitHub Codespaces
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/features/codespaces" rel="noopener noreferrer"&gt;https://github.com/features/codespaces&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Secure development made simple"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;GitHub Codespaces offers managed, container-based development environments hosted in the cloud. You can spin up a live VS Code environment on the browser, directly from any GitHub repo, complete with full terminal support&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%2F7lvzeujpj72uld76buv4.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%2F7lvzeujpj72uld76buv4.png" alt="Codespaces web IDE screenshot"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;These environments can be configured using DevContainer.json files, allowing project-specific setups with dependencies, tools, and custom init commands&lt;/p&gt;

&lt;h4&gt;
  
  
  IDE options supported
&lt;/h4&gt;

&lt;p&gt;You can use the web-based VS Code IDE, and it also supports local VS Code instances via the GitHub Codespaces extension&lt;/p&gt;

&lt;h4&gt;
  
  
  Anything free?
&lt;/h4&gt;

&lt;p&gt;Personal GitHub accounts receive 120 hours of free Codespaces usage per month and 15 GB of storage. Codespace hours are calculated based on the number of cores and the duration of usage. For example:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A 2-core machine used for 1 hour equals 2 core hours&lt;/li&gt;
&lt;li&gt;An 8-core machine used for 1 hour equals 8 core hours&lt;/li&gt;
&lt;li&gt;An 8-core machine used for 2 hours equals 16 core hours&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Pricing?
&lt;/h4&gt;

&lt;p&gt;Codespaces bills based on the number of core hours used and the storage consumed:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Codespaces compute (2 core)&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Price&lt;/strong&gt;: $0.18 per 1 hour&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Codespaces compute (4 core)&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Price&lt;/strong&gt;: $0.36 per 1 hour&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Codespaces compute (8 core)&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Price&lt;/strong&gt;: $0.72 per 1 hour&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Codespaces compute (16 core)&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Price&lt;/strong&gt;: $1.44 per 1 hour&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Codespaces compute (32 core)&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Price&lt;/strong&gt;: $2.88 per 1 hour&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Codespaces storage&lt;/strong&gt;: Storage resource for Codespaces&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Price&lt;/strong&gt;: $0.07 per 1 GB-month&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Something else?
&lt;/h4&gt;

&lt;p&gt;Codespaces can be used for pull requests, allowing you to review and test changes in a live environment before merging&lt;/p&gt;

&lt;h4&gt;
  
  
  Video demo?
&lt;/h4&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/sYJ3CHtT6WM"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  DevPod
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://devpod.sh/" rel="noopener noreferrer"&gt;https://devpod.sh/&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Codespaces but... Open Source, Client Only, Unopinionated” 🌱&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;DevPod is an open‑source tool for creating reproducible development environments using the DevContainer standard. It connects your local IDE to workspaces running locally, in Kubernetes, or on any cloud provider&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%2F6t4vt7jdnhdr6sit4pog.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%2F6t4vt7jdnhdr6sit4pog.png" alt="DevPod workspace screenshot"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;DevPods run based on a &lt;code&gt;devcontainer.json&lt;/code&gt;, to create consistent environments. You can use DevPod to run your development environments on your own infrastructure. It supports multiple IDEs and provides a CLI and GUI for managing workspaces&lt;/p&gt;

&lt;h4&gt;
  
  
  IDE options supported
&lt;/h4&gt;

&lt;p&gt;DevPod supports VS Code Browser or Desktop, JetBrains IDEs, and connecting any IDE via SSH&lt;/p&gt;

&lt;h4&gt;
  
  
  Anything free?
&lt;/h4&gt;

&lt;p&gt;DevPod is open source and free and uses your own infrastructure to run your workspaces, and only runs on your local machine&lt;/p&gt;

&lt;h4&gt;
  
  
  Pricing?
&lt;/h4&gt;

&lt;p&gt;There seems to be no paid version for DevPod, which I think is because DevPod is part of a larger ecosystem of tools that Loft (creators of DevPod) use to provide tools for Virtualization and Kubernetes management&lt;/p&gt;

&lt;h4&gt;
  
  
  Something else?
&lt;/h4&gt;

&lt;p&gt;DevPod provides a way to create CLI programs called Providers, that enable the creation, management, and running of user-requested workspaces. They support various backends, such as cloud services or container environments. There are two main types:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Machine providers&lt;/strong&gt;, which manage virtual machines (e.g., AWS Provider using EC2)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Non-Machine providers&lt;/strong&gt;, which work directly with containers (e.g., SSH, Kubernetes, or Docker)&lt;/p&gt;

&lt;p&gt;Provider configurations are defined in a &lt;code&gt;provider.yaml&lt;/code&gt; file, and you can learn how to add or develop your own providers through DevPod's documentation&lt;/p&gt;

&lt;h4&gt;
  
  
  Video demo?
&lt;/h4&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/87oHtFO5lkc"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  Gitpod
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.gitpod.io/" rel="noopener noreferrer"&gt;https://www.gitpod.io/&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Productivity starts with your AI-ready development environment”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Gitpod is a cloud development environment platform that delivers on-demand, fully automated workspaces based on pre-configured &lt;code&gt;devcontainer.json&lt;/code&gt; files. These environments come ready-to-code with all required tools and dependencies, support any Git repository, and can run in the browser, locally via desktop, or self-hosted in private infrastructure&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%2Fqas11c826jigfef6xstk.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%2Fqas11c826jigfef6xstk.png" alt="Gitpod workspace screenshot"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Gitpod automates the setup of development environments, allowing developers to focus on coding rather than configuration. It supports multiple IDEs and provides features like prebuilds, which automatically prepare workspaces with the latest code changes, and ephemeral workspaces that can be spun up and down as needed&lt;/p&gt;

&lt;h4&gt;
  
  
  IDE options supported
&lt;/h4&gt;

&lt;p&gt;Gitpod works with any editor that uses SSH to connect to a remote backend, which means it supports a wide range of IDEs and code editors, including VS Code, JetBrains IDEs (such as IntelliJ IDEA, PyCharm, and WebStorm), Cursor, Windsurf, Zed, and any other IDE that can use SSH to connect to a remote development environment&lt;/p&gt;

&lt;h4&gt;
  
  
  Anything free?
&lt;/h4&gt;

&lt;p&gt;Gitpod has a free tier that allows you to run up to 10 development environments&lt;/p&gt;

&lt;h4&gt;
  
  
  Pricing?
&lt;/h4&gt;

&lt;p&gt;Gitpod has three tiers:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Free&lt;/strong&gt;: Best for individuals and testing the waters  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Price&lt;/strong&gt;: Free
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Core&lt;/strong&gt;: Coming soon, best for heavy users and small teams  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Price&lt;/strong&gt;: Not yet available
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Enterprise&lt;/strong&gt;: Best for large organizations with additional compliance requirements  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Price&lt;/strong&gt;: Custom pricing&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Something else?
&lt;/h4&gt;

&lt;p&gt;Gitpod provides an SDK that allows developers to interact programmatically with Gitpod environments for automation and infrastructure management. It supports Python, Node/Typescript, and Go&lt;/p&gt;

&lt;h4&gt;
  
  
  Video demo?
&lt;/h4&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/R6FQ39sitAQ"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;




&lt;h3&gt;
  
  
  Diploi
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://diploi.com/" rel="noopener noreferrer"&gt;https://diploi.com/&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Magical Developer Experience”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Diploi is a development and deployment platform that enables developers to spin up full-stack applications quickly and simplifies both development and deployments by reducing the configuration required to launch environment online&lt;/p&gt;

&lt;p&gt;You can launch a new development environment for an application in seconds, with the ability to start coding in the browser or connecting your own IDE via SSH. Diploi focuses on simplifying the developer experience by automating infrastructure management, deployments, and CI/CD pipelines&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%2F8rqcbzkukz9988crvxw3.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%2F8rqcbzkukz9988crvxw3.png" alt="Diploi browser IDE screenshot"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Using a visual stack builder, developers select components (e.g., Next.js, Astro, Node/Bun) and services (PostgreSQL, Redis, MongoDB) to generate a preconfigured monorepo and deployment setup, which you can try out yourself without signing up by visiting &lt;a href="https://diploi.com/#StackBuilder" rel="noopener noreferrer"&gt;diploi.com/#StackBuilder&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  IDE options supported
&lt;/h4&gt;

&lt;p&gt;Using Diploi you can start coding in the browser using our implementation of Code-server to code in browser and we also support VS Code and Cursor out of the box, or if you use another IDE, you can connect via SSH &lt;/p&gt;

&lt;h4&gt;
  
  
  Anything free?
&lt;/h4&gt;

&lt;p&gt;Diploi offers €50 free credits upon signup to explore and experiment with the platform&lt;/p&gt;

&lt;h4&gt;
  
  
  Pricing?
&lt;/h4&gt;

&lt;p&gt;Diploi operates on a pay-as-you-go model, with no fixed monthly fees. You only pay for the time your environments are active and the size of the cluster you use for your deployments:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Diploi Cluster (S)&lt;/strong&gt;: 2 vCPUs, 4 GB RAM&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Price&lt;/strong&gt;: €0.026 per 1 hour&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Diploi Cluster (M)&lt;/strong&gt;: 2 vCPUs, 8 GB RAM&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Price&lt;/strong&gt;: €0.048 per 1 hour&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Diploi Cluster (L)&lt;/strong&gt;: 4 vCPUs, 16 GB RAM&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Price&lt;/strong&gt;: €0.089 per 1 hour&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Diploi Cluster (XL)&lt;/strong&gt;: 8 vCPUs, 32 GB RAM&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Price&lt;/strong&gt;: €0.182 per 1 hour&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Diploi Storage&lt;/strong&gt;: Persistent storage for your deployments&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Price&lt;/strong&gt;: €0.002 per 1 GB-hour&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Something else?
&lt;/h4&gt;

&lt;p&gt;Diploi has a way to define environments using a &lt;code&gt;diploi.yaml&lt;/code&gt; file which contains the configuration to build infrastructure for a deployment. It defines components and add-ons, each with a name, unique identifier, package URL, and version. The file allows for importing environment variables from other components, which can be remapped or filtered using wildcards&lt;/p&gt;

&lt;h4&gt;
  
  
  Video demo?
&lt;/h4&gt;

&lt;p&gt;Here’s a quick intro to using Diploi:&lt;/p&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/PLnAP-n_zwk"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;




&lt;h2&gt;
  
  
  Choosing the Right Platform
&lt;/h2&gt;

&lt;p&gt;What remote development platform works best, depends on your specific needs, stack, and budget. Here’s a quick summary to help you decide:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Diploi:&lt;/strong&gt; Best for developers who not only want to code without local setup but also want a simplified deployment process for their application's lifecycle, especially if you want to launch full-stack applications quickly with minimal configuration&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;DevZero:&lt;/strong&gt; Best for teams needing production-like environments with dynamic scaling and isolated workspaces, especially if you want to self-host&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Codeanywhere:&lt;/strong&gt; Best for those who want a cross-platform cloud IDE with real-time collaboration and version control integration, especially if you want to use AI-powered code completion&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Coder:&lt;/strong&gt; Best for teams looking for a self-hosted solution to manage their own development environments with full control over configurations and IDE options&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;GitHub Codespaces:&lt;/strong&gt; Best for developers who want seamless integration with GitHub and prefer using VS Code in the browser or locally, especially if you want to use pre-configured devcontainers&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;DevPod:&lt;/strong&gt; Best for those who want an open-source, client-only solution to create reproducible development environments using DevContainer standards, especially if you want to self-host or run locally&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Gitpod:&lt;/strong&gt; Best for teams needing fully automated, ephemeral workspaces with prebuilds and support for multiple IDEs, especially if you want to use a wide range of IDEs and code editors&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;Do you have a favorite remote development platform? Or maybe you are using one that is not listed here? Let me know in the comments&lt;/p&gt;




&lt;p&gt;In case you are curious, &lt;a href="https://diploi.com/" rel="noopener noreferrer"&gt;Test-drive Diploi ✨&lt;/a&gt;, no registration required&lt;/p&gt;




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

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.devzero.io/" rel="noopener noreferrer"&gt;DevZero&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://codeanywhere.com/" rel="noopener noreferrer"&gt;Codeanywhere&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://coder.com/" rel="noopener noreferrer"&gt;Coder&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/features/codespaces" rel="noopener noreferrer"&gt;GitHub Codespaces&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://devpod.sh/" rel="noopener noreferrer"&gt;DevPod&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.gitpod.io/" rel="noopener noreferrer"&gt;Gitpod&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://diploi.com/" rel="noopener noreferrer"&gt;Diploi&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://groupincome.org/" rel="noopener noreferrer"&gt;OkTurtles Group Income&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>webdev</category>
      <category>coding</category>
      <category>programming</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Skip the YAML and Server Configs: 7 Easy Deployment Platforms You Haven’t Tried</title>
      <dc:creator>Javier Hernandez</dc:creator>
      <pubDate>Thu, 29 May 2025 11:27:21 +0000</pubDate>
      <link>https://dev.to/diploi/skip-the-yaml-and-server-configs-7-easy-deployment-platforms-you-havent-tried-50d4</link>
      <guid>https://dev.to/diploi/skip-the-yaml-and-server-configs-7-easy-deployment-platforms-you-havent-tried-50d4</guid>
      <description>

&lt;h6&gt;
  
  
  DevOps can be painful. We know from experience 🤕
&lt;/h6&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%2Fpr32prkkxzt6hpldk3x4.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%2Fpr32prkkxzt6hpldk3x4.png" alt="I quit! said someone on reddit" width="800" height="597"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h6&gt;
  
  
  So we decided to create a list of new deployment platforms (us included) that aim to make the process of hosting your application online a smooth and maybe even enjoyable process
&lt;/h6&gt;




&lt;p&gt;By now you know both the big boys, like Azure, and you also probably know other platforms focused on making DevOps for non-DevOps people into a bearable experience, eg. Netlify, etc&lt;/p&gt;

&lt;p&gt;But I bet that you probably don't know the ones I'll present now, and I hope you find them useful, reliable, interesting, and maybe even in some cases, whimsical 😌&lt;/p&gt;

&lt;p&gt;Let's get started!&lt;/p&gt;




&lt;h2&gt;
  
  
  Canine
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://canine.sh/" rel="noopener noreferrer"&gt;https://canine.sh/&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"A modern, open source alternative to Heroku"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Canine is an open-source platform designed to simplify deploying apps to Kubernetes, similar to how Heroku simplifies app deployment. Created to fight the growing complexity and cost of IT infrastructure, especially with the addition of tools and vendors, many of which have open-source alternatives&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%2Fnsgirldg8ky3x0gbisuc.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%2Fnsgirldg8ky3x0gbisuc.png" alt="Canine dashboard screenshot" width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Canine addresses these challenges by providing a streamlined, Kubernetes-based solution that abstracts away much of the complexity, allowing small teams to manage their infrastructure more efficiently. It focuses on essential Kubernetes features and integrates with third-party applications via Helm charts. The goal is to minimize complexity, reduce costs, and manage infrastructure for developers&lt;/p&gt;

&lt;h3&gt;
  
  
  Provides managed servers or clusters?
&lt;/h3&gt;

&lt;p&gt;No, you must host your server or cluster separately&lt;/p&gt;

&lt;h3&gt;
  
  
  Anything free?
&lt;/h3&gt;

&lt;p&gt;100% open source platform and currently free&lt;/p&gt;

&lt;h3&gt;
  
  
  Pricing?
&lt;/h3&gt;

&lt;p&gt;For now, Canine is totally free&lt;/p&gt;

&lt;h3&gt;
  
  
  Something else?
&lt;/h3&gt;

&lt;p&gt;Canine has add-ons that allow you to launch additional services, like Metabase or Elasticsearch on any cluster managed through Canine &lt;/p&gt;

&lt;h3&gt;
  
  
  Video demo?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://youtu.be/2m2osV-eBE4?feature=shared" rel="noopener noreferrer"&gt;https://youtu.be/2m2osV-eBE4?feature=shared&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Sherpa
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.sherpa.sh/" rel="noopener noreferrer"&gt;https://www.sherpa.sh/&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Deploy Sveltekit/Next.js/React/Docker Apps The Easy Way"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Sherpa is a deployment platform designed to simplify the process of building, deploying, and scaling applications globally with significantly lower costs compared to competitors like Vercel and Netlify. It supports Next.js, Sveltekit, React, PayloadCMS, and Dockerized applications&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%2F407qfeqcntqbt1wcvcfs.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%2F407qfeqcntqbt1wcvcfs.png" alt="Sherpa dashboard screenshot" width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Another interesting fact about Sherpa is its pricing, which offers flat rates with no additional charges for seats or projects, and its competitive pricing is achieved by running its own servers and partnerships with Hetzner for global infrastructure, instead of relying on cloud providers like AWS&lt;/p&gt;

&lt;h3&gt;
  
  
  Provides managed servers or clusters?
&lt;/h3&gt;

&lt;p&gt;Yes, Sherpa provides its own servers and uses Hetzner for global provisioning&lt;/p&gt;

&lt;h3&gt;
  
  
  Anything free?
&lt;/h3&gt;

&lt;p&gt;Sherpa offers a free trial period and allows you to host 1 application&lt;/p&gt;

&lt;h3&gt;
  
  
  Pricing?
&lt;/h3&gt;

&lt;p&gt;Starts with us$14.99 per month or us$119.88 per year for the Hobby plan. Sherpa offers 5 different pricing tiers for teams and enterprise&lt;/p&gt;

&lt;h3&gt;
  
  
  Something else?
&lt;/h3&gt;

&lt;p&gt;Sherpa offers unlimited Edge requests, so you can scale freely without forced costly upgrades&lt;/p&gt;

&lt;h3&gt;
  
  
  Video demo?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://youtu.be/-RhWwr9xy48?si=kTs6Ef44BrXvDxx_" rel="noopener noreferrer"&gt;https://youtu.be/-RhWwr9xy48?si=kTs6Ef44BrXvDxx_&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Sliplane
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://sliplane.io/" rel="noopener noreferrer"&gt;https://sliplane.io/&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Simple Docker Hosting Solution"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Sliplane is a platform for deploying containerized applications, handling tasks like building images, running containers, health checks, and environment management. It offers continuous deployment by integrating with GitHub repositories and allows direct deployment from Docker Hub&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%2Fja3ja4ynstxqynfn4ppg.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%2Fja3ja4ynstxqynfn4ppg.png" alt="Sliplane dashboard screenshot" width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You are charged based on the servers you use, which are provided by Hetzner, with pricing starting at €9 per month plus VAT, which allows you to host unlimited containers on each server. The platform also provides tools for log monitoring, secrets management, and secure server configuration&lt;/p&gt;

&lt;h3&gt;
  
  
  Provides managed servers or clusters?
&lt;/h3&gt;

&lt;p&gt;Yes, Sliplane uses Hetzner to provide servers to run Docker containers&lt;/p&gt;

&lt;h3&gt;
  
  
  Anything free?
&lt;/h3&gt;

&lt;p&gt;Sliplane offers a trial period so you can test out their service&lt;/p&gt;

&lt;h3&gt;
  
  
  Pricing?
&lt;/h3&gt;

&lt;p&gt;Servers start at €9 per month for their smallest server&lt;/p&gt;

&lt;h3&gt;
  
  
  Something else?
&lt;/h3&gt;

&lt;p&gt;Sliplane has an API, which allows you to control their deployments and launch servers without a GUI&lt;/p&gt;

&lt;h3&gt;
  
  
  Video demo?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=svUdXGQwtMs" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=svUdXGQwtMs&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Ploi
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://ploi.io/" rel="noopener noreferrer"&gt;https://ploi.io/&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Deploy your next server in a few clicks."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ploi is a server management platform designed to simplify DevOps for developers. You can add a server you want to manage, using any of their native integrations, like Hetzner and UpCloud, or using any custom server, eg. AWS or Azure, which can be done by adding Ploi's public SSH key to your custom 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%2F7rte3n0zxttcfivslvd5.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%2F7rte3n0zxttcfivslvd5.png" alt="Ploi dashboard screenshot" width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After adding a server, Ploi first takes care of the configuration required for your server to host an application. Once the configuration process is complete, you can add "sites" which is where you manage the apps that will be hosted on a server&lt;/p&gt;

&lt;p&gt;Additionally, Ploi has a marketplace where you can add custom scripts, which expand what's possible, eg. Installing Docker with a single click, allowing you to add additional services and utilities without directly accessing your server via SSH&lt;/p&gt;

&lt;h3&gt;
  
  
  Provides managed servers or clusters?
&lt;/h3&gt;

&lt;p&gt;No, you can either add API access to one of the cloud providers supported by Ploi to launch servers quickly or you can launch a server on other cloud providers and use Ploi to manage it&lt;/p&gt;

&lt;h3&gt;
  
  
  Anything free?
&lt;/h3&gt;

&lt;p&gt;Ploi has a free 5-day trial, which lets you try out most features of the product, excluding server monitoring and team management features&lt;/p&gt;

&lt;h3&gt;
  
  
  Pricing?
&lt;/h3&gt;

&lt;p&gt;Ploi's service starts at €8 per month for the basic plan&lt;/p&gt;

&lt;h3&gt;
  
  
  Something else?
&lt;/h3&gt;

&lt;p&gt;Ploi also offers a version of their platform, designed for web hosting companies who want to provide a better user experience for their customers&lt;/p&gt;

&lt;p&gt;&lt;a href="https://ploi-core.io/" rel="noopener noreferrer"&gt;https://ploi-core.io/&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Video demo?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=z4mr130YEAQ" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=z4mr130YEAQ&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Stacktape
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://stacktape.com/" rel="noopener noreferrer"&gt;https://stacktape.com/&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"97% of AWS capabilities, 3% complexity"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Stacktape is a deployment tool that automates the process of deploying applications on AWS by breaking it into several phases: resolving and validating configuration, building and packaging code, creating initial resources, uploading artifacts, and deploying infrastructure&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%2F442ha4gzixfesl9q5sh0.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%2F442ha4gzixfesl9q5sh0.png" alt="Stacktape dashboard screenshot" width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It uses AWS CloudFormation to manage infrastructure resources and offers features like caching, parallel uploads, and a hot swap mode to speed up deployments. In practice, you write a &lt;code&gt;stacktape.yml&lt;/code&gt; file in your repo (choosing things like Lambdas, containers, and databases), and Stacktape builds the necessary CloudFormation under the hood&lt;/p&gt;

&lt;p&gt;Stacktape also ensures consistent naming conventions for resources and provides a console for inspecting deployed resources and CloudFormation templates. Additionally, it supports third-party services through CloudFormation extensions and uses direct AWS API calls for functionalities beyond CloudFormation's scope&lt;/p&gt;

&lt;h3&gt;
  
  
  Provides managed servers or clusters?
&lt;/h3&gt;

&lt;p&gt;No, you must have an AWS account, which you can then manage through Stacktape &lt;/p&gt;

&lt;h3&gt;
  
  
  Anything free?
&lt;/h3&gt;

&lt;p&gt;Stacktape offers a free tier of their service which allows you to connect 1 AWS account and manage up to 10 deployments with most features enabled&lt;/p&gt;

&lt;h3&gt;
  
  
  Pricing?
&lt;/h3&gt;

&lt;p&gt;Including the free tier, Stacktape offers a pay-as-you-go plan, which calculates the fees as a percentage of the AWS costs, and a fully managed plan starting at us$990 per month&lt;/p&gt;

&lt;h3&gt;
  
  
  Something else?
&lt;/h3&gt;

&lt;p&gt;Stacktape has a CLI to enable you to deploy and manage their environments from the terminal&lt;/p&gt;

&lt;h3&gt;
  
  
  Video demo?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=hi17g9fQoi0" rel="noopener noreferrer"&gt;https://www.youtube.com/watch?v=hi17g9fQoi0&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Thunder
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://thunder.so/" rel="noopener noreferrer"&gt;https://thunder.so/&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The deployment platform for modern web developers"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Thunder is a platform that simplifies deploying modern web applications on AWS, supporting modern frameworks and workflows. To get started, you must sign up with GitHub and authorize the Thunder OAuth app, which sets up your account and organization. Organizations act as containers for applications, AWS accounts, and billing. You can connect multiple AWS accounts, and Thunder creates IAM roles to manage infrastructure provisioning&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%2Fy321uhq9m1f6sv0y6k35.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%2Fy321uhq9m1f6sv0y6k35.png" alt="Thunder dashboard screenshot" width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After you set up your AWS account, you can import repositories from GitHub and start a deployment. Thunder installs a CDK stack on your AWS account when you import a new repository, enabling the deployment of single-page applications (SPA) and static site generators (SSG) using &lt;strong&gt;CDK-SPA&lt;/strong&gt;, an open-source AWS CDK stack. The stack provisions an &lt;strong&gt;S3 hosting bucket&lt;/strong&gt; and a &lt;strong&gt;globally distributed CloudFront CDN&lt;/strong&gt; for your application&lt;/p&gt;

&lt;p&gt;Deployment is automated via &lt;strong&gt;CodePipeline&lt;/strong&gt;, which triggers a build and publishes updates to S3 while invalidating the CDN cache. This setup ensures efficient hosting and distribution of static content&lt;/p&gt;

&lt;h3&gt;
  
  
  Provides managed servers or clusters?
&lt;/h3&gt;

&lt;p&gt;No, you must have an AWS account, which you can then manage through Thunder&lt;/p&gt;

&lt;h3&gt;
  
  
  Anything free?
&lt;/h3&gt;

&lt;p&gt;Thunder offers a free tier that allows you to launch and manage single-page apps and static sites, and provides CI/CD pipelines using CodePipeline&lt;/p&gt;

&lt;h3&gt;
  
  
  Pricing?
&lt;/h3&gt;

&lt;p&gt;On top of the free tier, offer a Pro plan subscription for us$10 per month and a Lifetime license, only available while they are in beta, for us$99 which includes all features from the Pro plan&lt;/p&gt;

&lt;h3&gt;
  
  
  Something else?
&lt;/h3&gt;

&lt;p&gt;Thunder handles HTTP response headers by providing default settings which you can also override and add custom headers using path patterns&lt;/p&gt;

&lt;h3&gt;
  
  
  Video demo?
&lt;/h3&gt;

&lt;p&gt;Unfortunately, I couldn't find a video demo, but you can try it for free by just registering with GitHub and adding your AWS account to start a deployment&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.thunder.so/docs" rel="noopener noreferrer"&gt;https://www.thunder.so/docs&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Diploi
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://diploi.com/" rel="noopener noreferrer"&gt;https://diploi.com/&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Magical Developer Experience"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Diploi is a platform designed to simplify the process of building, managing, and hosting full applications without the need for DevOps. It uses a component-driven architecture, allowing you to select from a variety of frameworks and databases to define their application stack, which is stored inside of a &lt;code&gt;diploi.yaml&lt;/code&gt; file  allowing modification to the user's selected stack&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%2Fw7rlyg2x2e5qubla4qtm.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%2Fw7rlyg2x2e5qubla4qtm.png" alt="Diploi dashboard screenshot" width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Projects created with Diploi features Components, which serve as the basic building blocks for frontend, backend, or fullstack applications, and Add-ons, which can be combined with Components into a single deployment, simplifying how infrastructure is managed for web applications&lt;/p&gt;

&lt;h3&gt;
  
  
  Provides managed servers or clusters?
&lt;/h3&gt;

&lt;p&gt;Yes, Diploi provides managed servers, which are used to run a cluster per deployment launched, from which Components and Add-ons are run as Docker containers&lt;/p&gt;

&lt;h3&gt;
  
  
  Anything free?
&lt;/h3&gt;

&lt;p&gt;Diploi provides €50 free credits when you register to try out the platform&lt;/p&gt;

&lt;h3&gt;
  
  
  Pricing?
&lt;/h3&gt;

&lt;p&gt;All prices on Diploi are based on the time that environments are online, which starts at 0,026€ per hour for their smallest cluster size &lt;/p&gt;

&lt;h3&gt;
  
  
  Something else?
&lt;/h3&gt;

&lt;p&gt;Diploi provides remote development environments, which allow you to work on your applications without running locally. You can start coding on a remote development environment by using VS Code server provided by Diploi, or connect your preferred IDE (eg. VS Code, Cursor) to connect to your development environment&lt;/p&gt;

&lt;h3&gt;
  
  
  Video demo?
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://youtu.be/rsnqJ2QzMIY" rel="noopener noreferrer"&gt;https://youtu.be/rsnqJ2QzMIY&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Choosing the Right Platform
&lt;/h2&gt;

&lt;p&gt;Each of these tools avoids heavy YAML or server config in their own way:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Diploi:&lt;/strong&gt; Best if you want a turnkey full-stack environment (frontend + backend + DB) launched from boilerplate code, with minimal setup&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Canine:&lt;/strong&gt; Best for developers seeking a Heroku-like experience to run Kubernetes clusters, with one-click deployments, SSL certificates autogenerated, and autoscaling, while enabling cost-effective hosting on providers like Hetzner or DigitalOcean&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Sherpa:&lt;/strong&gt; Great for pure JS/Next.js/Docker apps where you just want to link Git and deploy globally on a budget&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Sliplane:&lt;/strong&gt; Ideal if your app is already containerized and you want simple Docker hosting with flat-rate pricing&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Ploi:&lt;/strong&gt; Suited for teams managing their own VPS/cloud servers who still want one-click provisioning and site deployment (WordPress, Laravel, etc.) without manual Nginx/SSL setup&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Stacktape:&lt;/strong&gt; Good for those who want AWS-grade services (databases, functions, auto-scaling) without wrestling with CloudFormation, it’s a PaaS on top of AWS using simple YAML&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Thunder:&lt;/strong&gt; Perfect for static sites and SSG apps (Astro, Next, Vue, etc.) that should be served from S3/CloudFront. It’s Git-driven and very cost-effective for front-end workloads&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ultimately, the best choice depends on your stack and budget. All these platforms let solo devs and teams focus on code instead of config. They each automate the messy parts of deployment (YAML, servers, scaling) so you can deliver apps faster&lt;/p&gt;




&lt;p&gt;Do you know other platforms I should add to the list? Let me know!&lt;/p&gt;




&lt;p&gt;In case you are curious, &lt;a href="https://diploi.com/" rel="noopener noreferrer"&gt;Test-drive Diploi ✨&lt;/a&gt;&lt;/p&gt;




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

&lt;p&gt;&lt;a href="https://ploi.io/documentation" rel="noopener noreferrer"&gt;https://ploi.io/documentation&lt;/a&gt;&lt;br&gt;
&lt;a href="https://canine.gitbook.io/canine.sh" rel="noopener noreferrer"&gt;https://canine.gitbook.io/canine.sh&lt;/a&gt;&lt;br&gt;
&lt;a href="https://docs.diploi.com/" rel="noopener noreferrer"&gt;https://docs.diploi.com/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://docs.sliplane.io/" rel="noopener noreferrer"&gt;https://docs.sliplane.io/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.thunder.so/docs" rel="noopener noreferrer"&gt;https://www.thunder.so/docs&lt;/a&gt;&lt;br&gt;
&lt;a href="https://sherpa-sh.gitbook.io/sherpa.sh-docs" rel="noopener noreferrer"&gt;https://sherpa-sh.gitbook.io/sherpa.sh-docs&lt;/a&gt;&lt;br&gt;
&lt;a href="https://docs.stacktape.com/" rel="noopener noreferrer"&gt;https://docs.stacktape.com/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>productivity</category>
      <category>webdev</category>
      <category>cloud</category>
    </item>
    <item>
      <title>Remote Development Environments with Cursor?</title>
      <dc:creator>Javier Hernandez</dc:creator>
      <pubDate>Tue, 06 May 2025 09:09:04 +0000</pubDate>
      <link>https://dev.to/diploi/remote-development-with-cursor-4okl</link>
      <guid>https://dev.to/diploi/remote-development-with-cursor-4okl</guid>
      <description>

&lt;h6&gt;
  
  
  Now you can connect to your remote development environments on Diploi using Cursor
&lt;/h6&gt;

&lt;h6&gt;
  
  
  Diploi is a deployment platform for applications with support for remote development
&lt;/h6&gt;




&lt;h2&gt;
  
  
  Vibing on Diploi ✨
&lt;/h2&gt;

&lt;p&gt;We just added support for Cursor, which means that now you can start coding your application without installing anything locally and vibe your way to production&lt;/p&gt;




&lt;h3&gt;
  
  
  How it works?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Don't want to read?&lt;/strong&gt; Check the video demo&lt;br&gt;
  &lt;iframe src="https://www.youtube.com/embed/gHeJ-gwCtlg"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you prefer reading,&lt;/strong&gt; let's go step by step:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you have a development environment already created, you can skip to step 2&lt;/strong&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  1. Create a project
&lt;/h4&gt;

&lt;p&gt;You can launch the project creation page from your dashboard's project page&lt;/p&gt;

&lt;p&gt;&lt;a href="https://console.diploi.com/" rel="noopener noreferrer"&gt;https://console.diploi.com/&lt;/a&gt;/projects&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%2F26d1h6mujw538gp2ogs3.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%2F26d1h6mujw538gp2ogs3.png" alt="Dashboard home"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now choose the stack for your application. For this guide, I'll select Bun and Nue.js with Postgres for my demo app&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%2Fdbmm294ucvmzv7mbceh0.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%2Fdbmm294ucvmzv7mbceh0.png" alt="Pick your app stack"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After clicking on &lt;code&gt;Launch Stack&lt;/code&gt;, the Diploi creates a development deployment by default, but just in case I'll show how you can create a development deployment for our application&lt;/p&gt;

&lt;h5&gt;
  
  
  Creating a development deployment
&lt;/h5&gt;

&lt;p&gt;From your project page, click the &lt;code&gt;Create Deployment&lt;/code&gt; button&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%2F5y8mr8l0cbmnwwet9uf3.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%2F5y8mr8l0cbmnwwet9uf3.png" alt="project page to create deployment"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Select &lt;strong&gt;Development&lt;/strong&gt;, which will allow you to start developing your app without having to run anything locally&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%2Fd9uobjiyoovff0dx0xaw.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%2Fd9uobjiyoovff0dx0xaw.png" alt="Create development deployment"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We recommend you use size M for your development environments, since the remote development environment will need additional resources to run your application in development mode&lt;/p&gt;

&lt;p&gt;After you finish configuring your development deployment, your new environment will start&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%2Fv47gtw4xxye0rn41egat.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%2Fv47gtw4xxye0rn41egat.png" alt="deployment launched"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;span id="step2"&gt;&lt;/span&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  2. Connect to your development deployment using Cursor
&lt;/h4&gt;

&lt;p&gt;Now that your deployment is configured and starting, you will be able to connect remotely when the button &lt;code&gt;Code in the Browser&lt;/code&gt; inside the &lt;strong&gt;Develop&lt;/strong&gt; section of your deployment changes from gray to blue&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%2Fbmmfb9hsi2khi1ehogu5.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%2Fbmmfb9hsi2khi1ehogu5.png" alt="ready to connect"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You might be thinking, "that's not connect to Cursor" and you are right, all you need to do is click on the plus &lt;code&gt;+&lt;/code&gt; next to &lt;code&gt;Code in the Browser&lt;/code&gt;, which will open a dropdown where you can select to open your development environment with Cursor&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%2Fg5ir4s27znsp6122cvp2.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%2Fg5ir4s27znsp6122cvp2.png" alt="opening remote development environment with Cursor"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;If you have issues connecting, it might be due to missing SSH keys. Follow this guide explaining how to add a new SSH key to your Diploi account &lt;a href="https://docs.diploi.com/building/add-ssh-key/" rel="noopener noreferrer"&gt;https://docs.diploi.com/building/add-ssh-key/&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In case you prefer to make "Open in Cursor" a default action for your deployment, you can click on the pin "📌" icon, to pin it on your &lt;strong&gt;Develop&lt;/strong&gt; section&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%2Fas9kvh0fnyfcofihrc0c.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%2Fas9kvh0fnyfcofihrc0c.png" alt="pinning Cursor"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And now you should be able to open your deployment with Cursor and vibe out your app without having to install anything locally 💎&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you don't have a Diploi account, you can still try launching a server for free, no registration needed&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;If you have been using Diploi for a while, you might notice that we updated our deployment page UI. We'll talk about our design process in another post&lt;/p&gt;

&lt;p&gt;That's all for now! Go out there and vibe friend 🪄&lt;/p&gt;




&lt;h4&gt;
  
  
  &lt;a href="https://diploi.com/" rel="noopener noreferrer"&gt;Try Diploi for free ✨&lt;/a&gt;
&lt;/h4&gt;




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

&lt;p&gt;&lt;a href="https://docs.diploi.com/building/add-ssh-key/" rel="noopener noreferrer"&gt;https://docs.diploi.com/building/add-ssh-key/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://docs.diploi.com/building/remote-development/" rel="noopener noreferrer"&gt;https://docs.diploi.com/building/remote-development/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>cloud</category>
      <category>ai</category>
      <category>startup</category>
    </item>
    <item>
      <title>Setting up an application with Nue.js</title>
      <dc:creator>Javier Hernandez</dc:creator>
      <pubDate>Fri, 25 Apr 2025 07:55:23 +0000</pubDate>
      <link>https://dev.to/diploi/setting-up-an-application-with-nuejs-3261</link>
      <guid>https://dev.to/diploi/setting-up-an-application-with-nuejs-3261</guid>
      <description>&lt;h6&gt;
  
  
  This is a tutorial, walking through how to set your app with Nue.js
&lt;/h6&gt;




&lt;p&gt;By the end of this tutorial, we will have a blank application, without any unnecessary packages, ready for you to create an application using Nue.js&lt;/p&gt;

&lt;p&gt;This will be part of a series we'll go deeper into what you can do with Nue.js and show practical tutorials&lt;/p&gt;




&lt;h2&gt;
  
  
  What's Nue.js?
&lt;/h2&gt;

&lt;p&gt;Nue.js is a framework, that tries to simplify how applications are built and improve performance, by allowing the usage of faster languages so you are not limited by the typical performance of a JS application&lt;/p&gt;

&lt;p&gt;From their docs:&lt;/p&gt;

&lt;p&gt;| Nue is a web framework that prioritizes web standards, enabling developers to create large-scale single-page applications (SPAs) with less code than mainstream tools require, and your codebase stays clean so it is easier to maintain and scale.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://nuejs.org/docs/single-page-apps.html" rel="noopener noreferrer"&gt;https://nuejs.org/docs/single-page-apps.html&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After trying Nue.js, I can say this is a JS framework with good ideas. It creates very light bundle sizes, provides server-side rendering, allows writing application logic in Rust, Go or Zig for performance-critical tasks. Its model-view-controller (MVC) architecture can help maintain a structured development&lt;/p&gt;




&lt;h2&gt;
  
  
  Requirements
&lt;/h2&gt;

&lt;p&gt;To install Nue, you must first have Bun installed in your system&lt;/p&gt;




&lt;h3&gt;
  
  
  Install Bun
&lt;/h3&gt;

&lt;p&gt;To run Nue.js we will use Bun&lt;br&gt;
&lt;code&gt;curl -fsSL https://bun.sh/install | bash&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;You can use npm, yarn or pnpm too, for more info check &lt;a href="https://nuejs.org/docs/installation.html#node-setup" rel="noopener noreferrer"&gt;https://nuejs.org/docs/installation.html#node-setup&lt;/a&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  Setting the project
&lt;/h3&gt;

&lt;p&gt;Now we need to create a folder to store our code,&lt;br&gt;
&lt;code&gt;mkdir nue-app&lt;/code&gt;&lt;/p&gt;


&lt;h3&gt;
  
  
  (Optional) Start an empty Bun project
&lt;/h3&gt;

&lt;p&gt;Then &lt;code&gt;cd&lt;/code&gt; into your new folder and run the command&lt;br&gt;
&lt;code&gt;bun init&lt;/code&gt; to create your base application, you will see this prompt:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;? Select a project template - Press &lt;span class="k"&gt;return &lt;/span&gt;to submit.
❯   Blank
    React
    Library
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Choose &lt;code&gt;Blank&lt;/code&gt; and once bun finishes setting up your project, your root folder should look like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nv"&gt;$ &lt;/span&gt;&lt;span class="nb"&gt;ls
&lt;/span&gt;bun.lock  index.ts  node_modules  package.json  README.md  tsconfig.json
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Install Nue.js locally
&lt;/h3&gt;

&lt;p&gt;Now run the command&lt;br&gt;
&lt;code&gt;bun install nuekit&lt;/code&gt; to install Nue.js in your project&lt;/p&gt;


&lt;h3&gt;
  
  
  Create a site.yaml and index.html
&lt;/h3&gt;

&lt;p&gt;In the root of your application, create a site.yaml and index.html. The site.yaml file will tell Nue how to bundle and run our application while index.html will be the root view of our application&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Nue CRM / A single-page app demo&lt;/span&gt;
&lt;span class="na"&gt;port&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;8083&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;h1&amp;gt;&lt;/span&gt;Hello World&lt;span class="nt"&gt;&amp;lt;/h1&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Run the app in development
&lt;/h3&gt;

&lt;p&gt;Now you can run your Nue.js application, using the command:&lt;br&gt;
&lt;code&gt;bun nue&lt;/code&gt; and that's it&lt;/p&gt;

&lt;p&gt;You should be able to see your application on &lt;code&gt;localhost:8083&lt;/code&gt; and now you can start developing&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;&lt;br&gt;
If you want to get a sample application running and skip this entire tutorial, just run:&lt;br&gt;
&lt;code&gt;bun nue create simple-blog&lt;/code&gt; to create a blog sample or&lt;br&gt;
&lt;code&gt;bun nue create simple-mpa&lt;/code&gt; to create a multipage sample app, with login and dashboard&lt;/p&gt;

&lt;p&gt;In case you want to create and deploy a Nue.js application with ease, try &lt;a href="https://diploi.com/component/nue" rel="noopener noreferrer"&gt;Diploi's Nue.js component&lt;/a&gt;, so you can have your app live online in seconds&lt;/p&gt;

&lt;p&gt;&lt;a href="https://diploi.com/component/nue" rel="noopener noreferrer"&gt;https://diploi.com/component/nue&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Closing thoughts
&lt;/h2&gt;

&lt;p&gt;I initially planned to make this into a single blog post, but after 3 days of trying to make sense of my experience learning Nue.js to make this blog, I realized that I was being naive and wouldn't be possible, so I split it into multiple parts&lt;/p&gt;

&lt;p&gt;This is just an introduction to Nue.js and in our next entry, we'll go over setting up the folder structure and logic for our application&lt;/p&gt;

&lt;p&gt;If you prefer to take the lead, check Nue's documentation about how to use Nue with &lt;a href="https://nuejs.org/docs/content-focused-apps.html" rel="noopener noreferrer"&gt;content-driven applications&lt;/a&gt; and &lt;a href="https://nuejs.org/docs/single-page-apps.html" rel="noopener noreferrer"&gt;single page apps&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;We are working on new components, UX improvements and we'll be posting an update soon!&lt;/p&gt;

&lt;p&gt;Happy building! 🫡&lt;/p&gt;




&lt;h4&gt;
  
  
  &lt;a href="https://diploi.com/" rel="noopener noreferrer"&gt;Try Diploi for free ✨&lt;/a&gt;
&lt;/h4&gt;




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

&lt;p&gt;&lt;a href="https://diploi.com/component/nue" rel="noopener noreferrer"&gt;https://diploi.com/component/nue&lt;/a&gt;&lt;br&gt;
&lt;a href="https://nuejs.org/" rel="noopener noreferrer"&gt;https://nuejs.org/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>learning</category>
      <category>nue</category>
      <category>bunjs</category>
    </item>
    <item>
      <title>Nue.js, SvelteKit and MariaDB now available on Diploi 🎉</title>
      <dc:creator>Javier Hernandez</dc:creator>
      <pubDate>Mon, 14 Apr 2025 08:49:15 +0000</pubDate>
      <link>https://dev.to/diploi/nuejs-sveltekit-and-mariadb-now-available-on-diploi-c5c</link>
      <guid>https://dev.to/diploi/nuejs-sveltekit-and-mariadb-now-available-on-diploi-c5c</guid>
      <description>

&lt;h6&gt;
  
  
  We are happy to announce the new technologies that you can start deploying and develop using Diploi!
&lt;/h6&gt;




&lt;h2&gt;
  
  
  Nue.js, SvelteKit and MariaDB now supported
&lt;/h2&gt;

&lt;p&gt;So as a development/deployment platform, something we frequently get asked is "do you support xyz technology?". We would love to say &lt;strong&gt;YES&lt;/strong&gt; to all technologies we hear about, but that's not the reality yet 😑&lt;/p&gt;

&lt;p&gt;BUT! That said, we are happy to officially add support for these three technologies. In case you are not aware of them, let's go over a brief intro for each one&lt;/p&gt;




&lt;h3&gt;
  
  
  What is Nue.js?
&lt;/h3&gt;

&lt;p&gt;In their own words (&lt;a href="https://nuejs.org/docs/faq.html):" rel="noopener noreferrer"&gt;https://nuejs.org/docs/faq.html):&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Nue is a web framework focused on web standards, currently in active development. Our goal is to expose the hidden complexity that's become a norm in modern web development. When a single button weighs more than an entire application, something is clearly broken.&lt;/p&gt;

&lt;p&gt;Nue makes the inevitable shift. We're rebuilding the entire ecosystem from scratch, with a cleaner, more efficient core. Our goal is to restore the joy of web development for all key skillsets: frontend architects, design engineers, and UX engineers.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;In a nutshell, the Nue.js team created a lightweight framework to build single-page apps. How lightweight? Well, their benchmark says that a WHOLE single-page application with Nue.js is about 50% lighter than a SINGLE React button&lt;/p&gt;

&lt;p&gt;Yeah, I couldn't believe it either...&lt;/p&gt;

&lt;p&gt;To me, the best part (or worst for some) is the rediscovery (or horror) of model-view-controller aka MVC, applied to modern web development&lt;/p&gt;

&lt;p&gt;As a Rails lover here ✊ I agree with &lt;a href="https://nuejs.org/vision/" rel="noopener noreferrer"&gt;their vision&lt;/a&gt; that basically says that we are constantly reinventing the wheel every time we launch a new app, and I believe that they are right, and using MVC avoids that, but I'm bias...&lt;/p&gt;

&lt;p&gt;You can try it yourself and decide if it is good for you&lt;/p&gt;

&lt;p&gt;&lt;a href="https://diploi.com/component/nue" rel="noopener noreferrer"&gt;https://diploi.com/component/nue&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  What is SvelteKit?
&lt;/h3&gt;

&lt;p&gt;If you have worked with Next.js, SvelteKit will be very familiar for you&lt;/p&gt;

&lt;p&gt;SvelteKit is a fullstack framework that uses Svelte and adds the functionality necessary to build applications&lt;/p&gt;

&lt;p&gt;It features server-side rendering, static site generation, API endpoints, and file-based routing. SvelteKit bundles are lightweight and it is compatible with a very broad list of technologies, like Vite to enable hot module reloading for example&lt;/p&gt;

&lt;p&gt;You can try SvelteKit already on Diploi&lt;/p&gt;

&lt;p&gt;&lt;a href="https://diploi.com/component/sveltekit" rel="noopener noreferrer"&gt;https://diploi.com/component/sveltekit&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For more about Svelte and SvelteKit, check &lt;a href="https://svelte.dev/" rel="noopener noreferrer"&gt;https://svelte.dev/&lt;/a&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  What is MariaDB?
&lt;/h3&gt;

&lt;p&gt;Created as a fork of MySQL, by the same people who created MySQL, as a way to keep a version of MySQL fully open-source after Oracle acquired MySQL. MariaDB is a fully open-source relational database, which operates for most purposes like MySQL&lt;/p&gt;

&lt;p&gt;The main difference with MySQL, can be found in the performance improvements introduced with dynamic thread pooling and the added support for other storage engines, so you are not limited only to SQL&lt;/p&gt;

&lt;p&gt;If you have used SQL before, you will find that MariaDB is quite straight forward to work with&lt;/p&gt;

&lt;p&gt;You can try MariaDB as an add-on to any of the technologies we support from our homepage&lt;/p&gt;

&lt;p&gt;&lt;a href="https://diploi.com/#StackBuilder" rel="noopener noreferrer"&gt;https://diploi.com/#StackBuilder&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;To learn more about MariaDB, check their website &lt;a href="https://mariadb.com/" rel="noopener noreferrer"&gt;https://mariadb.com/&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;We are now working on new components for Python and PHP, so we hope to have an update soon! &lt;/p&gt;

&lt;p&gt;Keep building friend! 🫡&lt;/p&gt;




&lt;h4&gt;
  
  
  &lt;a href="https://diploi.com/" rel="noopener noreferrer"&gt;Try Diploi for free ✨&lt;/a&gt;
&lt;/h4&gt;




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

&lt;p&gt;&lt;a href="https://nuejs.org/docs/faq.html#most-applications-dont-need-web" rel="noopener noreferrer"&gt;https://nuejs.org/docs/faq.html#most-applications-dont-need-web&lt;/a&gt;&lt;br&gt;
&lt;a href="https://svelte.dev/docs/kit/introduction" rel="noopener noreferrer"&gt;https://svelte.dev/docs/kit/introduction&lt;/a&gt;&lt;br&gt;
&lt;a href="https://mariadb.com/resources/blog/why-should-you-migrate-from-mysql-to-mariadb/" rel="noopener noreferrer"&gt;https://mariadb.com/resources/blog/why-should-you-migrate-from-mysql-to-mariadb/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.hostinger.com/tutorials/mariadb-vs-mysql#Pros_and_Cons_of_MariaDB" rel="noopener noreferrer"&gt;https://www.hostinger.com/tutorials/mariadb-vs-mysql#Pros_and_Cons_of_MariaDB&lt;/a&gt;&lt;/p&gt;

</description>
      <category>nue</category>
      <category>svelte</category>
      <category>mariadb</category>
      <category>webdev</category>
    </item>
    <item>
      <title>How to create dynamic GitHub Actions based on the contents of a repository</title>
      <dc:creator>Javier Hernandez</dc:creator>
      <pubDate>Wed, 02 Apr 2025 10:54:07 +0000</pubDate>
      <link>https://dev.to/diploi/how-to-create-dynamic-github-actions-based-on-the-contents-of-a-repository-50j8</link>
      <guid>https://dev.to/diploi/how-to-create-dynamic-github-actions-based-on-the-contents-of-a-repository-50j8</guid>
      <description>

&lt;h6&gt;
  
  
  If you are here, you probably know what GitHub Actions are and understand the basics of YAML
&lt;/h6&gt;




&lt;h2&gt;
  
  
  Dynamic GitHub Actions
&lt;/h2&gt;

&lt;p&gt;GitHub Actions allow you to create jobs programmatically by using something called &lt;a href="https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/accessing-contextual-information-about-workflow-runs#matrix-context" rel="noopener noreferrer"&gt;&lt;code&gt;matrix&lt;/code&gt; strategy&lt;/a&gt;. In this guide, we'll show how we use &lt;code&gt;matrix&lt;/code&gt; strategies at Diploi to generate dynamic GitHub Action jobs, based on the configuration that applications generated using Diploi have&lt;/p&gt;

&lt;p&gt;For context, all applications generated on Diploi, have a mono-repo folder structure and every time a user launches a deployment, Diploi uses Kubernetes to create isolated Docker containers for each component (eg. Nextjs, Node, Svelte, etc) that the application created has. Every time a user pushes a new update to GitHub, we need to update the Docker images that Kubernetes will be running&lt;/p&gt;

&lt;p&gt;For an application on Diploi, we build two Docker images per component in the stack, one image for development, which has a cloud development environment and another image for staging/production environments without a development environment. The components of an application built using Diploi come from our &lt;a href="https://dev.to/diploi/easily-create-complex-stacks-in-just-a-few-clicks-new-release-3gdl"&gt;Stack Builder&lt;/a&gt;, where you can configure a new application&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%2Fc0ypuers5o7uyci5rwav.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%2Fc0ypuers5o7uyci5rwav.png" alt="Diploi Stack Builder" width="800" height="451"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Walkthrough
&lt;/h2&gt;

&lt;p&gt;For this guide, we'll use an application with &lt;a href="https://diploi.com/component/bun" rel="noopener noreferrer"&gt;Bun&lt;/a&gt; and &lt;a href="https://diploi.com/component/react-vite" rel="noopener noreferrer"&gt;React+Vite&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In the backend, each component that's part of the stack of this application is sent to an API that generates the application's folders and creates a &lt;code&gt;diploi.yaml&lt;/code&gt; file which serves as the blueprint for our implementation of Kubernetes and Docker, plus &lt;code&gt;Build.yaml&lt;/code&gt; file for our GitHub Action&lt;/p&gt;

&lt;p&gt;The output from the API is a new application with a folder structure that looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;root/
    .github/
        workflow/
            Build.yaml
    bun/
    vite/
    diploi.yaml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We'll focus on the &lt;code&gt;Build.yaml&lt;/code&gt; file, which it has all the instructions that will be run by the GitHub Action runner and it's the same file we generate for all applications created using Diploi's Stack Builder. Let's look at &lt;code&gt;Build.yaml&lt;/code&gt; closer:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Build Components&lt;/span&gt;

&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;push&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;branches&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;*'&lt;/span&gt;

&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;define-components&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Define Components&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
    &lt;span class="na"&gt;outputs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;components&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ steps.diploi-meta.outputs.components }}&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Checkout code&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v3&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;id&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;diploi-meta&lt;/span&gt;
        &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Diploi meta&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;diploi/action-components@v1.6-alpha&lt;/span&gt;
  &lt;span class="na"&gt;run-builds&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Build ${{ matrix.name }} ${{ matrix.stage }}&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
    &lt;span class="na"&gt;needs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;define-components&lt;/span&gt;
    &lt;span class="na"&gt;strategy&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;fail-fast&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;
      &lt;span class="na"&gt;matrix&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
        &lt;span class="na"&gt;include&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ fromJSON(needs.define-components.outputs.components) }}&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Checkout code&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v3&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Diploi build&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;diploi/action-build@v1.7-alpha&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ matrix }}&lt;/span&gt;
        &lt;span class="na"&gt;env&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;project&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.DIPLOI_REGISTRY_PROJECT }}&lt;/span&gt;
          &lt;span class="na"&gt;registry&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.DIPLOI_REGISTRY_HOSTNAME }}&lt;/span&gt;
          &lt;span class="na"&gt;username&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.DIPLOI_REGISTRY_USERNAME }}&lt;/span&gt;
          &lt;span class="na"&gt;password&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.DIPLOI_REGISTRY_PASSWORD }}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Deep dive
&lt;/h3&gt;

&lt;p&gt;In a nutshell, our GitHub Action is divided in two jobs, &lt;code&gt;define-components&lt;/code&gt; and &lt;code&gt;run-builds&lt;/code&gt;, where &lt;code&gt;define-components&lt;/code&gt; will generate the components based on our choices from the Stack Builder, which then will be passed to &lt;code&gt;run-builds&lt;/code&gt; to create the builds for each component&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Let's breakdown these two jobs in detail:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;define-components&lt;/code&gt; - &lt;a href="https://github.com/diploi/action-components/tree/main" rel="noopener noreferrer"&gt;https://github.com/diploi/action-components/tree/main&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This job is in charge of creating an array of objects with the metadata from each component and add-on that will be part of our application. The action is stored on a separate repository, which houses an &lt;code&gt;action.yml&lt;/code&gt; file which is the entry point for the GitHub Action runner and a node script with the code that takes in the components and add-ons details by reading the &lt;code&gt;diploi.yaml&lt;/code&gt; file in the root of our monorepo.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Diploi&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Component&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Metadata&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Action'&lt;/span&gt;
&lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;An&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;action&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;that&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;collects&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;component&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;metadata&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;from&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;a&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Diploi&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;stack'&lt;/span&gt;
&lt;span class="na"&gt;branding&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
&lt;span class="na"&gt;icon&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;package'&lt;/span&gt;
&lt;span class="na"&gt;color&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;purple'&lt;/span&gt;

&lt;span class="na"&gt;outputs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
&lt;span class="na"&gt;components&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;List&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;of&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;components&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;(identifier,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;name,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;folder,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;type,&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;ref)&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;that&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;need&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;to&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;be&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;built'&lt;/span&gt;

&lt;span class="na"&gt;runs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
&lt;span class="na"&gt;using&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;node20'&lt;/span&gt;
&lt;span class="na"&gt;main&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;index.js'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;define-components&lt;/code&gt; job executes a file called &lt;code&gt;index.js&lt;/code&gt; that when the job is completed, will generate an output array which then will be used by the next job &lt;code&gt;run-builds&lt;/code&gt;,&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;//...&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;componentOutput&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;identifier&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;component&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;identifier&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;component&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;name&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nx"&gt;component&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;identifier&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;folder&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;component&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;identifier&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;isDevImageAvailable&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;main&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;main-dev&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;};&lt;/span&gt;

&lt;span class="c1"&gt;//...&lt;/span&gt;

&lt;span class="nx"&gt;core&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setOutput&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;components&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;componentsOutput&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Let's take a look at the output of the job&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="nl"&gt;"identifier"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"bun"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"Bun"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"folder"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"bun"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"main"&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="nl"&gt;"identifier"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"bun"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"Bun Dev"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"folder"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"bun"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"dev"&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="nl"&gt;"identifier"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"react-vite"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"React + Vite"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"folder"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"react-vite"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"main"&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="nl"&gt;"identifier"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"react-vite"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"React + Vite Dev"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"folder"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"react-vite"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="nl"&gt;"type"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s2"&gt;"dev"&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;p&gt;This output will be used as arguments that will dynamically generate the next job steps&lt;/p&gt;




&lt;p&gt;&lt;code&gt;run-builds&lt;/code&gt; - &lt;a href="https://github.com/diploi/action-build/tree/main" rel="noopener noreferrer"&gt;https://github.com/diploi/action-build/tree/main&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Until this point, I talked about the &lt;code&gt;run-builds&lt;/code&gt; job in singular, but as you might have noticed, the output from &lt;code&gt;define-components&lt;/code&gt; will be an array which will then be used to generate an instance of the &lt;code&gt;run-builds&lt;/code&gt; job for each object in the array&lt;/p&gt;

&lt;p&gt;In &lt;code&gt;run-builds&lt;/code&gt; we use the &lt;code&gt;matrix&lt;/code&gt; strategy to make the job into dynamically generated jobs. This makes our process scalable since we don't need to have a unique action per component, and instead we can have a single action that takes each output object properties and runs a separate job dynamically&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%2Fx7engai9cbbgv6jcejwb.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%2Fx7engai9cbbgv6jcejwb.png" alt="GitHub Action tree" width="633" height="263"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now that you have seen &lt;code&gt;matrix&lt;/code&gt; strategies in action, you might have an idea as to how to generate jobs programmatically when running GitHub Actions&lt;/p&gt;




&lt;p&gt;Go out there and make us proud! 🫡&lt;/p&gt;




&lt;h6&gt;
  
  
  Prefer to not worry about GitHub actions when launching your next application? &lt;a href="https://diploi.com/" rel="noopener noreferrer"&gt;Try Diploi ✨&lt;/a&gt;
&lt;/h6&gt;




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

&lt;p&gt;&lt;a href="https://docs.diploi.com/reference/diploi-yaml" rel="noopener noreferrer"&gt;https://docs.diploi.com/reference/diploi-yaml&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dev.to/diploi/how-we-solved-infrastructure-as-code-2ldn"&gt;https://dev.to/diploi/how-we-solved-infrastructure-as-code-2ldn&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/accessing-contextual-information-about-workflow-runs" rel="noopener noreferrer"&gt;https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/accessing-contextual-information-about-workflow-runs&lt;/a&gt;&lt;/p&gt;

</description>
      <category>githubactions</category>
      <category>cicd</category>
      <category>devops</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Why we don't use an ORM and why you (probably) shouldn't</title>
      <dc:creator>Javier Hernandez</dc:creator>
      <pubDate>Wed, 26 Mar 2025 11:37:59 +0000</pubDate>
      <link>https://dev.to/diploi/why-we-dont-use-an-orm-and-why-you-probably-shouldnt-4cfo</link>
      <guid>https://dev.to/diploi/why-we-dont-use-an-orm-and-why-you-probably-shouldnt-4cfo</guid>
      <description>&lt;p&gt;Jump to TLDR? &amp;gt;&lt;/p&gt;




&lt;h6&gt;
  
  
  This post is mainly intended for coders early in their careers, ✨&lt;em&gt;vibe coders&lt;/em&gt;✨ and anyone using an ORM just because
&lt;/h6&gt;




&lt;h2&gt;
  
  
  We do not use ORMs
&lt;/h2&gt;

&lt;p&gt;We have tried all kinds of ORMs and in the end they have all proven to be a hindrance. Our recommendation: Bite the bullet, learn your SQL and as a bonus, you will have a skill that lasts for life. ORMs add a layer of abstraction that will give you all kinds of nightmares&lt;/p&gt;

&lt;p&gt;Now, I imagine, if you use ORMs regularly, your blood pressure went up a tiny bit, so I'll add a caveat here:&lt;/p&gt;

&lt;p&gt;If you are working on somewhat simple applications, without unusual reads and/or writes, sure!&lt;/p&gt;

&lt;p&gt;Writing &lt;code&gt;SELECT &amp;lt;something&amp;gt; FROM &amp;lt;someTable&amp;gt;&lt;/code&gt; for every case when you need to query/insert/delete/patch some data seems silly, we recognize that&lt;/p&gt;

&lt;p&gt;That's why in our specific case, where we do quite advanced SQL, process lots of logs and manage a diverse range of resources for our clients, we can't afford to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Learn the ins and outs of ORMs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Rely on the performance promised by ORMs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Trust that the ORM we choose is as safe or that it will be maintained as the underlying query language would&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you use an ORM, I would bet that there's a chance that it is because you saw &lt;code&gt;&amp;lt;insert tech influencer name here&amp;gt;&lt;/code&gt; using said ORM and you thought "Ah! This sponsored product will make me better!"&lt;/p&gt;

&lt;p&gt;Was that the case? 🤨&lt;/p&gt;

&lt;p&gt;If that was your reason to use XYZ ORM, that's ok, I myself learned Haskell for a few hours because ThePrimeagen said it's the future, I wasn't aware it was a meme... so no shaming here friend, I'm just building awareness, that ORMs are not it 😊&lt;/p&gt;




&lt;h3&gt;
  
  
  Conclusion
&lt;/h3&gt;

&lt;p&gt;Hopefully, my bias rant above doesn't imply that "ORM bad", because they are not, but they aren't a "better" replacement for the native query language of your database&lt;/p&gt;

&lt;p&gt;I'll leave you with a few points you should ponder about if you lean towards using an ORM in your application:&lt;/p&gt;




&lt;h4&gt;
  
  
  Database read/write security
&lt;/h4&gt;

&lt;p&gt;By having plain query language, you have no 'magic' behaviors, which facilitates audits and removes dependency on external libraries and tooling, which could introduce vulnerabilities through your ORM of choice&lt;/p&gt;

&lt;p&gt;If you plan on getting your application audited or apply for security certifications, using ORMs will make the already painful process, much more painful &lt;/p&gt;




&lt;h4&gt;
  
  
  Debugging and scalability
&lt;/h4&gt;

&lt;p&gt;Using ORMs obfuscates debugging since you rely on the ORM to interact with your database and complicates how your application scales&lt;/p&gt;

&lt;p&gt;As queries grow in complexity, you can find yourself running operations through an ORM, which can have unexpected behaviors through the abstractions they offer, so if an exception is thrown, you will need to become familiar with the ORM's inner workings, on top of knowing the underlying query language&lt;/p&gt;

&lt;p&gt;In our opinion, it's better to dedicate your effort to the native language of your database (which is already A LOT) rather than spending more time figuring out how to do the same work through the ORM abstractions&lt;/p&gt;




&lt;h4&gt;
  
  
  Portability
&lt;/h4&gt;

&lt;p&gt;Abstracting how you query/insert your database to be able to change easily to a new database is naive at best&lt;/p&gt;

&lt;p&gt;In reality, once your app complexity grows, your database will do too, so you can use whatever database-agnostic ORM to move your application from one database to another, but that doesn't mean you will be able to just "switch" without doing any rewriting to your database queries&lt;/p&gt;

&lt;p&gt;Sure, let's say you move from psql to MariaDB, your ORM might do well enough and you might not have to do any rewriting, but, if you are moving to a different database, chances are that if you will be changing to a entirely different paradigm than you current database logic, in which case using an ORM will obscure the transition and give you more headaches when porting your current database logic&lt;/p&gt;

&lt;p&gt;Using an ORM for 'portability' does not mean you are guaranteed a free lunch&lt;/p&gt;




&lt;p&gt;Let me be clear again, it is ok to use an ORM, but in a time when ✨&lt;em&gt;vibe coding&lt;/em&gt;✨ has (forcibly) become a thing, you should be aware of this ~20 year old discussion about ORMs and what you are risking in the pursuit of convenience&lt;/p&gt;




&lt;h3&gt;
  
  
  TLDR
&lt;/h3&gt;

&lt;p&gt;ORM's abstractions can wreck your life so be cautious&lt;/p&gt;

&lt;p&gt;No ORM will beat learning about your database's paradigm and their base query language, rather than relying on an abstraction&lt;/p&gt;




&lt;p&gt;Have a great day ✌&lt;/p&gt;




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

&lt;p&gt;&lt;a href="https://stackoverflow.com/questions/194147/are-there-good-reasons-not-to-use-an-orm" rel="noopener noreferrer"&gt;https://stackoverflow.com/questions/194147/are-there-good-reasons-not-to-use-an-orm&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/pulse/end-orm-why-you-should-abandon-obsolete-approach-evangelista--kst6f/" rel="noopener noreferrer"&gt;https://www.linkedin.com/pulse/end-orm-why-you-should-abandon-obsolete-approach-evangelista--kst6f/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://news.ycombinator.com/item?id=4260288" rel="noopener noreferrer"&gt;https://news.ycombinator.com/item?id=4260288&lt;/a&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>discuss</category>
      <category>learning</category>
      <category>performance</category>
    </item>
  </channel>
</rss>
