Analysis updated 2026-05-18
Explore how a full desktop style interface can be built without HTML, CSS, or a framework.
Study how a single C codebase can target both WebAssembly in a browser and bare metal x86 hardware.
Use as a portfolio format that lets visitors interact with a mini OS instead of a static page.
Learn low level graphics programming techniques like drawing windows and text into a pixel buffer.
| markshenouda/markcodesos | code-my-spec/ear_witness | douglascorrea/syscall-agent | |
|---|---|---|---|
| Stars | 2 | 2 | 2 |
| Language | C | C | C |
| Setup difficulty | moderate | hard | moderate |
| Complexity | 4/5 | 4/5 | 4/5 |
| Audience | developer | developer | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires a C toolchain and WASI SDK to build the WebAssembly binary from source.
MarkCodesOS is a personal portfolio website that looks and behaves like a small desktop operating system running inside your browser tab. Instead of using normal web building blocks, the entire interface, every window, icon, titlebar, and letter of text, is drawn pixel by pixel by C code compiled to WebAssembly onto a single canvas element. There is no HTML layout for the interface itself, no React, and no CSS doing the visual work. The project is roughly 13,000 lines of C code that compiles down to a WebAssembly file of about 59 kilobytes, plus a small JavaScript helper of around 430 lines. That JavaScript layer only loads the compiled program, forwards keyboard, mouse, and touch input into it, and copies the finished picture onto the screen once per animation frame. It does not contain any of the actual app logic. Remarkably, the same operating system core can also boot directly on a real x86 computer with no browser at all, using QEMU for testing, because the parts that talk to the outside world are isolated behind a small interface that each platform implements differently. Once running, you can double click desktop icons or use a dock to launch apps, search everything with a keyboard shortcut similar to Spotlight on a Mac, drag and resize windows, and snap them to the edges of the screen. Your wallpaper choice and open windows are remembered even after you reload the page. A built in terminal supports basic commands to browse a small in memory file system. Included apps and games range from a calculator, notes, and a pixel art painting tool to classic games like Snake, 2048, Minesweeper, Tetris, Pong, Breakout, and Tic-tac-toe. To try it yourself, you run a single command that builds the WebAssembly file, assembles the output folder, and serves it locally, then open the given address in a browser. The project's source is organized into a shared operating system core, the two platform specific ports for web and bare metal x86, and a folder of individual apps and games.
A personal portfolio website built as a tiny operating system, drawn pixel by pixel in C and compiled to WebAssembly, that also boots on real hardware.
Mainly C. The stack also includes C, WebAssembly, JavaScript.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.