<?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: CodeSandbox</title>
    <description>The latest articles on DEV Community by CodeSandbox (@codesandboxio).</description>
    <link>https://dev.to/codesandboxio</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F3772%2F2573f212-096d-4463-a7fe-fd0899bb8d6d.png</url>
      <title>DEV Community: CodeSandbox</title>
      <link>https://dev.to/codesandboxio</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/codesandboxio"/>
    <language>en</language>
    <item>
      <title>Inside the Box: September Community Update</title>
      <dc:creator>Filipe Lima</dc:creator>
      <pubDate>Tue, 15 Oct 2024 17:43:57 +0000</pubDate>
      <link>https://dev.to/codesandboxio/inside-the-box-september-community-update-52ld</link>
      <guid>https://dev.to/codesandboxio/inside-the-box-september-community-update-52ld</guid>
      <description>&lt;p&gt;Hi there 👋&lt;/p&gt;

&lt;p&gt;We are back with a fresh "Inside the Box" issue to keep you updated with the CodeSandbox highlights from last month.&lt;/p&gt;

&lt;p&gt;Let's dive right in!&lt;/p&gt;




&lt;h2&gt;
  
  
  Latest Product News
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://codesandboxstatus.statuspage.io/" rel="noopener noreferrer"&gt;New status page &amp;amp; improved error messages&lt;/a&gt; 🚨&lt;/strong&gt; — We have received lots of feedback about our error messages and we hear you! So, we have introduced a new detailed &lt;a href="https://codesandboxstatus.statuspage.io/" rel="noopener noreferrer"&gt;status page&lt;/a&gt; and improved our error messages to display relevant system status details.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.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%2F80yf8txx6f1jiwkshgwa.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.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%2F80yf8txx6f1jiwkshgwa.jpg" alt="System Status" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sandpack accessibility improvements to the file tab bar&lt;/strong&gt; 🙌 — Sandpack is now more accessible! This update improves focus management and ensures interactive elements are keyboard accessible and visually highlighted when focused. It also brings adjustments to the tab button structure and keyboard controls for better usability. Huge shoutout to &lt;a href="https://github.com/shrilakshmishastry" rel="noopener noreferrer"&gt;shrilakshmishastry&lt;/a&gt; for contributing with this &lt;a href="https://github.com/codesandbox/sandpack/pull/1184" rel="noopener noreferrer"&gt;PR&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tons of improvements and bug fixes&lt;/strong&gt; 🐞 — After our &lt;a href="https://codesandbox.io/blog/a-new-and-improved-editor-powered-by-vs-code-web" rel="noopener noreferrer"&gt;big editor changes&lt;/a&gt;, September was a significant consolidation and retrospective month. We shipped dozens of UX improvements and bug fixes that resulted in better stability and performance across the board.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://codesandbox.io/changelog" rel="noopener noreferrer"&gt;Full changelog&lt;/a&gt; 📜&lt;/strong&gt; — For a comprehensive list of all other improvements and fixes we released last month, check out the full &lt;a href="https://codesandbox.io/changelog" rel="noopener noreferrer"&gt;changelog&lt;/a&gt;!&lt;/p&gt;




&lt;h2&gt;
  
  
  Web Bytes
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://x.com/nutlope/status/1839016682729226699" rel="noopener noreferrer"&gt;Napkins &amp;amp; Sandpack&lt;/a&gt; 🤝&lt;/strong&gt; — Once again, we were thrilled to see Sandpack in action in &lt;a href="https://napkins.dev" rel="noopener noreferrer"&gt;napkins.dev&lt;/a&gt;, a tool that uses AI to transform a wireframe into a fully working app. Kudos to &lt;a href="https://x.com/nutlope" rel="noopener noreferrer"&gt;@nutlope&lt;/a&gt; for bringing these open-source tools to the community!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://napkins.dev" rel="noopener noreferrer"&gt;&lt;img src="https://media.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%2Fqrctwizkj2zovbl4js00.gif" alt="Napkins &amp;amp; Sandpack" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://x.com/xmliszt/status/1833931118795723120" rel="noopener noreferrer"&gt;Three.js Wiggle Bones Starter&lt;/a&gt; 🦴&lt;/strong&gt; — We always love seeing new Three.js examples! This &lt;a href="https://codesandbox.io/p/devbox/wiggle-bones-for-three-js-example-pv98hd" rel="noopener noreferrer"&gt;Devbox&lt;/a&gt; by &lt;a href="https://x.com/xmliszt" rel="noopener noreferrer"&gt;@xmliszt&lt;/a&gt; invites you to start wiggling with this Three.js library.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codesandbox.io/p/devbox/wiggle-bones-for-three-js-example-pv98hd" rel="noopener noreferrer"&gt;&lt;img src="https://media.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%2F0wn3s72lz1kg1ten5z39.gif" alt="Three.js Wiggle Bones Starter" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Thank You 🖤
&lt;/h2&gt;

&lt;p&gt;We hope you enjoyed this issue of Inside the Box!&lt;/p&gt;

&lt;p&gt;We are curious about what &lt;strong&gt;you&lt;/strong&gt; feel is missing from these newsletters and what &lt;strong&gt;you&lt;/strong&gt; would like us to add to the next one!&lt;/p&gt;

&lt;p&gt;What should we bring next? Tell us on &lt;a href="https://www.codesandbox.community/" rel="noopener noreferrer"&gt;our community space&lt;/a&gt;!&lt;/p&gt;

</description>
      <category>community</category>
      <category>webdev</category>
      <category>product</category>
    </item>
    <item>
      <title>Inside the Box: August Community Update</title>
      <dc:creator>Filipe Lima</dc:creator>
      <pubDate>Thu, 12 Sep 2024 15:54:47 +0000</pubDate>
      <link>https://dev.to/codesandboxio/inside-the-box-august-community-update-5flm</link>
      <guid>https://dev.to/codesandboxio/inside-the-box-august-community-update-5flm</guid>
      <description>&lt;p&gt;Hello hello 👋&lt;/p&gt;

&lt;p&gt;We are back with a fresh "Inside the Box" issue to keep you updated with the CodeSandbox highlights from last month.&lt;/p&gt;

&lt;p&gt;Ok, let's go!&lt;/p&gt;

&lt;h2&gt;
  
  
  Latest Product News
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://x.com/danilowoz/status/1823387744279642349" rel="noopener noreferrer"&gt;New &amp;amp; improved template picker&lt;/a&gt; 🔥&lt;/strong&gt; — Now, we show a single modal that combines all our templates, making it easier to find the ideal language and runtime for your project. You can combine our filters to find anything in seconds. &lt;a href="https://codesandbox.io/new" rel="noopener noreferrer"&gt;Check it out&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fep4te0xs7v3frc3q48ys.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fep4te0xs7v3frc3q48ys.gif" alt="New Template Picker" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://x.com/danilowoz/status/1824059421380497465" rel="noopener noreferrer"&gt;Sandpack static file support&lt;/a&gt; 🖼️&lt;/strong&gt; — You can now serve static files inside a &lt;a href="https://sandpack.codesandbox.io/" rel="noopener noreferrer"&gt;Sandpack&lt;/a&gt; instance! This beta feature allows serving SVGs, fonts, images, and much more, which helps take isolated, interactive code examples to a new level!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg1m6o3ypacpmduhu6afj.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg1m6o3ypacpmduhu6afj.gif" alt="Sandpack Static File Support" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deprecated the legacy editor&lt;/strong&gt; 👋 — After 7 years, we have officially deprecated our original “v1” editor, which is now replaced by our &lt;a href="https://codesandbox.io/blog/a-new-and-improved-editor-powered-by-vs-code-web" rel="noopener noreferrer"&gt;new editor&lt;/a&gt; powered by VS Code Web.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://codesandbox.io/changelog" rel="noopener noreferrer"&gt;Full changelog&lt;/a&gt; 📜&lt;/strong&gt; — For a comprehensive list of all other improvements and fixes we released last month, check out the full &lt;a href="https://codesandbox.io/changelog" rel="noopener noreferrer"&gt;changelog&lt;/a&gt;!&lt;/p&gt;




&lt;h2&gt;
  
  
  Web Bytes
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://x.com/nutlope/status/1819445838705578091" rel="noopener noreferrer"&gt;LlamaCoder &amp;amp; Sandpack&lt;/a&gt; 🤯&lt;/strong&gt; — &lt;a href="https://llamacoder.together.ai/" rel="noopener noreferrer"&gt;LlamaCoder&lt;/a&gt;, by &lt;a href="https://x.com/nutlope" rel="noopener noreferrer"&gt;@nutlope&lt;/a&gt;, is one of the most exciting projects we've seen in a long time! It uses Llama 3.1 and Together AI to generate full React apps and components based on a prompt, and then uses our very own Sandpack to display the generated code in seconds in a live playground.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://llamacoder.together.ai/" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F82u5i8gdbxeu91jfjwxs.jpg" alt="LlamaCoder &amp;amp; Sandpack" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Thank You 🖤
&lt;/h2&gt;

&lt;p&gt;We hope you enjoyed this issue of Inside the Box!&lt;/p&gt;

&lt;p&gt;We are curious about what &lt;strong&gt;you&lt;/strong&gt; feel is missing from these newsletters and what &lt;strong&gt;you&lt;/strong&gt; would like us to add to the next one!&lt;/p&gt;

&lt;p&gt;What should we bring next? Tell us on &lt;a href="https://www.codesandbox.community/" rel="noopener noreferrer"&gt;our community space&lt;/a&gt;!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>community</category>
    </item>
    <item>
      <title>Inside the Box: July Community Update</title>
      <dc:creator>Filipe Lima</dc:creator>
      <pubDate>Thu, 08 Aug 2024 15:46:42 +0000</pubDate>
      <link>https://dev.to/codesandboxio/inside-the-box-july-community-update-8h5</link>
      <guid>https://dev.to/codesandboxio/inside-the-box-july-community-update-8h5</guid>
      <description>&lt;p&gt;Hi there 👋&lt;/p&gt;

&lt;p&gt;We are back with another issue of "Inside the Box," a summary of the CodeSandbox highlights from last month.&lt;/p&gt;

&lt;p&gt;Let's jump right into it!&lt;/p&gt;

