Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

v0.6 #209

v0.6 #209
Dec 6, 2025 · 0 comments
Discussion options

Port Endpoints and Static Site Publishing

Apptron is a sophisticated browser-based cloud development environment that runs a full x86 Linux virtual machine entirely in the browser. It combines several cutting-edge technologies—WebAssembly, x86 emulation, Plan 9 filesystem protocols, and Cloudflare's edge computing platform—to deliver a complete development experience with VS Code, terminal access, and persistent storage, all without requiring any local installation.

This is a fairly accurate summary from the Apptron Analysis Report recently put together by Simon Willison using Claude Code to inspect the project source and generate a report. While it does a decent job at covering Apptron architecture and capabilities, it's not perfect. Most notably, it's missing the recently added features of this release!

Static Site Publishing

The Share dialog now has a Publish section that lets you publish static files from a particular project directory to a separate, public URL. Publishing lets you use Apptron environments as a backend for updating blogs, marketing websites, documentation, etc. This is very similar to GitHub repositories being able to publish to GitHub Pages.

Considering an Apptron environment is just static files, this could soon be used to self-deploy new Apptron environments or Wanix-based virtual environments. Other long term plans for this functionality include automatic offline support, utilizing service workers, cache API, and web app manifest to be an ideal local-first platform. Static site publishing becomes progressive web app publishing.

As a full Linux environment, you can use any number of static site generators with publishing. If you have a favorite you want to get working in Apptron, submit an issue if you are having trouble.

Lastly, for advanced users, what Publish does is effectively rsync files from the source directory to a /public mount that is synced directly with the files served on the publish URL. You could skip the Publish dialog and write your own publishing script, or even directly modify files under /public. This mount is only available after using Publish once.

Port Endpoints

If any program listens on the session IP, Apptron will automatically set up a temporary public URL that will tunnel/route to this port. This lets you share a public URL to a server running in your browser. It's like a built-in Ngrok (or localtunnel, if you remember).

For example, if you install Python (apk add -u python3), you can run:

python3 -m http.server -b 0.0.0.0

This serves the current directory on port 8000, and Apptron will detect the port listen and print out the URL to access it publicly.

Future plans include automatic WebSocket tunneling for non-HTTP servers.

More Improvements

  • You can now execute both WASI and "Go JS" Wasm executables from the command line.
  • Go support has been improved with a pre-compiled standard library, speeding up initial builds.
  • You can enable the "built-in" Go with source /etc/goprofile.
  • Custom environment builds using .apptron/envbuild finish 30% faster.
  • There is initial support for embedding public environments via iframe. See Share > Embed.

Although it's very incomplete, there is also now a README that will slowly be improving. Unfortunately, this is the only current documentation besides these releases. However, as Simon Willison did, you can always have an LLM figure it out! Regardless, feel free to ask questions in Discord or in the Discussions here on GitHub.

As usual, files issues, help out where you can, and a huge thanks to our GitHub Sponsors.

Full Changelog: v0.5.0...v0.6.0


This discussion was created from the release v0.6.
You must be logged in to vote

Replies: 0 comments

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
1 participant

AltStyle によって変換されたページ (->オリジナル) /