Experimental Rust Support, Fixes, and Improvements
March 30, 2023
Changelog

This week we have added Rust support with Cargo, expanded the default the .spaceignore
file and added JSON Schema validation for the Spacefile
in our CLI, and added more Teletype actions like searching for collections, viewing the builds and releases of a project and even searching through Discovery.
Rust enters experimental support with Cargo
You can now use Cargo and deploy your Rust apps to Space! Rust support is still experimental, let us know if you hit any bugs.
Check out the quickstart guide to get started.
New default .spaceignore
patterns
Up until now the Space CLI only ignored a few directories (node_modules
and __pycache
) by default when uploading your app’s source code during space push
. For most apps, you’d have to create your own .spaceignore
file if you wanted common hidden files, cache directories or build outputs to be ignored. This led to a lot of confusion and frustration when trying to deploy apps that had a lot of files that were not needed for the app to run.
We have now added a few more patterns to the default .spaceignore
file which matches files and directories we think should be ignored by default (expand for full list).
New list of files/directories that are ignored by default
# space.space.spaceignore
# version control.hg.git.gitmodules.gitignore.svn
# buildbuilddist
# js frameworks.next.nuxt.svelte-kit.astro
# nodenode_modules.npmignore.cache.yarnnpm-debug.log*yarn-debug.log*yarn-error.log*lerna-debug.log*.pnpm-debug.log*
# python.venvvenvvirtualenv__pycache__
# rusttarget
# coverage*.lcov.nyc_output.coverage.coverage.*
# docker.dockerignore
# env.env.local.env.*.local.env.envrc
# ide.*.swp.vscode.history
# system.DS_Store
# other.lock-wscriptconfig.gypiCVS
Upgrade to the latest CLI version with the following command to get the new default ignore list:
space version upgrade
If you haven’t installed the CLI yet, you can do so by following the instructions in our docs.
If you want to ignore more files or directories, you can do so by creating a .spaceignore
file at the root of your project and adding them to it. If you want to include a file or directory that is ignored by default, add them to the .spaceignore
file negated with an exclamation mark (!
) in front of the file or directory name:
# include .env file!.env
Learn more about the .spaceignore
file and the default ignore list in the docs.
If you have any suggestions for other patterns to add to the default .spaceignore
file, please let us know on Discord.
Improved Spacefile validation
We are now using JSON Schema to validate the Spacefile
which means you’ll get better error messages when you have a syntax error in your Spacefile
:
❗ Detected some issues with your Spacefile. Please fix them before pushing your code.
SpacefileL missing properties: 'v'L micro "python-app" L missing property: 'engine' L missing property: 'src'
You can also use the JSON schema in your IDE to get better autocompletion and validation.
For example, in VS Code you can add the following to your settings.json
file to enable JSON Schema validation for the Spacefile
:
{ "files.associations": { "Spacefile": "yaml" }, "yaml.schemas": { "https://deta.space/assets/spacefile.schema.json": ["Spacefile"] }}
You will need to have the YAML extension installed for this to work.
Thanks to @lemonyte for bootstrapping the Spacefile
JSON Schema!
New Teletype Actions
We have added more Teletype actions to make it easier to work with your projects and other data in Space. Actions are now more unified between pages, meaning you can now search for apps on Discovery from your Canvas, open a Builder project or collection from Discovery and even view your latest builds of a particular Builder project.

We have also improved the “Available App Updates” action so you can now update your apps right from Teletype:

Give the improved Teletype a try and let us know what you think! You can also expect some major improvements to Teletype’s abilities in the coming weeks, stay tuned!
Bug Fixes and Improvements
- Fixed intermittent timeout issues when pushing apps to Space
- Improved handling of large pushes with better error messages
- Other smaller bug fixes and stability improvements
Thank you for all the valuable feedback — please continue to share your thoughts as we work to build and improve Space.