&lt;h2&gt;
  
  
  Latest Product News
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://codesandbox.io/blog/a-new-and-improved-editor-powered-by-vs-code-web" rel="noopener noreferrer"&gt;New editor powered by VS Code Web&lt;/a&gt; 🔥&lt;/strong&gt; — After additional testing with thousands of beta users, we have officially rolled out our &lt;a href="https://codesandbox.io/docs/learn/editors/web-interface" rel="noopener noreferrer"&gt;new editor&lt;/a&gt; powered by VS Code Web. Our biggest editor overhaul in years combines the familiarity and extensibility of VS Code Web with the power of CodeSandbox DevTools. For now, you can revert to the old experience by clicking “Disable VS Code Web” at the editor's top right.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mjbM0_uh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://assets.codesandbox.io/images/changelog-vscode-web-overview.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mjbM0_uh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://assets.codesandbox.io/images/changelog-vscode-web-overview.jpg" alt="VS Code Web Overview" width="800" height="523"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://x.com/danilowoz/status/1816101926196445595" rel="noopener noreferrer"&gt;New &amp;amp; improved Test Runner&lt;/a&gt; 🧪&lt;/strong&gt; — Many of our users have relied on the tests feature of our legacy editor for educational purposes and prototyping new features in isolation. Now, it's available in our new editor and has some improvements like test auto-detection and pinning.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6P9mzXdt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://assets.codesandbox.io/images/newsletter-test-runner.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6P9mzXdt--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://assets.codesandbox.io/images/newsletter-test-runner.gif" alt="Test Runner" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://codesandbox.io/docs/learn" rel="noopener noreferrer"&gt;Major overhaul of the Docs&lt;/a&gt; 📄&lt;/strong&gt; — With the launch of the new editor, we saw the perfect opportunity to bundle a series of updates to our &lt;a href="https://codesandbox.io/docs/learn/" rel="noopener noreferrer"&gt;Docs&lt;/a&gt;. We have added and updated documentation pages for the main product flows and freshened up our FAQ with questions our community shared over the past few months.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://codesandbox.io/changelog" rel="noopener noreferrer"&gt;Full changelog&lt;/a&gt; 📜&lt;/strong&gt; — Last month, we also shipped several improvements and fixes to the CodeSandbox experience. Have a look at the &lt;a href="https://codesandbox.io/changelog" rel="noopener noreferrer"&gt;changelog&lt;/a&gt;!&lt;/p&gt;




&lt;h2&gt;
  
  
  Web Bytes
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://codesandbox.io/p/devbox/node-sqlite-with-node-js-nightly-vygw6p" rel="noopener noreferrer"&gt;node:sqlite running in CodeSandbox with Node.js nightly&lt;/a&gt; 🚀&lt;/strong&gt; — For all the Node enthusiasts out there, don't miss this &lt;a href="https://codesandbox.io/p/devbox/node-sqlite-with-node-js-nightly-vygw6p" rel="noopener noreferrer"&gt;Devbox&lt;/a&gt; by &lt;a href="https://x.com/karlhorky/status/1812436458529042602" rel="noopener noreferrer"&gt;@karlhorky&lt;/a&gt;, made possible by @cjihrig (node:sqlite) and @GNUmanth (node-nightly).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codesandbox.io/p/devbox/node-sqlite-with-node-js-nightly-vygw6p" rel="noopener noreferrer"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ATdLNbCj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://assets.codesandbox.io/images/newsletter-node-sqlite-devbox.png" alt="Node:sqlite Devbox" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://codesandbox.io/blog/how-we-improved-our-workflows-by-dogfooding-our-platform" rel="noopener noreferrer"&gt;How We Improved Our Workflows by Dogfooding Our Platform&lt;/a&gt; 💡&lt;/strong&gt; — We have been hearing good things from companies embracing cloud development, which reminded us of this excellent blog post by our product engineer Alex Moldovan. It describes some engineering breakthroughs our teams experienced while coding in the cloud. Worth a read!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codesandbox.io/blog/how-we-improved-our-workflows-by-dogfooding-our-platform" rel="noopener noreferrer"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mCUebRPm--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://assets.codesandbox.io/images/blog-dogfooding.png" alt="Dogfooding Our Platform" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Thank You 🖤
&lt;/h2&gt;

&lt;p&gt;We hope you enjoyed this issue of Inside the Box!&lt;/p&gt;

&lt;p&gt;We are curious about what &lt;strong&gt;you&lt;/strong&gt; feel is missing from these newsletters and what &lt;strong&gt;you&lt;/strong&gt; would like us to add to the next one!&lt;/p&gt;

&lt;p&gt;What should we bring next? Tell us on &lt;a href="https://www.codesandbox.community/" rel="noopener noreferrer"&gt;our community space&lt;/a&gt;!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>product</category>
      <category>community</category>
    </item>
    <item>
      <title>Inside the Box: June Community Update</title>
      <dc:creator>Filipe Lima</dc:creator>
      <pubDate>Tue, 09 Jul 2024 12:16:42 +0000</pubDate>
      <link>https://dev.to/codesandboxio/inside-the-box-june-community-update-4dp2</link>
      <guid>https://dev.to/codesandboxio/inside-the-box-june-community-update-4dp2</guid>
      <description>&lt;p&gt;Hey there 👋&lt;/p&gt;

&lt;p&gt;Welcome back to "Inside the Box"! We've packed this issue with all the best bits from last month.&lt;/p&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;

&lt;h2&gt;
  
  
  Latest Product News
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://codesandbox.io/docs/learn/editors/web/vscode-web" rel="noopener noreferrer"&gt;VS Code Web editor (beta)&lt;/a&gt; 🌟&lt;/strong&gt; — After several weeks of testing and iterations based on feedback from users who tested the experimental &lt;a href="https://codesandbox.io/docs/learn/editors/web/vscode-web" rel="noopener noreferrer"&gt;VS Code Web editor&lt;/a&gt;, it is now available in beta to everyone! To enable the beta editor, click the “VS Code Web” button at the right of the editor's top bar.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mjbM0_uh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://assets.codesandbox.io/images/changelog-vscode-web-overview.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mjbM0_uh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://assets.codesandbox.io/images/changelog-vscode-web-overview.jpg" alt="VS Code Web Editor Overview" width="800" height="523"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Several editor improvements&lt;/strong&gt; 🔧 — As part of the rollout of the new editor, we're improving its overall stability and developer experience. If you need your shared URLs to open in the legacy editor, you can use a ?editorMode=v1 query string in the address bar. You can also access the legacy editor by disabling 'Unified platform editor' in the Experiments tab of the User Settings.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://codesandbox.io/changelog" rel="noopener noreferrer"&gt;Full changelog&lt;/a&gt;&lt;/strong&gt; 📜 — Want the inside scoop on everything else we've been working on? Head over to our website and check out the full &lt;a href="https://codesandbox.io/changelog" rel="noopener noreferrer"&gt;changelog&lt;/a&gt; – it's got all the details!&lt;/p&gt;




&lt;h2&gt;
  
  
  Events &amp;amp; Community
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://x.com/thejsnation/status/1806323707016626278" rel="noopener noreferrer"&gt;JS Nation Amsterdam&lt;/a&gt;&lt;/strong&gt; — "A full house" doesn't even begin to describe the &lt;a href="https://x.com/danieljcafonso/status/1801198044982935783" rel="noopener noreferrer"&gt;packed audience&lt;/a&gt; that gathered for our very own product engineer, Alex Moldovan, at JS Nation. His talk, "Lessons for building resilient codebases," was praised both for its content and delivery.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_SU5Lirc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pbs.twimg.com/media/GRFX9DeWYAAXIt1%3Fformat%3Djpg%26name%3Dlarge" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_SU5Lirc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pbs.twimg.com/media/GRFX9DeWYAAXIt1%3Fformat%3Djpg%26name%3Dlarge" alt="JS Nation Amsterdam" width="800" height="534"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Photo: &lt;a href="https://x.com/thejsnation/status/1806323707016626278" rel="noopener noreferrer"&gt;JSNation, Twitter&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://x.com/codesandbox/status/1803455448680636714" rel="noopener noreferrer"&gt;Sandpack Spotlight: Kempo&lt;/a&gt;&lt;/strong&gt; — Our community project highlight of the month goes to &lt;a href="https://kempo.io/" rel="noopener noreferrer"&gt;Kempo&lt;/a&gt;, a tool to build your code playgrounds using Sandpack. Kempo's approach makes it even easier to display live-running code examples, especially in content platforms like Hashnode.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--26NoKBhz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://assets.codesandbox.io/images/kempo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--26NoKBhz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://assets.codesandbox.io/images/kempo.png" alt="Kempo" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Thank You 🖤
&lt;/h2&gt;

&lt;p&gt;We hope you enjoyed this issue of Inside the Box!&lt;/p&gt;

&lt;p&gt;We are curious about what &lt;strong&gt;you&lt;/strong&gt; feel is missing from these newsletters and what &lt;strong&gt;you&lt;/strong&gt; would like us to add to the next one!&lt;/p&gt;

&lt;p&gt;What should we bring next? Tell us on &lt;a href="https://www.codesandbox.community/" rel="noopener noreferrer"&gt;our community space&lt;/a&gt;!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>product</category>
      <category>community</category>
    </item>
    <item>
      <title>Inside the Box: May Community Update</title>
      <dc:creator>Filipe Lima</dc:creator>
      <pubDate>Mon, 10 Jun 2024 18:27:48 +0000</pubDate>
      <link>https://dev.to/codesandboxio/inside-the-box-may-community-update-223l</link>
      <guid>https://dev.to/codesandboxio/inside-the-box-may-community-update-223l</guid>
      <description>&lt;p&gt;Hi there 👋&lt;/p&gt;

&lt;p&gt;With a new month upon us, it's time for a fresh issue of "Inside the Box" with all of last month's highlights.&lt;/p&gt;

&lt;p&gt;Let's go!&lt;/p&gt;

&lt;h2&gt;
  
  
  Latest Product News
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://codesandbox.io/blog/announcing-the-codesandbox-storybook-add-on" rel="noopener noreferrer"&gt;Storybook add-on&lt;/a&gt; 🧩&lt;/strong&gt; — We're making every story come to life with the &lt;a href="https://github.com/codesandbox/storybook-addon" rel="noopener noreferrer"&gt;CodeSandbox Storybook add-on&lt;/a&gt;! After configuring the add-on on your Storybook instance, you will see a button to open that story in a Sandbox, which is great for &lt;a href="https://codesandbox.io/blog/how-to-use-codesandbox-with-your-design-system" rel="noopener noreferrer"&gt;design system teams&lt;/a&gt; and sharing bug repros.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.codesandbox.io%2Fimages%2Fchangelog-storybook-button.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.codesandbox.io%2Fimages%2Fchangelog-storybook-button.jpg" alt="Storybook Button"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://codesandbox.io/blog/codesandbox-is-now-soc-2-compliant" rel="noopener noreferrer"&gt;CodeSandbox is now SOC 2 compliant&lt;/a&gt;&lt;/strong&gt; ✅ — This milestone reflects how we handle and process customers' data securely, meeting key security standards.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.codesandbox.io%2Fimages%2Fsoc-2-compliance.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.codesandbox.io%2Fimages%2Fsoc-2-compliance.png" alt="SOC 2 Compliance"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Unlimited public Sandboxes&lt;/strong&gt; 🚀 — After countless chats with our users, we decided to update our Free plan so it now includes unlimited public Sandboxes, 5 private Sandboxes and private npm.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Manual VM hibernation 🧊&lt;/strong&gt; — We have added an option to manually hibernate a VM from the editor's menu. This may be useful in cases where you want to immediately stop VM runtime.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.codesandbox.io%2Fimages%2Fchangelog-hibernate-vm.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.codesandbox.io%2Fimages%2Fchangelog-hibernate-vm.jpg" alt="Hibernate VM"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;VM credit spend meter 🧮&lt;/strong&gt; — We have added a UI element to the bottom left of the dashboard that displays VM credit expenditure in reference to the allocated quota. This makes it easier to monitor your spending.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.codesandbox.io%2Fimages%2Fchangelog-vm-runtime-meter.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.codesandbox.io%2Fimages%2Fchangelog-vm-runtime-meter.jpg" alt="VM Runtime Meter"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Public VM templates for free&lt;/strong&gt; — We have updated the logic of our public templates running in VMs so that their runtime is not billed to the workspace that created the template. This way, we're empowering everyone to create and share powerful templates with the community at no extra cost.&lt;/p&gt;




