Here we are, another 85 pull requests later! What does this number mean to the StackBlitz community? In our previous update here's what we expected to ship in July:
- Full Node.js ESM support in WebContainer
- Enabling non-JS tools like esbuild and their consumers (i.e. vite, snowpack, etc) to run natively in WebContainer
- Adding a new batch of officially supported starter projects to our homepage/dashboard
- Editor DX improvements
How well did we do? Let's go over the list of the new features, fixes and improvements introduced in July!
- ES Modules support in alpha!
- Support for
esbuild-based toolchains now in alpha
Vite, Snowpack and others that depend on
esbuild for compilation are now available on StackBlitz today in alpha. There are some kinks we're still working out, so please provide us feedback if/when you run into something!
- Introducing title-based projects
Until last month the only significant identifier of your StackBlitz project was the slug (the last segment of the project URL's path, e.g.
stackblitz.com/edit/**value-as-number-demo**). But with the millions of projects being created on StackBlitz.com it was increasingly difficult to find a unique – and meaningful – name for the new projects.
By introducing titles, we are making slugs into an implementation detail, and now you can give your project a human-friendly title, without having to ensure its uniqueness, and with a more expressive character set (yay, emojis!❤️).
- Added: go-to definition
It's now easier to navigate through your codebase and libraries. Press
[⌘] on MacOS) and click a symbol – a class, function, or a variable – to open the file where it is defined, focused on the relevant line.
- Added the
WebContainers are fast. And now you can easily different commands you run in the Terminal by prefixing them with the
- Additional tools support now in alpha
With the ESM working, you can now start playing with esbuild and Vite! Test it out here, and let us know how it works for you!
- Improved auto-import
- Added support for mdx files
- Added the support for
JSONCand defined the schemas for workspace/user settings and snippets
- Enabled configuring global fetch
- Enabled the usage of pseudo protocols (e.g. relative://)
- Introduced a new GitHub issue template
- Improved error messages for http
- Fixed: intellisense for
- Fixed: "clear terminal" shortcut on macOS
- Fixed: entrypoint logic (index.html/tsx/js/jsx files location) for create-react-app starter
- Fixed: escape spaces in autocompleted file paths in terminal
- Fixed: set correct address when binding an IPv4 address (issue)
.stackblitzrcshowing the schema properties
- Fixed: show errors for comments placed in JSON files that don't allow comments, like
- Fixed: flushing tty in raw mode (improves support of e.g. up/down keys in some CLI tools)
Phew! So many updates! As always – that's all thanks to our engineering team being so incredible. A special thanks go to Adam Clarke, Sam Verschueren, Kwinten Pisman, Florens Verschelde, Garrison Snelling, Dominic Elm, Devon Wolfe, and Roberto Vidal!
Next month we're continuing to relentlessly focus on:
- Stabilizing the core WebContainer runtime
- Rapidly improving the end-to-end developer experience
As we've mentioned before, having ES Modules support opens many, many possibilities! In the following weeks one of our main goals will be following these opportunities in order to provide great support for the new communities interested in adopting WebContainers in their docs, tutorials and examples!
To help accomplish these objectives, here are some of the big things we expect to ship in our August 2021 Update:
- Stabilize ESM and
- Adding new starter projects & enhanced ways of exploring them
- New tools to help open source projects adopt, link & embed StackBlitz projects
- Editor DX improvements
- And more!
We're also happy to share that we're on track to ship the fully featured StackBlitz v2 by EOY and we'll have more info to share on this front within the next update or two. (And maybe some sneak peeks between now and then on Twitter :).
Stay tuned & come join the fun in our Discord!