Self-Host FigCraft on Your Own Server
Last updated: 2026-10-24
October 23, 2026 · FigCraft v0.10.0 · Community guide
The quickest way to try self-hosting FigCraft is to serve its prebuilt static web release. You need no Rust toolchain and no application server for the standalone editor. A local smoke test takes only a few commands; public hosting also needs HTTPS and correct response headers.
1. Get the official release
Open the
upstream v0.10.0 release
and download figcraft-web-0.10.0.zip. Keep the original archive so you can
reproduce the version you deploy.
Extract the archive. The release folder contains index.html, a hashed
JavaScript module, a hashed .wasm file, hosting instructions and license
notices. Keep all of them together.
2. Run a local smoke test
With Python 3 installed, run these commands from the directory containing the downloaded archive:
unzip figcraft-web-0.10.0.zip
cd figcraft-web-0.10.0
python3 -m http.server 8767 --bind 127.0.0.1
Open http://localhost:8767/. Localhost is treated as a secure context by
browsers. The editor needs WebGPU or WebGL2. If WebGPU has a driver problem,
the upstream build supports ?webgl to force WebGL2.
This command serves files for a local test. It is not a public production server. Stop it with Ctrl+C when you are done.
3. Upload the extracted files to a static host
Deploy the contents of the release folder, rather than an extra enclosing
folder, to your static host. All URLs in the official index are relative, so
the release can live at the root or under a path such as /editor/.
Preserve LICENSE-MIT, LICENSE-APACHE, NOTICE and the bundled font license
texts. The open source license does not grant permission to use the ArtCraft
name, wordmark or logos as your own branding.
4. Configure headers and HTTPS
- Serve
.wasmasapplication/wasm. - Serve the JavaScript module with a JavaScript MIME type.
- Use HTTPS for public hosting. WebGPU and clipboard features need a secure context.
- Enable compression if your host supports it; measure the actual transfer size of your version.
- Cache the hashed JS and WASM files for a long time, while revalidating HTML.
The package includes example _headers and .htaccess files. On Cloudflare
Pages, put _headers at the site root. If the editor lives under /editor/,
prefix its rules accordingly:
/editor/*.wasm
Content-Type: application/wasm
Cache-Control: public, max-age=31536000, immutable
/editor/*.js
Cache-Control: public, max-age=31536000, immutable
/editor/
Cache-Control: no-cache
/editor/index.html
Cache-Control: no-cache
Cloudflare Pages has a 25 MiB per-file upload limit. The v0.10.0 WASM file is 24,876,457 bytes, below that limit. Recheck the size when upgrading; do not assume every future release fits.
5. Verify the public deployment
Open the editor at its final URL and check the browser network panel. Confirm that HTML, the JS module and the WASM file load successfully, with the correct MIME types. Check that the loading screen gives way to an interactive canvas, then create a simple shape.
If the module loads but graphics fail, try ?webgl, check browser graphics
support and inspect the console. FigCraft does not require SharedArrayBuffer
isolation headers according to its bundled hosting guide.
Know what you have hosted
You have served a standalone editor, not a cloud workspace. The web build starts with a new document; its native file dialogs are not wired up. This static setup supplies neither accounts nor shared storage nor a live-session backend.
Read Figma vs FigCraft for the browser and desktop distinctions, or try our community-hosted editor before setting up your own host.
Source: HOSTING.md, NOTICE and the file inventory bundled with the official FigCraft v0.10.0 web release. Commands above are a local serving recipe; public deployment depends on your host.