&lt;h2&gt;
  
  
  Web Bytes
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://codesandbox.io/blog/how-we-scale-our-microvm-infrastructure-using-low-latency-memory-decompression" rel="noopener noreferrer"&gt;How we scale our microVM infrastructure using low-latency memory decompression&lt;/a&gt;&lt;/strong&gt; — If you have a knack for infrastructure, you probably don't want to miss this blog post by our Co-Founder Ives, who explains how we scale our infrastructure to handle 2.5 million microVM resumes per month.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.codesandbox.io%2Fimages%2Fblog-decompression-banner.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.codesandbox.io%2Fimages%2Fblog-decompression-banner.png" alt="Decompression Banner"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://x.com/jsheroes/status/1795818857065759218" rel="noopener noreferrer"&gt;JS Heroes 2024&lt;/a&gt;&lt;/strong&gt; — It's all good vibes after this year's JS Heroes conference, founded by our Product Engineer Alex Moldovan. Lots of familiar faces around and many demos run in CodeSandbox. A sight to behold!&lt;/p&gt;




&lt;h2&gt;
  
  
  Thank You 🖤
&lt;/h2&gt;

&lt;p&gt;We hope you enjoyed this issue of Inside the Box!&lt;/p&gt;

&lt;p&gt;We are curious about what &lt;strong&gt;you&lt;/strong&gt; feel is missing from these newsletters and what &lt;strong&gt;you&lt;/strong&gt; would like us to add to the next one!&lt;/p&gt;

&lt;p&gt;What should we bring next? Tell us on &lt;a href="https://www.codesandbox.community/" rel="noopener noreferrer"&gt;our community space&lt;/a&gt;!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>product</category>
      <category>community</category>
    </item>
    <item>
      <title>Inside the Box: April Community Update</title>
      <dc:creator>Filipe Lima</dc:creator>
      <pubDate>Fri, 17 May 2024 11:27:27 +0000</pubDate>
      <link>https://dev.to/codesandboxio/inside-the-box-april-community-update-1074</link>
      <guid>https://dev.to/codesandboxio/inside-the-box-april-community-update-1074</guid>
      <description>&lt;p&gt;Hey folks 👋&lt;/p&gt;

&lt;p&gt;How's May treating you so far?&lt;/p&gt;

&lt;p&gt;We're happy to be back with the latest issue of "Inside the Box", an update on last month's highlights. Let's dive right in!&lt;/p&gt;

&lt;h2&gt;
  
  
  Latest Product News
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://twitter.com/CompuIves/status/1777321064311496732"&gt;VS Code Web &amp;amp; Extensions&lt;/a&gt; 🆚&lt;/strong&gt; — We've added support for VS Code Web as the default CodeSandbox editor! This experimental feature allows you to run and install VS Code extensions directly in CodeSandbox and customize your editor the way you like it. You can turn it on in Settings under "Experiments" (click on the CodeSandbox logo in the top left of the editor, then click "Settings" and go to "Experiments").&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_BVs6uRN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://assets.codesandbox.io/images/changelog-vs-code-web.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_BVs6uRN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://assets.codesandbox.io/images/changelog-vs-code-web.jpg" alt="VS Code Web" width="800" height="523"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://twitter.com/CompuIves/status/1780960480649257444"&gt;GitHub PR Extension&lt;/a&gt;&lt;/strong&gt; — Alongside VS Code Web support, we now also enable the GitHub PR Extension by default. This makes reviewing PRs using CodeSandbox much faster.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GGD14cls--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://assets.codesandbox.io/images/changelog-github-pr-extension.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GGD14cls--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://assets.codesandbox.io/images/changelog-github-pr-extension.jpg" alt="GitHub PR Extension" width="800" height="442"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Updated Dashboard &amp;amp; Workspace Onboarding 🌱&lt;/strong&gt; — Our dashboard now has a dedicated "&lt;a href="https://codesandbox.io/dashboard/get-started"&gt;Get started&lt;/a&gt;" section with useful tutorials, and new members are welcomed with a new onboarding to help us enhance their experience.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LwbnGFsZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://assets.codesandbox.io/images/changelog-dashboard-get-started.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LwbnGFsZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://assets.codesandbox.io/images/changelog-dashboard-get-started.jpg" alt="Dashboard Get Started" width="800" height="523"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Create repositories from starter templates&lt;/strong&gt; — Creating a brand-new repository in CodeSandbox is now much easier! In the dashboard you can pick from one of our starter templates and kick off a fresh repo to build your new project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3jIUjN4G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://assets.codesandbox.io/images/changelog-dashboard-repo-template.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3jIUjN4G--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://assets.codesandbox.io/images/changelog-dashboard-repo-template.jpg" alt="Repo Template" width="800" height="523"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Automatic domain-based invites ✉️&lt;/strong&gt; — Now, you can create an organization and claim a domain in your &lt;a href="https://codesandbox.io/t/org"&gt;workspace settings&lt;/a&gt; so that when a user registers with a matching email domain, they will see an option to join your workspace with a click.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Self-serve annual plans 🪙&lt;/strong&gt; — You can now directly subscribe to an annual subscription of &lt;a href="https://codesandbox.io/pricing"&gt;CodeSandbox Pro&lt;/a&gt;, which brings 30% savings compared to monthly billing.&lt;/p&gt;




&lt;h2&gt;
  
  
  Web Bytes
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://codesandbox.io/blog/whats-unique-about-codesandbox-cde"&gt;What's Unique about CodeSandbox CDEs&lt;/a&gt;&lt;/strong&gt; — If you've wondered how CodeSandbox is different from other cloud development environments out there, then don't miss this overview by Ives!&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://codesandbox.io/blog/how-to-use-codesandbox-with-your-design-system"&gt;How To Use CodeSandbox with Your Design System&lt;/a&gt;&lt;/strong&gt; — Ever since we launched CodeSandbox, we've seen several companies use our Sandboxes as part of their design system. So, we wrote a complete guide on the best ways to improve design system examples, documentation, bug repros, and more.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://youtu.be/nSsNLZAwrjw?t=118"&gt;Making Impact work with React 19&lt;/a&gt; 📽️&lt;/strong&gt; — Excited about the release of React 19? So are we! So much so that our lead engineer Christian took a deep dive into how some of the latest updates impact... Impact! Also a nice chance to see what it's like to use CodeSandbox on your work projects.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://youtu.be/nSsNLZAwrjw?t=118"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9W4JcNkE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://assets.codesandbox.io/images/newsletter-impact-react-19-christian.jpg" alt="Impact React 19" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Thank You 🖤
&lt;/h2&gt;

&lt;p&gt;We hope you enjoyed this issue of Inside the Box!&lt;/p&gt;

&lt;p&gt;We are curious about what &lt;strong&gt;you&lt;/strong&gt; feel is missing from these newsletters and what &lt;strong&gt;you&lt;/strong&gt; would like us to add to the next one!&lt;/p&gt;

