# Michał "DualFroz" Fox
**Software developer building games and IT ecosystems, based in Kraków**
Founder @ [VulCode](https://vulcode.com)
Co-founder @ [Aphrodi](https://aphrodi.pl)
Co-founder & Developer @ Lunatic Studios
Lead Developer @ Flaem, Plazer, Gyred
dualfroz.com |
X |
Discord |
| 🌱 Beginnings 2020 |
My first lines of code. Simple static websites, each one teaching me something more interesting than the last. Nothing advanced yet, but everyone starts somewhere. |
| 🎮 Servers and community SCP: Secret Laboratory |
I ran SCP:SL servers and wrote add-ons for them in C#. That work grew into Nebula: a set of plugins with a moderation tool and server statistics aggregation. |
| 🛠️ Support and marketing MatHost |
Technical support across hundreds of tickets: game servers, Discord bots, Pterodactyl. This is where I really grew, and it shows. Between 2023 and 2025 I gained a huge amount of knowledge precisely by helping MatHost's customers. |
| 💼 Client projects since 2024 |
Serious freelance work: projects from start to finish, with a focus on system design, architecture and how everything works from the ground up. This is where I learned many of the things I use every day now. |
| 🏢 My own software house VulCode |
I founded VulCode. Quoting the website: "VulCode is a Polish software house with years of experience. Since 2020 it has been delivering high-quality software and has written over 3 million lines of code. It specializes in websites, panels, dashboards and applications, as well as building scalable platforms. It actively contributes to dozens of open source projects." |
| 🎨 Branding and marketing Aphrodi |
I co-run Aphrodi, a branding, digital and marketing studio that complements what VulCode builds in code. I regularly work on marketing and graphic design there, which rounds out my stack a little more every day. |
| 🌍 Open source today |
I contribute to open source projects used by millions of people, from developer tools to libraries. As I said above, I simply like helping others. It gives me a lot of joy. |
| 🚀 My own platforms today |
I build my own products: Flaem, Plazer, Gyred and the SaaS products Atrium and Lokal. There will be more over time, but for now I'm focused on polishing the existing projects rather than starting new ones. |
VulCode founderVulCode is a Polish software house with years of experience. Since 2020 it has been delivering high-quality software and has written over 3 million lines of code. It specializes in websites, panels, dashboards and applications, as well as building scalable platforms. It actively contributes to dozens of open source projects. |
|
Aphrodi co-founderA creative agency: branding, visual identity, web design, 3D graphics and video. |
|
Lunatic Studios co-founderAn independent game studio: online chess with custom rules and a collection of mini games. |
| Flaem A hosting and infrastructure platform: game servers and containers, VPS and LXC, network services (tunnels, transit, IP blocks, integrations with routers and anti-DDoS protection) and IPMI. Seven independent modules in Rust, Elixir and Go, a React panel, and apps for desktop, iOS and Android. |
|
| Plazer An end-to-end encrypted messenger: private, lightweight, highly customizable and self-hostable by anyone. Built around privacy, a small footprint and customization. Something I want to use myself. |
|
| Gyred A panel for complex, long-running autonomous AI agent sessions, with an assistant that keeps long-term context in indexed text files. A useful tool for developers when used well. |
5,994,022lines of code |
23,830commits |
200+projects |
|
410,000+OSS project stars |
53open source projects |
26languages |
1,655working days |
| Language | Lines of code | Commits | Share | |
|---|---|---|---|---|
| TypeScript | 2,274,503 | 6,203 | 46.0% ██████████ | |
| Rust | 988,753 | 2,516 | 20.0% ████ | |
| Go | 281,782 | 907 | 5.7% █ | |
| Kotlin | 206,250 | 796 | 4.2% █ | |
| C# | 162,872 | 752 | 3.3% █ | |
| JavaScript | 140,024 | 500 | 2.8% █ | |
| PHP | 130,914 | 149 | 2.6% █ | |
| Swift | 116,812 | 437 | 2.4% █ | |
| Elixir | 91,810 | 438 | 1.9% █ | |
| Python | 84,375 | 317 | 1.7% █ | |
| HTML | 80,555 | 145 | 1.6% █ | |
| CSS | 61,717 | 502 | 1.2% █ | |
| C++ | 57,275 | 358 | 1.2% █ | |
| C | 49,346 | 355 | 1.0% █ | |
| Zig | 44,583 | 284 | 0.9% █ | |
| SQL | 38,114 | 590 | 0.8% █ | |
| Ruby | 37,655 | 263 | 0.8% █ | |
| Lua | 32,053 | 206 | 0.6% █ | |
| Shell | 29,411 | 263 | 0.6% █ | |
| Java | 13,788 | 75 | 0.3% █ | |
| Dart | 6,013 | 40 | 0.1% █ | |
| Solidity | 4,688 | 33 | 0.1% █ | |
| Haskell | 3,609 | 28 | 0.1% █ | |
| Scala | 3,133 | 29 | 0.1% █ | |
| F# | 3,017 | 18 | 0.1% █ | |
| Assembly | 397 | 6 | 0.0% █ |
+293 -14 | [4](https://git.dualfroz.com/dualfroz/mozilla-firefox-firefox) |
| [proxmox/proxmox-widget-toolkit](https://www.proxmox.com/) | – | Perl | +59 -31 | [6](https://git.dualfroz.com/dualfroz/proxmox-git-proxmox-widget-toolkit) |
| [proxmox/pve-manager](https://www.proxmox.com/) | – | Perl | +497 -72 | [31](https://git.dualfroz.com/dualfroz/proxmox-git-pve-manager) |
| [proxmox/pve-storage](https://www.proxmox.com/) | – | Perl | +1050 -13 | [8](https://git.dualfroz.com/dualfroz/proxmox-git-pve-storage) |
| [proxmox/qemu-server](https://www.proxmox.com/) | – | Perl | +438 -34 | [12](https://git.dualfroz.com/dualfroz/proxmox-git-qemu-server) |
| [zed-industries/zed](https://github.com/zed-industries/zed) | ⭐ 91.8k | Rust | +123 -10 | [11](https://git.dualfroz.com/dualfroz/zed-industries-zed) |
| [telegramdesktop/tdesktop](https://github.com/telegramdesktop/tdesktop) | ⭐ 33.3k | C++ | +24 -5 | [3](https://git.dualfroz.com/dualfroz/telegramdesktop-tdesktop) |
| [composer/composer](https://github.com/composer/composer) | ⭐ 29.5k | PHP | +142 -4 | [3](https://git.dualfroz.com/dualfroz/composer-composer) |
| [icsharpcode/ILSpy](https://github.com/icsharpcode/ILSpy) | ⭐ 26.7k | C# | +4624 -13 | [16](https://git.dualfroz.com/dualfroz/icsharpcode-ILSpy) |
| [urfave/cli](https://github.com/urfave/cli) | ⭐ 24.3k | Go | +123 -12 | [3](https://git.dualfroz.com/dualfroz/urfave-cli) |
| [PHPMailer/PHPMailer](https://github.com/PHPMailer/PHPMailer) | ⭐ 22.3k | PHP | +135 -4 | [6](https://git.dualfroz.com/dualfroz/PHPMailer-PHPMailer) |
| [postcss/autoprefixer](https://github.com/postcss/autoprefixer) | ⭐ 22.2k | JavaScript | +50 -4 | [5](https://git.dualfroz.com/dualfroz/postcss-autoprefixer) |
| [gleam-lang/gleam](https://github.com/gleam-lang/gleam) | ⭐ 22k | Rust | +134 -1 | [2](https://git.dualfroz.com/dualfroz/gleam-lang-gleam) |
| [twpayne/chezmoi](https://github.com/twpayne/chezmoi) | ⭐ 21.9k | Go | +43 -17 | [2](https://git.dualfroz.com/dualfroz/twpayne-chezmoi) |
| [Seldaek/monolog](https://github.com/Seldaek/monolog) | ⭐ 21.4k | PHP | +41 -2 | [2](https://git.dualfroz.com/dualfroz/Seldaek-monolog) |
| [valeriansaliou/sonic](https://github.com/valeriansaliou/sonic) | ⭐ 21.4k | Rust | +88 -20 | [6](https://git.dualfroz.com/dualfroz/valeriansaliou-sonic) |
| [OpenRA/OpenRA](https://github.com/OpenRA/OpenRA) | ⭐ 17.6k | C# | +56 -5 | [2](https://git.dualfroz.com/dualfroz/OpenRA-OpenRA) |
| [briannesbitt/Carbon](https://github.com/briannesbitt/Carbon) | ⭐ 16.6k | PHP | +87 -0 | [3](https://git.dualfroz.com/dualfroz/briannesbitt-Carbon) |
| [PuerkitoBio/goquery](https://github.com/PuerkitoBio/goquery) | ⭐ 15k | Go | +183 -18 | [4](https://git.dualfroz.com/dualfroz/PuerkitoBio-goquery) |
| [App-vNext/Polly](https://github.com/App-vNext/Polly) | ⭐ 14.2k | C# | +19 -1 | [1](https://git.dualfroz.com/dualfroz/App-vNext-Polly) |
| [hajimehoshi/ebiten](https://github.com/hajimehoshi/ebiten) | ⭐ 13.6k | Go | +19 -13 | [8](https://git.dualfroz.com/dualfroz/hajimehoshi-ebiten) |
| [filp/whoops](https://github.com/filp/whoops) | ⭐ 13.2k | PHP | +115 -3 | [4](https://git.dualfroz.com/dualfroz/filp-whoops) |
| [spencermountain/compromise](https://github.com/spencermountain/compromise) | ⭐ 12.2k | JavaScript | +124 -11 | [38](https://git.dualfroz.com/dualfroz/spencermountain-compromise) |
| [doctrine/lexer](https://github.com/doctrine/lexer) | ⭐ 11.1k | PHP | +72 -2 | [2](https://git.dualfroz.com/dualfroz/doctrine-lexer) |
| [kanboard/kanboard](https://github.com/kanboard/kanboard) | ⭐ 9.9k | PHP | +127 -7 | [7](https://git.dualfroz.com/dualfroz/kanboard-kanboard) |
| [FluentValidation/FluentValidation](https://github.com/FluentValidation/FluentValidation) | ⭐ 9.8k | C# | +14 -1 | [2](https://git.dualfroz.com/dualfroz/FluentValidation-FluentValidation) |
| [serilog/serilog](https://github.com/serilog/serilog) | ⭐ 8.1k | C# | +12 -0 | [2](https://git.dualfroz.com/dualfroz/serilog-serilog) |
| [concourse/concourse](https://github.com/concourse/concourse) | ⭐ 7.9k | Go | +154 -24 | [1](https://git.dualfroz.com/dualfroz/concourse-concourse) |
| [predis/predis](https://github.com/predis/predis) | ⭐ 7.8k | PHP | +410 -28 | [5](https://git.dualfroz.com/dualfroz/predis-predis) |
| [vscode-neovim/vscode-neovim](https://github.com/vscode-neovim/vscode-neovim) | ⭐ 7.8k | TypeScript | +65 -2 | [6](https://git.dualfroz.com/dualfroz/vscode-neovim-vscode-neovim) |
| [NLog/NLog](https://github.com/NLog/NLog) | ⭐ 6.5k | C# | +19 -0 | [15](https://git.dualfroz.com/dualfroz/NLog-NLog) |
| [maildev/maildev](https://github.com/maildev/maildev) | ⭐ 6.1k | TypeScript | +69 -13 | [8](https://git.dualfroz.com/dualfroz/maildev-maildev) |
| [Pagefind/pagefind](https://github.com/Pagefind/pagefind) | ⭐ 5.5k | Rust | +48 -2 | [10](https://git.dualfroz.com/dualfroz/Pagefind-pagefind) |
| [xoofx/markdig](https://github.com/xoofx/markdig) | ⭐ 5.3k | C# | +223 -7 | [8](https://git.dualfroz.com/dualfroz/xoofx-markdig) |
| [dromara/carbon](https://github.com/dromara/carbon) | ⭐ 5.2k | Go | +41 -4 | [1](https://git.dualfroz.com/dualfroz/dromara-carbon) |
| [alecthomas/chroma](https://github.com/alecthomas/chroma) | ⭐ 5.1k | Go | +90 -3 | [1](https://git.dualfroz.com/dualfroz/alecthomas-chroma) |
| [olekukonko/tablewriter](https://github.com/olekukonko/tablewriter) | ⭐ 4.8k | Go | +16 -0 | [1](https://git.dualfroz.com/dualfroz/olekukonko-tablewriter) |
| [knadh/koanf](https://github.com/knadh/koanf) | ⭐ 4.2k | Go | +135 -10 | [2](https://git.dualfroz.com/dualfroz/knadh-koanf) |
| [spencermountain/spacetime](https://github.com/spencermountain/spacetime) | ⭐ 4.1k | JavaScript | +15 -40 | [7](https://git.dualfroz.com/dualfroz/spencermountain-spacetime) |
| [itchyny/gojq](https://github.com/itchyny/gojq) | ⭐ 3.8k | Go | +42 -5 | [9](https://git.dualfroz.com/dualfroz/itchyny-gojq) |
| [Suor/funcy](https://github.com/Suor/funcy) | ⭐ 3.5k | Python | +18 -2 | [2](https://git.dualfroz.com/dualfroz/Suor-funcy) |
| [thephpleague/csv](https://github.com/thephpleague/csv) | ⭐ 3.5k | PHP | +22 -9 | [2](https://git.dualfroz.com/dualfroz/thephpleague-csv) |
| [composer/satis](https://github.com/composer/satis) | ⭐ 3.3k | PHP | +55 -10 | [5](https://git.dualfroz.com/dualfroz/composer-satis) |
| [montanaflynn/stats](https://github.com/montanaflynn/stats) | ⭐ 3k | Go | +66 -23 | [3](https://git.dualfroz.com/dualfroz/montanaflynn-stats) |
| [versity/versitygw](https://github.com/versity/versitygw) | ⭐ 3k | Go | +124 -14 | [24](https://git.dualfroz.com/dualfroz/versity-versitygw) |
| [thephpleague/commonmark](https://github.com/thephpleague/commonmark) | ⭐ 3k | PHP | +17 -0 | [2](https://git.dualfroz.com/dualfroz/thephpleague-commonmark) |
| [mitsuhiko/insta](https://github.com/mitsuhiko/insta) | ⭐ 3k | Rust | +8 -2 | [1](https://git.dualfroz.com/dualfroz/mitsuhiko-insta) |
| [BurntSushi/jiff](https://github.com/BurntSushi/jiff) | ⭐ 3k | Rust | +37 -5 | [1](https://git.dualfroz.com/dualfroz/BurntSushi-jiff) |
| [zzzprojects/html-agility-pack](https://github.com/zzzprojects/html-agility-pack) | ⭐ 2.9k | C# | +158 -2 | [2](https://git.dualfroz.com/dualfroz/zzzprojects-html-agility-pack) |
| [Paymenter/Paymenter](https://github.com/Paymenter/Paymenter) | ⭐ 2.7k | PHP | +135 -11 | [4](https://git.dualfroz.com/dualfroz/Paymenter-Paymenter) |
| [api-platform/core](https://github.com/api-platform/core) | ⭐ 2.6k | PHP | +52 -27 | [2](https://git.dualfroz.com/dualfroz/api-platform-core) |
| [pelican/panel](https://github.com/pelican/panel) | ⭐ 2.4k | PHP | +64 -3 | [3](https://git.dualfroz.com/dualfroz/pelican-panel) |
| [gookit/goutil](https://github.com/gookit/goutil) | ⭐ 2.4k | Go | +12 -0 | [4](https://git.dualfroz.com/dualfroz/gookit-goutil) |
| [dedoc/scramble](https://github.com/dedoc/scramble) | ⭐ 2.2k | PHP | +23 -0 | [2](https://git.dualfroz.com/dualfroz/dedoc-scramble) |
| [gocarina/gocsv](https://github.com/gocarina/gocsv) | ⭐ 2.2k | Go | +89 -2 | [5](https://git.dualfroz.com/dualfroz/gocarina-gocsv) |
| [thephpleague/html-to-markdown](https://github.com/thephpleague/html-to-markdown) | ⭐ 1.9k | PHP | +3 -2 | [6](https://git.dualfroz.com/dualfroz/thephpleague-html-to-markdown) |
| [AfterShip/email-verifier](https://github.com/AfterShip/email-verifier) | ⭐ 1.6k | Go | +99 -3 | [3](https://git.dualfroz.com/dualfroz/AfterShip-email-verifier) |
| [fabiocaccamo/python-benedict](https://github.com/fabiocaccamo/python-benedict) | ⭐ 1.6k | Python | +66 -5 | [2](https://git.dualfroz.com/dualfroz/fabiocaccamo-python-benedict) |
| [gookit/color](https://github.com/gookit/color) | ⭐ 1.6k | Go | +12 -1 | [3](https://git.dualfroz.com/dualfroz/gookit-color) |
| [olebedev/when](https://github.com/olebedev/when) | ⭐ 1.5k | Go | +45 -1 | [4](https://git.dualfroz.com/dualfroz/olebedev-when) |
| [dgilland/pydash](https://github.com/dgilland/pydash) | ⭐ 1.4k | Python | +18 -5 | [4](https://git.dualfroz.com/dualfroz/dgilland-pydash) |
| [cakephp/chronos](https://github.com/cakephp/chronos) | ⭐ 1.4k | PHP | +17 -2 | [2](https://git.dualfroz.com/dualfroz/cakephp-chronos) |
| [go-playground/form](https://github.com/go-playground/form) | ⭐ 931 | Go | +35 -0 | [2](https://git.dualfroz.com/dualfroz/go-playground-form) |
| [mkideal/cli](https://github.com/mkideal/cli) | ⭐ 723 | Go | +22 -1 | [2](https://git.dualfroz.com/dualfroz/mkideal-cli) |
| [gookit/config](https://github.com/gookit/config) | ⭐ 585 | Go | +29 -8 | [2](https://git.dualfroz.com/dualfroz/gookit-config) |
| [rust-syndication/rss](https://github.com/rust-syndication/rss) | ⭐ 502 | Rust | +24 -2 | [2](https://git.dualfroz.com/dualfroz/rust-syndication-rss) |
| [kelindar/bitmap](https://github.com/kelindar/bitmap) | ⭐ 385 | Assembly | +146 -12 | [5](https://git.dualfroz.com/dualfroz/kelindar-bitmap) |
| [brick/date-time](https://github.com/brick/date-time) | ⭐ 361 | PHP | +67 -36 | [3](https://git.dualfroz.com/dualfroz/brick-date-time) |
| [pydantic/pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | ⭐ 338 | Python | +124 -1 | [2](https://git.dualfroz.com/dualfroz/pydantic-pydantic-extra-types) |
| [rodaine/table](https://github.com/rodaine/table) | ⭐ 324 | Go | +32 -2 | [2](https://git.dualfroz.com/dualfroz/rodaine-table) |
| [wroberts/pytimeparse](https://github.com/wroberts/pytimeparse) | ⭐ 299 | Python | +5 -1 | [3](https://git.dualfroz.com/dualfroz/wroberts-pytimeparse) |
| [QEDK/configparser-rs](https://github.com/QEDK/configparser-rs) | ⭐ 88 | Rust | +22 -1 | [3](https://git.dualfroz.com/dualfroz/QEDK-configparser-rs) |
| [thephpleague/uri-src](https://github.com/thephpleague/uri-src) | ⭐ 51 | PHP | +18 -2 | [4](https://git.dualfroz.com/dualfroz/thephpleague-uri-src) |
| [spiral/testing](https://github.com/spiral/testing) | ⭐ 7 | PHP | +255 -6 | [5](https://git.dualfroz.com/dualfroz/spiral-testing) |
## 🛠️ Technologies
### Programming languages
TypeScript |
Rust |
JavaScript |
Go |
PHP |
C# |
Python |
Kotlin |
Elixir |
Swift |
C++ |
Java |
C |
Dart |
Solidity |
Ruby |
Lua |
Zig |
Haskell |
Scala |
F# |
Assembly |
Node.js |
ASP.NET Core |
Laravel |
Symfony |
Django |
Flask |
FastAPI |
Docker |
Kubernetes |
nginx |
Grafana |
Linux |
Git |
PostgreSQL |
MySQL |
MariaDB |
SQLite |
Redis |
MongoDB |
ClickHouse |
Cassandra |
Prisma |
JSON |
React |
Next.js |
Vue |
Angular |
Astro |
Vite |
Tailwind CSS |
Bootstrap |
HTML |
CSS |
Sass |
Electron |
Tauri |
Avalonia |
VS Code |
Visual Studio |
JetBrains IDEs |
Android Studio |
Xcode |
Unity |
Godot |
Unreal Engine |
Figma |
Photoshop |
DaVinci Resolve |
Blender |