&lt;p&gt;What should we bring next? Tell us on &lt;a href="https://www.codesandbox.community/"&gt;our community space&lt;/a&gt;!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>product</category>
      <category>community</category>
    </item>
    <item>
      <title>Inside the Box: March Community Update</title>
      <dc:creator>Filipe Lima</dc:creator>
      <pubDate>Tue, 16 Apr 2024 16:56:37 +0000</pubDate>
      <link>https://dev.to/codesandboxio/inside-the-box-march-community-update-3o46</link>
      <guid>https://dev.to/codesandboxio/inside-the-box-march-community-update-3o46</guid>
      <description>&lt;p&gt;Hallo allemaal 👋 (Which is how we'd say "Hi everyone" back at our HQ)&lt;/p&gt;

&lt;p&gt;Welcome to the latest issue of "Inside the Box", with a fresh update on all things CodeSandbox!&lt;/p&gt;

&lt;p&gt;Keep reading for a short and sweet summary of the main highlights from March.&lt;/p&gt;

&lt;h2&gt;
  
  
  Latest Product News
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;New repository import flow 🔥&lt;/strong&gt; — &lt;a href="https://codesandbox.io/blog/introducing-codesandbox-cde"&gt;CodeSandbox CDE&lt;/a&gt; is especially useful for working on your repositories. So, we have rebuilt the repo import flow from scratch, so that after you grant GitHub permissions, we automatically show a list of repos from your GitHub organizations that you can import with a click. You can also type an owner/name combination to quickly import any GitHub repo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eGN7OW3P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://assets.codesandbox.io/images/changelog-repo-import.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--eGN7OW3P--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://assets.codesandbox.io/images/changelog-repo-import.jpg" alt="Repository Import Flow" width="800" height="523"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Annual plans 🗓️&lt;/strong&gt; — &lt;a href="https://codesandbox.io/pricing"&gt;CodeSandbox Pro&lt;/a&gt; now has an annual billing option, which is especially useful for teams and companies looking for predictable billing. The process for starting an annual plan may take up to 24 hours for the time being.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Editing subscription add-ons ➕&lt;/strong&gt; — CodeSandbox Pro subscribers can now adjust their add-ons at any point through their &lt;a href="https://codesandbox.io/t/billing"&gt;workspace portal&lt;/a&gt;. All changes will take effect at the start of the upcoming billing cycle. Once a change has been scheduled, it may still be adjusted during the period before the billing cycle changes over.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--jnK9Pm_l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://assets.codesandbox.io/images/changelog-manage-addons.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--jnK9Pm_l--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://assets.codesandbox.io/images/changelog-manage-addons.jpg" alt="Manage Add-ons" width="800" height="523"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://twitter.com/AlfoniChristian/status/1775511023790805468"&gt;Seamless git checkout&lt;/a&gt; 📩&lt;/strong&gt; — Now, running git checkout in the terminal clones the VM of the original branch. This seamless flow encapsulates the "one VM per branch" approach that makes CodeSandbox unique.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--EZ15ueek--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://assets.codesandbox.io/gifs/git-checkout.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--EZ15ueek--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://assets.codesandbox.io/gifs/git-checkout.gif" alt="Git Checkout" width="600" height="338"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Web Bytes
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.youtube.com/watch?v=XNMlpL90e7s"&gt;Shared Composable State Stores Across Frameworks&lt;/a&gt;&lt;/strong&gt; — In the latest episode of our "CodeSandbox Engineering" series, our engineers Christian and Danilo explored how a simple function combined with reactive primitives could be a shared pattern for shared composable state stores in any framework.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=XNMlpL90e7s"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6ZusvfzQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://assets.codesandbox.io/images/shared-composable-state-thumbnail.jpg" alt="Shared Composable State" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://www.codesandbox.community/c/announcements/codesandbox-golden-tickets"&gt;Golden tickets&lt;/a&gt; 🎫&lt;/strong&gt; — We have released 5 golden tickets into the wild, each worth 1 month of unlimited usage. Tickets are hidden behind 5 super-secret milestones in our CDE. Two have been found so far, but expect an email from us if you find any of the remaining three!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--29XPPklX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pbs.twimg.com/media/GFMn9IXXoAAo_Iq%3Fformat%3Djpg%26name%3Dlarge" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--29XPPklX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://pbs.twimg.com/media/GFMn9IXXoAAo_Iq%3Fformat%3Djpg%26name%3Dlarge" alt="Golden Tickets" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Community Spotlight
&lt;/h2&gt;

&lt;p&gt;We love to shine a light on some of the best projects amazing people create using our platform.&lt;/p&gt;

&lt;p&gt;Today, we want to highlight one of the most recent projects approved for our "CodeSandbox Friends" program: &lt;a href="https://github.com/retejs/rete"&gt;Rete.js&lt;/a&gt;—a framework for creating visual interfaces and workflows.&lt;/p&gt;

&lt;p&gt;On their documentation, you will find &lt;a href="https://retejs.org/examples/chatbot"&gt;several examples&lt;/a&gt; running on CodeSandbox (like the one shown below), making it easier for anyone to see a demo and fork it to CodeSandbox to start building.&lt;/p&gt;

&lt;p&gt;If you're using CodeSandbox to work on licensed open-source software, developer community projects or non-profit organizations, you may be eligible for "CodeSandbox Friends". More details in our &lt;a href="https://codesandbox.io/docs/learn/plans/codesandbox-friends"&gt;Docs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://retejs.org/examples/chatbot"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--AieMWgk1--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://assets.codesandbox.io/images/retejs-codesandbox-friend-example.jpg" alt="Rete.js Example" width="800" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://twitter.com/xmliszt/status/1774381675461623944"&gt;Sandstorm animation&lt;/a&gt;&lt;/strong&gt; — Find your mind continuously wandering off to sandy beaches ⛱️? Well, so do we! So it was a nice surprise to feature the &lt;a href="https://codesandbox.io/p/sandbox/flamboyant-tdd-rzlm46"&gt;impressive work&lt;/a&gt; from &lt;a href="https://twitter.com/xmliszt"&gt;@xmliszt&lt;/a&gt; on our latest community spotlight ✨&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9GFkkxre--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://assets.codesandbox.io/gifs/sandstorm-gif.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9GFkkxre--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://assets.codesandbox.io/gifs/sandstorm-gif.gif" alt="Sandstorm Animation" width="600" height="338"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We really love seeing what &lt;strong&gt;you&lt;/strong&gt; build using CodeSandbox. So do share with us what you're working on or which insights you would like to hear from us.&lt;/p&gt;




&lt;h2&gt;
  
  
  Thank You 🖤
&lt;/h2&gt;

&lt;p&gt;We hope you enjoyed this issue of Inside the Box!&lt;/p&gt;

&lt;p&gt;We are curious about what &lt;strong&gt;you&lt;/strong&gt; feel is missing from these newsletters and what &lt;strong&gt;you&lt;/strong&gt; would like us to add to the next one!&lt;/p&gt;

&lt;p&gt;What should we bring next? Tell us on &lt;a href="https://www.codesandbox.community/"&gt;our community space&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;PS: If you also find the expression "Hallo allemaal" pretty funny, then certainly don't Google it—you might end up playing &lt;a href="https://www.youtube.com/watch?v=zfrmXF1N0ew"&gt;this song&lt;/a&gt; in a loop for 3 hours.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>product</category>
      <category>community</category>
    </item>
    <item>
      <title>Inside the Box: February Community Update</title>
      <dc:creator>Filipe Lima</dc:creator>
      <pubDate>Wed, 13 Mar 2024 18:52:19 +0000</pubDate>
      <link>https://dev.to/codesandboxio/inside-the-box-february-community-update-444g</link>
      <guid>https://dev.to/codesandboxio/inside-the-box-february-community-update-444g</guid>
      <description>&lt;p&gt;Hey everyone 👋&lt;/p&gt;

&lt;p&gt;We are back with our February update!&lt;/p&gt;

&lt;p&gt;"But wait," you ask, "aren't we halfway through March?"&lt;/p&gt;

&lt;p&gt;And right you are! But let's just say that we've been so busy after the big CodeSandbox CDE release that we have just now got to writing this update.&lt;/p&gt;

&lt;p&gt;So, let's get started looking at everything that's been happening in the &lt;em&gt;CodeSandboxosphere&lt;/em&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Latest Product News
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://twitter.com/CompuIves/status/1760332447521333503" rel="noopener noreferrer"&gt;Simpler VM resizing&lt;/a&gt; 🔥 — Say you've been working on a feature branch in CodeSandbox CDE and have to run an especially resource-intensive task. Don't you wish you could give that VM some more juice for a few minutes? Well, now you can do it using the VM resizing option, right from the editor!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/CompuIves/status/1760332447521333503" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.codesandbox.io%2Fgifs%2Fvm-specs-change-editor.gif" alt="Simpler VM resizing"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Team-based preview subdomains 🌐 — To empower a growing number of teams using CodeSandbox for their work projects, we have rolled out the ability to enable custom domains for previews. This can be helpful for cases like CORS "allow origin" headers, OAuth redirect URLs, and setting trusted URLs for forwarding requests. This feature can only be enabled &lt;a href="https://codesandbox.io/support" rel="noopener noreferrer"&gt;on request&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/alexnmoldovan/status/1760696858500874352" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fcodesandbox.io%2Fnew%2Fchangelog%2F2024-02-29-preview-subdomains-dashboard-editor-improvements%2Fchangelog-notifications.jpg" alt="Team-based preview subdomains"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/alexnmoldovan/status/1760696858500874352" rel="noopener noreferrer"&gt;Notifications for PR events&lt;/a&gt; 🔔 — Now, whenever a workspace has configured the &lt;a href="https://codesandbox.io/docs/learn/integrations/github-app" rel="noopener noreferrer"&gt;CodeSandbox GitHub App integration&lt;/a&gt;, workspace members will receive Dashboard notifications for events such as PR review requests, approvals, requested changes, and more.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codesandbox.io/new/changelog/2024-02-29-preview-subdomains-dashboard-editor-improvements/changelog-dashboard-nav.jpg" rel="noopener noreferrer"&gt;Better invite management 📩&lt;/a&gt; — Adding and managing users in your workspace is now easier than ever! Now, you can edit workspace members directly from the editor's 'Share' modal. Plus, the workspace member overview now also shows pending invitations and pending requests to join a workspace (which can be managed by workspace admins).&lt;/p&gt;




&lt;h2&gt;
  
  
  Meet Us @ Events
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=3Z_uu9wSYZ4" rel="noopener noreferrer"&gt;Developer Collaboration in the Cloud&lt;/a&gt; — Coding in cloud development environments can massively enhance sync and async collaboration. In this episode of "Bits and Boxes", CodeSandbox engineers Christian Alfoni, Alex Moldovan and Danilo Woznika highlighted some of the most valuable flows of collaborating in the cloud.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=3Z_uu9wSYZ4" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.codesandbox.io%2Fimages%2Fbits-and-boxes-3-thumbnail.jpg" alt="Developer Collaboration in the Cloud"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=tRSNkI4oOQU" rel="noopener noreferrer"&gt;Making the Codebase Accessible to Non-Coders&lt;/a&gt; — In yet another episode of Bits and Boxes, Alex invited Filipe from the Marketing team to explore CDE flows that are valuable to Marketing, Design and Product teams.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=tRSNkI4oOQU" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.codesandbox.io%2Fimages%2Fbits-and-boxes-4-thumbnail.jpg" alt="Making the Codebase Accessible to Non-Coders"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/sannekalkman/status/1763158379294245355" rel="noopener noreferrer"&gt;DevWorld Conference&lt;/a&gt; — On leap day, &lt;a href="https://twitter.com/sannekalkman" rel="noopener noreferrer"&gt;Sanne&lt;/a&gt; from our BeOps team was greeted by a full house at the DevWorld Conference in Amsterdam for the talk "Elixir: Happy Developers and Scaleable Backends".&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/aralroca/status/1763156486815916540" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpbs.twimg.com%2Fmedia%2FGHf9eV2WsAAJ6m2%3Fformat%3Djpg%26name%3Dlarge" alt="DevWorld Conference"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Web Bytes
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://codesandbox.io/blog/are-cdes-coming-to-replace-local-development" rel="noopener noreferrer"&gt;Are CDEs Coming to Replace Local Development?&lt;/a&gt; — The million-dollar question: coding in the cloud or locally? Well… why not both? This blog post from our Lead Engineer,  Christian, explores the different benefits, drawbacks and synergies of local development and CDEs.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.codesandbox.community/c/announcements/codesandbox-golden-tickets" rel="noopener noreferrer"&gt;Golden tickets 🎫&lt;/a&gt; — We have released 5 golden tickets into the wild, each worth 1 month of unlimited usage. Tickets are hidden behind 5 super-secret milestones in our CDE. Two have been found so far, but expect an email from us if you find any of the remaining three!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.codesandbox.community/c/announcements/codesandbox-golden-tickets" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fpbs.twimg.com%2Fmedia%2FGFMn9IXXoAAo_Iq%3Fformat%3Djpg%26name%3Dlarge" alt="Golden tickets"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Thank You 🖤
&lt;/h2&gt;

&lt;p&gt;We hope you enjoyed this issue of Inside the Box!&lt;/p&gt;

&lt;p&gt;We are curious about what &lt;strong&gt;you&lt;/strong&gt; feel is missing from these newsletters and what &lt;strong&gt;you&lt;/strong&gt; would like us to add to the next one!&lt;/p&gt;

&lt;p&gt;What should we bring next? Tell us on &lt;a href="https://www.codesandbox.community/" rel="noopener noreferrer"&gt;our community space&lt;/a&gt;!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>product</category>
      <category>community</category>
    </item>
    <item>
      <title>Inside the Box: First Big Community Update of 2024</title>
      <dc:creator>ioana</dc:creator>
      <pubDate>Thu, 15 Feb 2024 08:18:34 +0000</pubDate>
      <link>https://dev.to/codesandboxio/inside-the-box-first-big-community-update-of-2024-39fp</link>
      <guid>https://dev.to/codesandboxio/inside-the-box-first-big-community-update-of-2024-39fp</guid>
      <description>&lt;p&gt;Hello! Is there anybody out there? 👋&lt;/p&gt;

&lt;p&gt;We know it's been a while since the last newsletter but we've been busy bees during the last two months! The good news is that sharing so many great things in this one makes it even more exciting. A big release, a lot of new features and everything in between!&lt;/p&gt;

&lt;p&gt;Let's discover what we baked since our last newsletter!&lt;/p&gt;




&lt;h1&gt;
  
  
  Latest Product News
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://codesandbox.io/blog/introducing-codesandbox-cde"&gt;CodeSandbox CDE&lt;/a&gt; ☁️ — In our biggest launch since v1, in January we released CodeSandbox CDE, the cloud development experience we've been building for over 2 years (which started with "Projects" in 2022).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codesandbox.io/blog/introducing-dev-container-support-in-codesandbox"&gt;&lt;br&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k2vE1gD_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_800/https://assets.codesandbox.io/emails/2024/01/fast-branching.gif" width="800" height="502"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;In a nutshell, CodeSandbox CDE brings dedicated cloud environments for every branch &amp;amp; PR that spin up in 2 seconds and are available and collaborative 24/7.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codesandbox.io/pricing"&gt;Usage-based billing &amp;amp; plan updates&lt;/a&gt; 🪙 With the launch of CodeSandbox CDE, we updated our plans and billing model to meet the needs of cloud development. We've brought nearly all our Pro features to the Free plan and introduced usage-based billing, so Pro workspaces will be billed for what they use instead of how many people exist in the workspace.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codesandbox.io/docs/learn/credit-usage/credits"&gt;VM tiers &amp;amp; usage monitoring&lt;/a&gt; ⚡ — You can now choose the VM specs that run your Devboxes and repositories. There are six tiers to choose from: you can go up to 4 vCPUs + 8 GB RAM in Free, 16 vCPUs + 32 GB RAM in Pro, and 64 vCPUs + 128 GB RAM in Enterprise. We also introduced a VM Settings page where you can monitor and control VM usage.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/danilowoz/status/1755636863098892708"&gt;Live sessions in Devboxes&lt;/a&gt; 📺 — You can now run live coding sessions right from your browser, powered by our VMs, both in Free and Pro plans. A live session allows you to start a live collaborative coding session with others, which is especially useful for education, interviews and hackathons.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2t6mmna8ueprvdwb0112.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2t6mmna8ueprvdwb0112.jpg" alt="Live sessions in CodeSandbox" width="800" height="523"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codesandbox.io/docs/learn/ai/codeium"&gt;AI autocomplete in Sandboxes&lt;/a&gt; 🤖 — Many of our users have asked for autocomplete features similar to those offered by Copilot. So, we have extended our &lt;a href="https://codesandbox.io/blog/introducing-ai-code-autocomplete-powered-by-codeium"&gt;Codeium integration to Sandboxes&lt;/a&gt;. Users in our Free plan get 100 Codeium insertions in their code per month, and users in Pro get unlimited.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0gcqruk04pbk8mi0e9kt.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0gcqruk04pbk8mi0e9kt.jpg" alt="Codeium autocomplete in CodeSandbox sandboxes" width="800" height="523"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codesandbox.io/blog/introducing-a-unified-development-platform"&gt;Unified Platform&lt;/a&gt; 🚀 — Probably our biggest launch of 2023, our Unified Platform introduced Devboxes (instant cloud environments running in our VM infrastructure) and brought the biggest overhaul to Sandboxes in 5 years. Watch the &lt;a href="https://www.youtube.com/watch?v=AKQjjWQrSNs"&gt;AMA live stream&lt;/a&gt; with the team for all the details.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbu1lfvwe9gtbtkursxmj.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbu1lfvwe9gtbtkursxmj.jpg" alt="CodeSandbox create modal" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codesandbox.io/changelog"&gt;Full Changelog&lt;/a&gt; 📜 — As we mentioned, we shipped many things recently. Be sure to check the latest changelog and the updates from &lt;a href="https://codesandbox.io/changelog/2023-12-05-unified-platform-codeium-vs-code-editor"&gt;December&lt;/a&gt;. And don't miss the changelog &lt;a href="https://www.youtube.com/watch?v=FAwAm-qL1oU"&gt;walkthrough video&lt;/a&gt; with our Head of Product, Neco.&lt;/p&gt;




&lt;h1&gt;
  
  
  Meet Us @ Events
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://lu.ma/cde-onboarding"&gt;Developer Onboarding&lt;/a&gt; - Before and After CDEs — Developer onboarding... is not great. However, cloud development environments seek to make onboarding much easier and faster: down from days to hours. In this live stream, &lt;a href="https://twitter.com/AlfoniChristian"&gt;Christian Alfoni&lt;/a&gt;, &lt;a href="https://twitter.com/danilowoz/"&gt;Danilo Woznika&lt;/a&gt; and &lt;a href="https://twitter.com/alexnmoldovan"&gt;Alex Moldovan&lt;/a&gt; will show some of the typical pains of getting onboarded as a developer and how CodeSandbox CDE makes it a much better experience. Register &lt;a href="https://lu.ma/cde-onboarding"&gt;here&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://lu.ma/cde-onboarding"&gt;&lt;br&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6qc6ug57--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://storage.googleapis.com/assets.codesandbox.io/emails/inside-the-box/6/CDEStorynext.jpg" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://devworldconference.com/tracks/backend-world"&gt;DevWorld Conference&lt;/a&gt; — Our backend engineer, &lt;a href="https://twitter.com/sannekalkman"&gt;Sanne&lt;/a&gt;, will speak in Amsterdam at DevWorld Conference about "Elixir: Happy Developers and Scaleable Backends". The conference takes place on February 29th &amp;amp; March 1st!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://devworldconference.com/tracks/backend-world"&gt;&lt;br&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--xtbrJjqE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://storage.googleapis.com/assets.codesandbox.io/emails/inside-the-box/6/Sane_DevWorld.png" width="800" height="277"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://fosdem.org/2024/"&gt;FOSDEM&lt;/a&gt; — At the beginning of the month, our Engineering Manager &amp;amp; DevRel, &lt;a href="https://twitter.com/ioana_cis"&gt;Ioana&lt;/a&gt;, moderated a DevRoom at FOSDEM - the largest conference dedicated to Free and Open Source Developers in Europe. Have you been around? What's your favorite devroom there?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/ioana_cis/status/1754210627617218613"&gt;&lt;br&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--iMFOf5vg--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://storage.googleapis.com/assets.codesandbox.io/emails/inside-the-box/6/Ioana_fosdem.png" width="800" height="388"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h1&gt;
  
  
  Web Bytes
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=jXVTf4kN-e0"&gt;The State of CDEs&lt;/a&gt;: post-survey panel — Recently, we surveyed 2200+ software developers and engineering leaders to uncover how CDEs are used today, their main benefits, adoption challenges, and future perspectives. We discussed the key findings from the final report with a panel of founders, engineering leaders, and software developers.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=jXVTf4kN-e0"&gt;&lt;br&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TMCWQaJ4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://storage.googleapis.com/assets.codesandbox.io/emails/inside-the-box/6/StateCDE.png" width="800" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codesandbox.io/blog?"&gt;CodeSandbox blog&lt;/a&gt; 📰 — We wrote a lot in the last couple of months! A special mention goes to "&lt;a href="https://codesandbox.io/blog/are-cdes-coming-to-replace-local-development"&gt;Are CDEs Coming to Replace Local Development?&lt;/a&gt;", "&lt;a href="https://codesandbox.io/blog/the-history-of-state-management-at-codesandbox"&gt;The History of State Management at CodeSandbox&lt;/a&gt;", and a unique opinion article by our Co-Founder Ives, "&lt;a href="https://codesandbox.io/blog/why-i-code-in-the-cloud"&gt;Why I Code in the Cloud&lt;/a&gt;".&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=Ho7yAeVCp6w"&gt;Live demo&lt;/a&gt;: Doing Professional Development in the Cloud — A trio of CodeSandbox engineers took the virtual stage to showcase what it's like to do professional development using a cloud environment. If you didn't catch it live, check out &lt;a href="https://www.youtube.com/watch?v=Ho7yAeVCp6w"&gt;the recording&lt;/a&gt;!&lt;/p&gt;




&lt;h1&gt;
  
  
  Community Spotlight
&lt;/h1&gt;

&lt;p&gt;Each Friday, we try to share on social media some of the projects that our community works on. In this edition, besides the ✨ Community Spotlight ✨ we are highlighting a &lt;strong&gt;CodeSandbox Friend&lt;/strong&gt; too.&lt;/p&gt;

&lt;p&gt;Spotlight - &lt;a href="https://devportalawards.org/winners"&gt;Dev Portal Awards&lt;/a&gt; — The DX breakthroughs implemented by react.dev, powered by a collaboration with CodeSandbox, won the &lt;a href="https://twitter.com/rachelnabors/status/1725180862495359158"&gt;Dev Portal Award for DX&lt;/a&gt;! The React docs also won best &lt;a href="https://twitter.com/rachelnabors/status/1729914286489633128"&gt;API Reference documentation&lt;/a&gt;. We couldn't be more proud of this partnership!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://devportalawards.org/winners"&gt;&lt;br&gt;
&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--lwQvObXH--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://storage.googleapis.com/assets.codesandbox.io/emails/inside-the-box/6/DevPortalAwards.png" width="800" height="380"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://codesandbox.io/docs/learn/plans/codesandbox-friends"&gt;CodeSandbox Friends&lt;/a&gt; - &lt;a href="https://github.com/preactjs/preact"&gt;Preact&lt;/a&gt; — Preact is a fantastic open-source project using CodeSandbox for reproductions and demos. We are more than happy to support it through our &lt;a href="https://codesandbox.io/docs/learn/plans/codesandbox-friends"&gt;CodeSandbox Friends&lt;/a&gt; program.&lt;/p&gt;

&lt;p&gt;But wait, what are &lt;a href="https://codesandbox.io/docs/learn/plans/codesandbox-friends"&gt;CodeSandbox Friends&lt;/a&gt;? We're glad you asked! 😅 It is a program through which we offer free or low-cost access to CodeSandbox for eligible projects. We believe in the power of Open Source and we want to support non-profits making a positive impact on the world.&lt;/p&gt;

&lt;p&gt;We really love seeing what you build using CodeSandbox. So do share with us what you're working on or which insights you would like to hear from us.&lt;/p&gt;




&lt;h1&gt;
  
  
  Big Thank You 🖤💚💜️
&lt;/h1&gt;

&lt;p&gt;We hope you enjoyed this issue of Inside the Box! We had a lot to share from the last two months and many activities or updates did not make it. So we encourage you to keep following us on social channels.&lt;/p&gt;

&lt;p&gt;We are curious about what you feel is missing from these newsletters and what you would like us to add to the next one!&lt;/p&gt;

&lt;p&gt;What should we bring next? Tell us on our &lt;a href="https://www.codesandbox.community/c/start-here"&gt;community space&lt;/a&gt;!&lt;/p&gt;

&lt;p&gt;PS: Did you catch the easter egg on the intro? It's our humble shout-out to "&lt;a href="https://open.spotify.com/track/2rKcC5vlTsDM94RWTPoyHV"&gt;Is There Anybody Out There?&lt;/a&gt;" by Pink Floyd.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>cde</category>
      <category>product</category>
      <category>community</category>
    </item>
    <item>
      <title>Introducing CodeSandbox CDE</title>
      <dc:creator>Ives van Hoorne</dc:creator>
      <pubDate>Thu, 01 Feb 2024 10:27:02 +0000</pubDate>
      <link>https://dev.to/codesandboxio/introducing-codesandbox-cde-57am</link>
      <guid>https://dev.to/codesandboxio/introducing-codesandbox-cde-57am</guid>
      <description>&lt;p&gt;&lt;strong&gt;We are beyond excited to announce CodeSandbox CDE, the experience we’ve been building for the last 2.5 years&lt;/strong&gt; 🥳 &lt;strong&gt;Our cloud development environment makes coding in the cloud available to everyone and empowers teams to improve productivity and collaboration.&lt;/strong&gt;&lt;/p&gt;




&lt;p&gt;When CodeSandbox launched in 2017, we started as an online React playground. Over the years, it has grown significantly to the point that we’ve reached 3 million registered users today! And as we became more popular, more and more people wanted to build bigger projects on CodeSandbox.&lt;/p&gt;

&lt;p&gt;Over the years, we repeatedly tried to achieve this vision, but we kept failing to achieve the performance levels we needed. Until Firecracker was released.&lt;/p&gt;

&lt;p&gt;In 2022, we took a step forward by introducing &lt;a href="https://codesandbox.io/blog/open-beta"&gt;CodeSandbox Projects Beta&lt;/a&gt;—a complete rewrite of CodeSandbox that runs full-fledged development environments powered by Firecracker VMs.&lt;/p&gt;

&lt;p&gt;Today, we are thrilled to officially release this experience as CodeSandbox CDE: an instant cloud development environment that automatically provisions a VM for every branch, accessible with a URL.&lt;/p&gt;

&lt;p&gt;In a nutshell, this launch brings:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dedicated cloud environments for every branch &amp;amp; PR that spin up in 2 seconds and are available and collaborative 24/7.&lt;/li&gt;
&lt;li&gt;VMs that are more than twice as powerful in the Free plan &amp;amp; the option to pick from different VM sizes (up to 16 vCPUs + 32 GB RAM in our &lt;a href="https://codesandbox.io/pricing"&gt;Pro plan&lt;/a&gt; or more in &lt;a href="https://codesandbox.io/enterprise"&gt;Enterprise&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Massive improvements to our Free plan, which now includes private projects, AI code autocomplete, AI assistant, live sessions, a VS Code extension, and more.&lt;/li&gt;
&lt;li&gt;Pay-as-you-go becomes the default billing model, with a new Pro plan that starts at $9 for an entire workspace of up to 20 collaborators.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  A faster, more powerful workflow
&lt;/h2&gt;

&lt;p&gt;Web development is changing fast and becoming more complex—yet the way we code hasn’t changed much. Think about it: how much time do you spend maintaining your local setup every week? And how much energy and focus do you lose whenever you have to stop your work and install some local dependencies just to be able to review a PR or quickly fix a bug in another branch?&lt;/p&gt;

&lt;p&gt;CodeSandbox CDE reimagines how much better this workflow could be. We’re solving these challenges by making development environments instantly cloneable and sharable, so every branch runs on a dedicated Firecracker VM and is available behind a sharable URL.&lt;/p&gt;

&lt;p&gt;With this approach, we provide a centralized environment for the entire development team. This opens the door to a new paradigm of coding that improves productivity, collaboration and accessibility. Let’s go through some examples.&lt;/p&gt;

&lt;h3&gt;
  
  
  Fast context switching
&lt;/h3&gt;

&lt;p&gt;Since CodeSandbox CDE runs every branch in a unique environment, you can switch between branches without worrying about stashing your changes, running database migrations or installing dependencies. It’s a matter of clicking “Create Branch,” and you’ll have a new environment spun up for you in 2 seconds.&lt;/p&gt;

&lt;p&gt;Switching between branches becomes a matter of switching your editor between development environments, instead of switching between files.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr2qwnpqy8j9u6yrm0lrx.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr2qwnpqy8j9u6yrm0lrx.gif" alt="Fast branching in CodeSandbox" width="800" height="503"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Faster PR reviews with live collaboration
&lt;/h3&gt;

&lt;p&gt;In CodeSandbox CDE, every environment is “multiplayer” by default, so everyone on the team is always one click away from live coding and pair programming. This is especially powerful in flows like &lt;a href="https://codesandbox.io/blog/full-code-reviews-in-codesandbox"&gt;PR reviews&lt;/a&gt;, since clicking a link on the GitHub PR leads to the collaborative cloud environment, where reviewers can quickly leave comments, commit changes, and approve the PR.&lt;/p&gt;

&lt;p&gt;From now on, if you need to quickly review a PR, you can instead open a link to that PR with CodeSandbox CDE and get a running environment, instantly available.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxwfclngnhioiy2fl77gj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxwfclngnhioiy2fl77gj.png" alt="CodeSandbox GitHub App integration" width="800" height="522"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This “no setup, instant spin-up” approach also &lt;a href="https://codesandbox.io/blog/everyone-can-commit"&gt;makes the codebase more accessible&lt;/a&gt; to everyone in the organization (not just developers), creating new paradigms for cross-functional team collaboration.&lt;/p&gt;

&lt;h3&gt;
  
  
  Deployment previews for your whole stack
&lt;/h3&gt;

&lt;p&gt;When you configure CodeSandbox for your repository, every branch will also have an automatically provisioned deployment preview.&lt;/p&gt;

&lt;p&gt;These deployment previews work for any kind of workload you run on CodeSandbox, including back-end services, databases, Redis, etc. Once you’ve configured your development environment to run on CodeSandbox (using &lt;a href="https://containers.dev/"&gt;DevContainers&lt;/a&gt;), every PR will automatically get a deployment preview.&lt;/p&gt;

&lt;p&gt;Deployment previews are available 24/7: we pause them when they're idle and wake them up in 2 seconds whenever someone wants to access them, thanks to Firecracker memory snapshotting.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1okocax8q9ea6afljels.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1okocax8q9ea6afljels.gif" alt="CodeSandbox deployment previews" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  AI, collaboration and more in Free plans
&lt;/h2&gt;

&lt;p&gt;We believe that cloud development should be accessible to everyone, whether they’re hobbyists, OSS contributors, or professional developers. So, we improved our Free plan, which now includes nearly all our Pro features and updated usage limits. In a nutshell, the new Free plan includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Upgraded VMs (more than twice as powerful).&lt;/li&gt;
&lt;li&gt;40 hours of free VM usage (in our Nano VMs) every month.&lt;/li&gt;
&lt;li&gt;Option to pick from different VM sizes.&lt;/li&gt;
&lt;li&gt;Unlimited Devboxes, 20 Sandboxes, and 10 personal draft Sandboxes.&lt;/li&gt;
&lt;li&gt;All our AI features (&lt;a href="https://codesandbox.io/docs/learn/ai/boxy"&gt;Boxy coding assistant&lt;/a&gt; + &lt;a href="https://codesandbox.io/docs/learn/ai/codeium"&gt;Codeium autocomplete&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;Privacy controls (private Sandboxes, Devboxes and repositories are now also included in Free).&lt;/li&gt;
&lt;li&gt;Live collaboration and live coding sessions (new!) in Devboxes.&lt;/li&gt;
&lt;li&gt;CodeSandbox &lt;a href="https://codesandbox.io/docs/learn/editors/vscode/overview"&gt;VS Code extension&lt;/a&gt;: use local VS Code as the CodeSandbox CDE editor.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Overall, this gives you a powerful experience in our Free plan and the option to scale into Pro when your usage needs grow, since our updated plans are now tailored to your usage, as described below.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;We also opened a “&lt;a href="https://codesandbox.io/docs/learn/plans/codesandbox-friends"&gt;CodeSandbox Friends&lt;/a&gt;” program to provide unlimited Sandboxes to eligible projects (licensed open-source software, developer community projects, non-profit organizations) and discounts for Education. You can apply &lt;a href="https://codesandbox.typeform.com/friends"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Revamped Pro plan
&lt;/h2&gt;

&lt;p&gt;After talking to hundreds of our users, we understood that our previous seat-based pricing model was not adjusted to the reality of cloud development.&lt;/p&gt;

&lt;p&gt;So, we evolved CodeSandbox to &lt;a href="https://codesandbox.io/pricing"&gt;usage-based billing&lt;/a&gt;, which means that your bill will reflect what you use instead of how many people exist in your workspace. To achieve this, we implemented a &lt;a href="https://codesandbox.io/docs/learn/credit-usage/credits"&gt;credit system&lt;/a&gt;, where credits translate VM runtime per hour into precise costs.&lt;/p&gt;

&lt;p&gt;This change lowers the barrier to any team wanting to get started with cloud development. An entire team of up to 20 collaborators can start with our Pro plan to understand their usage needs at $9 per month for the entire team, as opposed to $18/user/month in our previous pricing. If the 40 hours of VM runtime included in the base Pro plan are not enough, teams can access on-demand credits (up to their defined maximum monthly spend) or purchase add-ons with discounted credit packages.&lt;/p&gt;

&lt;p&gt;With this approach, we are making cloud development much more accessible for individuals and teams of any size, delivering on our company ethos to make CodeSandbox an accessible, collaborative and empowering tool for every developer.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;To celebrate our launch, we’re giving a special launch offer: 50% off on the first month of &lt;a href="https://codesandbox.io/upgrade"&gt;Pro&lt;/a&gt; (valid until February 12th at 7:59 am GMT)! Use coupon code &lt;code&gt;CDELAUNCH&lt;/code&gt; during checkout.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Leaping into a new chapter
&lt;/h2&gt;

&lt;p&gt;With this release, you can now use CodeSandbox for your entire stack, whether it’s creating a prototype to demo something simple, building out your new idea, or daily professional development. This is the vision we had for CodeSandbox when we first started, so I’m extremely excited to see it’s out now.&lt;/p&gt;

&lt;p&gt;If you haven't yet, &lt;a href="https://codesandbox.io/signin"&gt;create&lt;/a&gt; your Free workspace or &lt;a href="https://codesandbox.io/upgrade"&gt;get a Pro plan&lt;/a&gt; with our special launch offer of 50% discount for one month using coupon code &lt;code&gt;CDELAUNCH&lt;/code&gt; during checkout (this offer expires on February 12th at 7:59 am GMT).&lt;/p&gt;

&lt;p&gt;From all of us here at CodeSandbox, a huge thank you to our community of users for pushing us to make CodeSandbox even stronger. We couldn't have done it without you ❤️. Let us know what you think in &lt;a href="https://www.codesandbox.community"&gt;our community&lt;/a&gt;!&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>cloud</category>
      <category>devops</category>
      <category>programming</category>
    </item>
    <item>
      <title>The History of State Management at CodeSandbox</title>
      <dc:creator>Christian Alfoni</dc:creator>
      <pubDate>Mon, 11 Dec 2023 13:35:41 +0000</pubDate>
      <link>https://dev.to/codesandboxio/the-history-of-state-management-at-codesandbox-3k1a</link>
      <guid>https://dev.to/codesandboxio/the-history-of-state-management-at-codesandbox-3k1a</guid>
      <description>&lt;p&gt;&lt;strong&gt;At CodeSandbox, we run your code in our cloud infrastructure, configure the environment for you and keep your code always ready, behind a shareable URL. Give it a try with &lt;a href="///p/sandbox/next-js-fxis37?file=/pages/index.tsx"&gt;this Next.js example&lt;/a&gt; or &lt;a href="https://dev.to/dashboard?import_repo=true"&gt;import your GitHub repo&lt;/a&gt;!&lt;/strong&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  CodeSandbox, the application
&lt;/h2&gt;

&lt;p&gt;CodeSandbox provides a &lt;a href="https://codesandbox.io/cloud-development-environments"&gt;cloud development environment&lt;/a&gt; with a powerful microVM infrastructure, supported by several services and an API. This enables developers all around the world to collaborate and build products together. At the very front, we have the web application, where it all comes together and ignites the CodeSandbox experience.&lt;/p&gt;

&lt;p&gt;CodeSandbox is not your typical web application. There is surprisingly little traditional data fetching—we only do server-side rendering for SEO purposes and there is only a single page, the editor. This reduces a lot of complexity in developing a web application, but looking at the editor you would quickly label it as a complex piece of software. In reality, this complexity comes from the amount of state and management of that state to create the experience of CodeSandbox.&lt;/p&gt;

&lt;p&gt;We are about to embark on our fifth iteration of state management. Since its birth 7 years ago the web ecosystem has had big and small influences. In parallel with building our experiences, we also continuously discuss and reflect on these ecosystem influences and evaluate how they can benefit us. The ultimate goal for us is to use tools that allow us to continue adding new experiences with as little friction as possible.&lt;/p&gt;

&lt;p&gt;So as we start this fifth iteration of state management, we have a golden opportunity to reflect on our previous iterations.&lt;/p&gt;

&lt;h2&gt;
  
  
  It all started with…
&lt;/h2&gt;

&lt;p&gt;At the inception of the CodeSandbox application, &lt;a href="https://redux.js.org/"&gt;Redux&lt;/a&gt; was the big hype. Redux enabled an important capability in terms of state management: it exposes state to any component in the component tree without the performance issues of using a React context. It does this by allowing you to select what state should cause reconciliation of the consuming component. In other words, Redux gave CodeSandbox a global state store where the current user, the current sandbox, the live session state, the layout state, etc. could live and be accessed by any component.&lt;/p&gt;

&lt;p&gt;With a high degree of state used across components in deeply nested component trees, Redux solved the most critical aspect of managing the state of CodeSandbox. That said, as CodeSandbox grew it had two problems: understanding how the application works and it had subpar performance.&lt;/p&gt;

&lt;p&gt;As an example, when you loaded a sandbox the application would need to run an asynchronous flow that included &lt;em&gt;21 state updates&lt;/em&gt; and &lt;em&gt;9 effects&lt;/em&gt;. With Redux this flow was expressed across 10 different action, reducer, and component files. So as a developer, asking yourself the question “What happens when we load a sandbox?”, it was incredibly difficult to infer. &lt;/p&gt;

&lt;p&gt;The performance issues we faced with Redux are really the same performance issues you have with React in general. Even though Redux allowed us to narrow down what state components require, it is impossible for a human being to infer how the scope of the state will affect the component reconciliation performance as a whole.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting insight
&lt;/h2&gt;

&lt;p&gt;This led us to our second iteration: &lt;a href="https://cerebraljs.com/"&gt;Cerebral JS&lt;/a&gt;. Cerebral would solve both of these problems. By using a sequence API for our complex asynchronous flows of state updates and effects, which also includes a visual development tool for those sequences, we had more insight and understanding of how the application works. Even though new developers would need to learn an API, that learning curve was much smaller. Also, it ensured everyone had the exact same mental model and a good understanding of what happens “when a Sandbox loads”.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LW3GHL4r--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3ihiu7950jd19pmu8inu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LW3GHL4r--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3ihiu7950jd19pmu8inu.png" alt="The Cerebral JS devtools give deep insight into the state management of the application" width="800" height="438"&gt;&lt;/a&gt;&lt;/p&gt;
The Cerebral JS devtools give deep insight into the state management of the application.



&lt;p&gt;The performance gains came from us combining Cerebral with &lt;a href="https://mobx.js.org/README.html"&gt;Mobx&lt;/a&gt;. Now our components would automatically observe any state they accessed as opposed to us manually trying to optimize state access with selectors.&lt;/p&gt;

&lt;p&gt;In the following presentation you can learn more about the journey of Cerebral JS and how my own journey crossed paths with CodeSandbox.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/uni-dG6-Rq8"&gt;
&lt;/iframe&gt;
&lt;/p&gt;
A presentation at React Finland about Cerebral JS and using it for CodeSandbox.



&lt;h2&gt;
  
  
  I hate TypeScript, I love TypeScript
&lt;/h2&gt;

&lt;p&gt;As time passed, &lt;a href="https://www.typescriptlang.org/"&gt;TypeScript&lt;/a&gt; came on the scene. Its promise of painless refactors and reduced risk of regressions was something we desperately needed. As CodeSandbox grew we were reluctant to change existing code. We were always on high alert after deploying changes and “We did not test it it well enough!” became a point of cultural friction for us.&lt;/p&gt;

&lt;p&gt;Cerebral JS, with its exotic declarative sequence API, would never work with TypeScript. That fact, combined with the introduction of &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy"&gt;Proxies&lt;/a&gt; to the language, gave the perfect excuse to throw another state management library into the ecosystem. &lt;a href="https://overmindjs.org/"&gt;Overmind&lt;/a&gt; was born and it was built from the ground up to be a spiritual successor to Cerebral. It took the same conceptual approach, but with an API that was type friendly and still with just as much insight using its development tools.&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/EzJT0ICufas"&gt;
&lt;/iframe&gt;
&lt;/p&gt;
A presentation at a meetup in Oslo about how to think about application development separate from user interfaces.



&lt;p&gt;At this point, it would seem that all our challenges were solved. We had great insight into our application, we did not worry about performance, adding new features was straightforward, and with TypeScript we gained more confidence to refactor and deploy our code. But one day we wanted to make TypeScript even stricter, so we turned on &lt;a href="https://www.typescriptlang.org/tsconfig#strictNullChecks"&gt;strictNullChecks&lt;/a&gt;. &lt;/p&gt;

&lt;h2&gt;
  
  
  Being yelled at by TypeScript
&lt;/h2&gt;

&lt;p&gt;Strict null checking is a feature of TypeScript that gives an error if you try to access a value that might be &lt;code&gt;null&lt;/code&gt; or &lt;code&gt;undefined&lt;/code&gt;. Without this feature, the following does not give an error:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;type&lt;/span&gt; &lt;span class="nx"&gt;State&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// The project state might not be initialized&lt;/span&gt;
  &lt;span class="nx"&gt;project&lt;/span&gt;&lt;span class="p"&gt;?:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;state&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;State&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;

&lt;span class="nx"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;project&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt; &lt;span class="c1"&gt;// This does not give any error&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;As we turned on the feature, TypeScript got very upset with us, to say the least. We had so many errors that we decided not to do it. But it was not the number of errors that demotivated us, it was the realization of an underlying message from TypeScript: “You developers have a lot more context about the code than I do”.&lt;/p&gt;

&lt;p&gt;This sounds a bit abstract and cryptic, but it is an important point. When you work with global state stores you are in a global context that is initialized before the rest of the application. That means any state that is lazily initialized through data fetching or other mechanisms has to be defined as “possibly there”. This makes sense from the perspective of the global state store, but from the perspective of the consumers of that global state store, there is no guarantee that the state you access has been initialized or not. In practice, that means whenever you consume lazily-initialized state from a global state store you have to verify:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;type&lt;/span&gt; &lt;span class="nx"&gt;State&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;project&lt;/span&gt;&lt;span class="p"&gt;?:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kr"&gt;string&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;state&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;State&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;

&lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;project&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nx"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;project&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;title&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When you are writing code in a context where you know that the &lt;code&gt;project&lt;/code&gt; must have been initialized, for example in a nested component or an action, you have to write additional code to explain TypeScript that this is indeed a valid context to access the &lt;code&gt;project&lt;/code&gt;. And in a complex application like CodeSandbox, this happens &lt;em&gt;everywhere&lt;/em&gt;. You want TypeScript to have a deep understanding of your codebase and help you, but in this situation, you have more understanding of the codebase and need to help TypeScript. Something is not right in the world.&lt;/p&gt;

&lt;h2&gt;
  
  
  Putting context into state
&lt;/h2&gt;

&lt;p&gt;Around this time, CodeSandbox had become a company and we were planning, unknowingly at the time, our move into the &lt;a href="//csb.new"&gt;Cloud Development Environment&lt;/a&gt; space. In the web ecosystem, state machines were the big thing and we also experimented with this:&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/ul_3ABrpj64"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;Using a state machine would help us make our code more aware of the context it runs in, and also be more explicit about what contexts it &lt;em&gt;can&lt;/em&gt; run in. This experimentation held a lot of promise, at least in theory, and we decided to build our new editor using React primitives with some patterns and minor abstractions to embrace this concept.&lt;/p&gt;

&lt;p&gt;Even though this fourth state management iteration did improve the challenge we just discussed, it came short on some of the already solved challenges with our previous iterations. Specifically, we had challenges with performance again as we were relying on React contexts to share state. Also, we were used to imperative actions, which were now replaced with reducers and state transition effects. This split our logic into different files and created indirection.&lt;/p&gt;

&lt;p&gt;In practice, it became very difficult to reason about “What happens when this action is dispatched?”. Just the fact that you could not &lt;code&gt;CMD + click&lt;/code&gt; an action dispatch in the code and go to its implementation, reading line by line what it does, became a big friction for us. &lt;/p&gt;

&lt;p&gt;Exploring React contexts for state management was still an important experience. Instead of thinking state trees, we were now thinking and practicing hooks composition for our state management. And with the advent of suspense, error boundaries and new data fetching patterns in React, it all culminated in our fifth iteration.&lt;/p&gt;

&lt;h2&gt;
  
  
  Putting state into contexts
&lt;/h2&gt;

&lt;p&gt;With our fifth approach, we embrace the fact that React has contexts to share state management across components, allowing us to initialize state closer to where it is used and take advantage of React data fetching patterns. The only real problem with contexts is their performance. Even with projects like &lt;a href="https://dev.to/usulpro/how-react-forget-will-make-react-usememo-and-usecallback-hooks-absolutely-redundant-4l68"&gt;Forget&lt;/a&gt;, contexts will remain a bottleneck given that any state change within a context will cause reconciliation to all consumers of that context.&lt;/p&gt;

&lt;p&gt;Without going into all the bells and whistles of this iteration, you can imagine a hook that does some state management:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;useSomeStateManagement&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;count&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setCount&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

  &lt;span class="nf"&gt;useEffect&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Increased count to&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;count&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;count&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;count&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nf"&gt;increaseCount&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nf"&gt;setCount&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;count&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you wanted that state management to be shared by multiple components, you would expose the hook in a context. But for that to run optimally you would have to:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;useSomeStateManagement&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;count&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;setCount&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

  &lt;span class="nf"&gt;useEffect&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Increased count to&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;count&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nx"&gt;count&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;

  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;increaseCount&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useCallback&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nf"&gt;setCount&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;current&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;current&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;[])&lt;/span&gt;

  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;useMemo&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
    &lt;span class="nx"&gt;count&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;increaseCount&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;[])&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And even then any consumer of this context would reconcile whenever any state within the context changes, regardless of what state it actually accesses from the context.&lt;/p&gt;

&lt;p&gt;With &lt;a href="https://github.com/christianalfoni/impact"&gt;Impact&lt;/a&gt; we create a reactive context instead, using reactive primitives:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;useSomeStateManagement&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;context&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;count&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;signal&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

  &lt;span class="nf"&gt;effect&lt;/span&gt;&lt;span class="p"&gt;(()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Increased count to&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;count&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;

  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;get&lt;/span&gt; &lt;span class="nf"&gt;count&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nx"&gt;count&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="nf"&gt;increaseCount&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="nx"&gt;count&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="o"&gt;++&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It does not matter how much state you put into this context—any consuming component reconciles based on what &lt;em&gt;signals&lt;/em&gt; they access, regardless of context. You also avoid memoization, dependency arrays and the reconciliation loop altogether. But most importantly, you can use React data fetching patterns and mount these contexts with an initialized state.&lt;/p&gt;

&lt;p&gt;An example from our exploration is how we mount a &lt;code&gt;BranchContext&lt;/code&gt; within a &lt;code&gt;SessionContext&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight tsx"&gt;&lt;code&gt;&lt;span class="c1"&gt;// We pass props coming from routing to mount our BranchContext&lt;/span&gt;
&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;BranchContext&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;owner&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;repo&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;branch&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;workspaceId&lt;/span&gt; &lt;span class="p"&gt;})&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// This component lives within our SessionContext, where we can&lt;/span&gt;
  &lt;span class="c1"&gt;// fetch new branches and initialize Pitcher (Our VM process)&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;branches&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;pitcher&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;useSessionContext&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

  &lt;span class="c1"&gt;// As we need the branch data first we use suspense and the new "use" hook&lt;/span&gt;
  &lt;span class="c1"&gt;// to ensure that it is available before the component continues rendering.&lt;/span&gt;
  &lt;span class="c1"&gt;// A parent Suspense boundary takes care of the loading UI&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;branchData&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;use&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;branches&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;owner&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;repo&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;branch&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;workspaceId&lt;/span&gt; &lt;span class="p"&gt;}));&lt;/span&gt;

  &lt;span class="c1"&gt;// Since Pitcher has progress events while resolving its promise, we consume&lt;/span&gt;
  &lt;span class="c1"&gt;// the observable promise, which is just a promise in a signal, to evaluate&lt;/span&gt;
  &lt;span class="c1"&gt;// its status&lt;/span&gt;
  &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;clientPromise&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;progress&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;pitcher&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;initialize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;branchData&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;id&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;clientPromise&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;rejected&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="k"&gt;throw&lt;/span&gt; &lt;span class="nx"&gt;clientPromise&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;reason&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="k"&gt;if &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;clientPromise&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;pending&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="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;h4&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
        &lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;progress&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt; (&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;progress&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;progress&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;)
      &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;h4&lt;/span&gt;&lt;span class="p"&gt;&amp;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;// We mount the nested context for the branch, giving it the already fetched&lt;/span&gt;
  &lt;span class="c1"&gt;// data and connected Pitcher instance. Any consuming component/context will&lt;/span&gt;
  &lt;span class="c1"&gt;// safely be able to access the initialized data and Pitcher API without any&lt;/span&gt;
  &lt;span class="c1"&gt;// additional type checks&lt;/span&gt;
  &lt;span class="k"&gt;return &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;useBranchContext&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Provider&lt;/span&gt;
      &lt;span class="na"&gt;branchData&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;branchData&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
      &lt;span class="na"&gt;pitcher&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;clientPromise&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;value&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nc"&gt;Branch&lt;/span&gt; &lt;span class="p"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;useBranchContext&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nc"&gt;Provider&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Signals and observability is not a new thing, but it has a bit of a renaissance these days. For example, &lt;a href="https://www.solidjs.com/"&gt;Solid JS&lt;/a&gt;, which is a great contribution to the ecosystem, binds its signals to the elements created, being “surgical” about its updates. With Impact and React, the observability is tied to the component. The drawback of that is that you are not as “surgically” updating the actual element bound to a signal, but you keep your control flow in the language. What that means is that there are no special components for lists, switch and if statements. No risk of challenges with typing or language features like destructuring creating unexpected behavior. You can keep your mental model of “It’s just JavaScript”, which I personally favor. And as components only reconcile based on signals accessed, it is a huge performance boost regardless.&lt;/p&gt;

&lt;p&gt;We have been running an &lt;a href="https://www.youtube.com/@CodeSandbox/streams"&gt;Engineer @ work&lt;/a&gt; stream where Danilo, Alex and I have been exploring these concepts and building prototypes to see how state management through reactive contexts would work for us. The Impact project is also available on &lt;a href="https://github.com/christianalfoni/impact"&gt;GitHub&lt;/a&gt; if you want to follow its progress.&lt;/p&gt;

&lt;p&gt;There are many kinds of applications you can build and they all have a mix of common and unique challenges. This article and the Impact project are about a very specific challenge for the complexity of state management required in the CodeSandbox editor. We are not aiming for a silver bullet, but something that works for our use case. &lt;/p&gt;

&lt;p&gt;Maybe you have similar challenges and if not, I hope this article leaves you with some thoughts for reflection. Thanks for reading!&lt;/p&gt;

</description>
      <category>react</category>
      <category>redux</category>
      <category>learning</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Introducing AI Code Autocomplete Powered by Codeium</title>
      <dc:creator>ioana</dc:creator>
      <pubDate>Tue, 28 Nov 2023 19:39:05 +0000</pubDate>
      <link>https://dev.to/codesandboxio/introducing-ai-code-autocomplete-powered-by-codeium-2a05</link>
      <guid>https://dev.to/codesandboxio/introducing-ai-code-autocomplete-powered-by-codeium-2a05</guid>
      <description>&lt;p&gt;Powerful, accurate code suggestions for every CodeSandbox user.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Filipe Lima&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Product Marketing Manager at CodeSandbox&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;New day, new launch! Today, AI takes a huge leap forward in CodeSandbox with code autocomplete powered by &lt;a href="https://codeium.com/" rel="noopener noreferrer"&gt;Codeium&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;This is the result of a months-long collaboration with the fantastic team behind Codeium, who provide an extremely powerful AI toolkit for developers.&lt;/p&gt;

&lt;p&gt;Plus, we are making this available for free for everyone coding in our &lt;a href="https://codesandbox.io/dashboard/recent?create_devbox=true" rel="noopener noreferrer"&gt;Devboxes&lt;/a&gt; 🎉&lt;/p&gt;

&lt;h2&gt;
  
  
  The rise of AI coding assistants
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Necoline Hubner&lt;br&gt;
Product Manager at CodeSandbox&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;In the last year, AI-assisted development has taken the world by storm.&lt;/p&gt;

&lt;p&gt;Recently, we asked 2200+ developers how they use AI tools and were surprised to find that 78% spend at least 1 hour per week coding with AI tools. So it’s clear that the use of AI to accelerate coding has quickly become an extension of the development process. Yet finding tools that integrate with the development flow is still a challenge.&lt;/p&gt;

&lt;p&gt;We aimed to address this with the release of &lt;a href="https://codesandbox.io/docs/learn/boxy/overview" rel="noopener noreferrer"&gt;Boxy&lt;/a&gt;, our own AI coding assistant. Since we launched it in May, we have learned a few things. First, with AI and code, context is king. External chat tools are a popular companion for most development, yet the burden of good prompting still rests on users to supply. Smart integrations that are context-aware and provide useful suggestions are the ultimate goal.&lt;/p&gt;

&lt;p&gt;In speaking with our users, we learned that even context-aware chat and smart prompts are not enough to accelerate development to the extent we wanted for our users. AI code completion has become a vital tool for many developers. It’s not just a huge productivity boost, it can also be a great teacher for new patterns or APIs. So we are very happy to share that &lt;a href="https://codeium.com/" rel="noopener noreferrer"&gt;Codeium&lt;/a&gt; is now integrated into CodeSandbox and immediately available to all CodeSandbox users.&lt;/p&gt;

&lt;blockquote&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;“At Codeium, we believe strongly that every developer should get the best tools no matter where they are developing. Thus, it only made sense to partner with our friends at CodeSandbox so that their massive community gets access to these cutting edge AI-powered features.” — Anshul Ramachandran, Head of Enterprise and Partnerships at Codeium
&lt;/code&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Codeium autocomplete
&lt;/h2&gt;

&lt;p&gt;Codeium is an incredible AI-powered developer toolkit. Their code completion tool provides single and multi-line code generation with multiple suggestions to choose from. It supports 70+ programming languages, so it’s a perfect fit with our Devboxes, which can also run any type of project.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fim.ezgif.com%2Ftmp%2Fezgif-1-035601d9bb.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fim.ezgif.com%2Ftmp%2Fezgif-1-035601d9bb.gif" alt="Codeium"&gt;&lt;/a&gt;&lt;br&gt;
Showcase of some of Codeium's capabilities running in a Devbox.&lt;/p&gt;

&lt;p&gt;As a team, we have been using it to write code, generate tests and suggest language for content. It only took us a number of days using it to fall in love with the integration and less than a week before it completely changed the way we thought about our coding process and estimation times.&lt;/p&gt;

&lt;h2&gt;
  
  
  Free for everyone
&lt;/h2&gt;

&lt;p&gt;Codeium code completion is now available for free to every CodeSandbox user on &lt;a href="https://codesandbox.io/dashboard/recent?create_devbox=true" rel="noopener noreferrer"&gt;Devboxes&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If you have your AI settings enabled, you will get AI autocomplete working in your code immediately. Note that we disable AI permission toggles by default, so if you have not yet enabled them, you will have a chance to do so through our announcement interfaces or through the workspace settings.&lt;/p&gt;

&lt;p&gt;While the experience of using Codeium in CodeSandbox should hopefully be very intuitive, we invite you to have a look at our Docs to learn more about settings and customization.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI is empowerment
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Filipe Lima&lt;br&gt;
Product Marketing Manager at CodeSandbox&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;It’s tricky to cut through all the AI noise. However, we strongly believe that AI has an increasingly powerful role in empowering developers.&lt;/p&gt;

&lt;p&gt;By partnering with like-minded providers like Codeium, we are doubling down on making code more accessible to everyone. AI will shape the next few decades of software development. So we want to make sure it’s available to everyone.&lt;/p&gt;

&lt;p&gt;To start blazing through code with Codeium, &lt;a href="https://codesandbox.io/dashboard/recent?create_devbox=true" rel="noopener noreferrer"&gt;spin up a Devbox&lt;/a&gt;, make sure AI features are enabled, and tab away!&lt;/p&gt;

&lt;p&gt;Finally, make sure to &lt;a href="https://lu.ma/bmtupx82" rel="noopener noreferrer"&gt;join our live stream&lt;/a&gt; later today for a Q&amp;amp;A with the team that built this integration, with a special guest from Codeium.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>cloudcomputing</category>
      <category>cloud</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
