<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Haris</title>
    <description>The latest articles on DEV Community by Haris (@haris18).</description>
    <link>https://dev.to/haris18</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3642082%2F3dbcce03-24c1-4879-868f-031f5c4b1ee1.jpg</url>
      <title>DEV Community: Haris</title>
      <link>https://dev.to/haris18</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/haris18"/>
    <language>en</language>
    <item>
      <title>KryonOS v2.0.0 brings a JavaScript GUI OS to ESP32-S3 (N16R8), Cardputer, CYD, and LilyGO T-HMI with a 3D engine</title>
      <dc:creator>Haris</dc:creator>
      <pubDate>Sun, 27 Sep 2026 19:47:43 +0000</pubDate>
      <link>https://dev.to/haris18/kryonos-v200-brings-a-javascript-gui-os-to-esp32-s3-n16r8-cardputer-cyd-and-lilygo-t-hmi-1k8k</link>
      <guid>https://dev.to/haris18/kryonos-v200-brings-a-javascript-gui-os-to-esp32-s3-n16r8-cardputer-cyd-and-lilygo-t-hmi-1k8k</guid>
      <description>&lt;p&gt;KryonOS v2.0.0 marks a monumental milestone in the evolution of our open-source microcontroller operating system. This major release introduces multi-board hardware abstraction with official ESP32-S3 flagship support, full wireless Over-The-Air (OTA) updates, native KryonCloud integration with mesh messaging and cloud backups, a 3D hardware-accelerated graphics pipeline, an embedded Express-like web server, and an extensive suite of new JavaScript hardware APIs.&lt;/p&gt;





&lt;h2&gt;What's New in v2.0.0&lt;/h2&gt;

&lt;h3&gt;1. Multi-Board Hardware Abstraction Layer (HAL)&lt;/h3&gt;

&lt;p&gt;Expanded device compatibility beyond the initial prototype with modular hardware profiles, independent display bus drivers, and dedicated pin mappings located under &lt;code&gt;src/Hal/Boards/&lt;/code&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;ESP32-S3 DevKitC-1 N16R8 (&lt;code&gt;esp32-s3-devkitc-1-n16r8&lt;/code&gt;) [Tested &amp;amp; Verified]&lt;/strong&gt;:
    &lt;ul&gt;
      &lt;li&gt;Official tier-one flagship reference target.&lt;/li&gt;
      &lt;li&gt;Configured for 16MB Flash with dual-slot OTA partitions.&lt;/li&gt;
      &lt;li&gt;8MB Octal PSRAM (&lt;code&gt;qio_opi&lt;/code&gt;) enabled for high-resolution graphics and expanded JavaScript heap headroom.&lt;/li&gt;
      &lt;li&gt;Native USB-CDC serial console and hardware JTAG debugging support (&lt;code&gt;ARDUINO_USB_CDC_ON_BOOT=1&lt;/code&gt;).&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;M5Stack Cardputer v1.1 (&lt;code&gt;m5stack-cardputer&lt;/code&gt;) [EXPERIMENTAL]&lt;/strong&gt;:
    &lt;ul&gt;
      &lt;li&gt;56-Key physical matrix keyboard driver scanning via 74HC138 demultiplexer with complete Shift and Fn modifier layer decoding.&lt;/li&gt;
      &lt;li&gt;ST7789V2 SPI 240x135 landscape display driver integration.&lt;/li&gt;
      &lt;li&gt;ADC-based battery voltage and charge percentage telemetry.&lt;/li&gt;
      &lt;li&gt;Custom 8MB dual-OTA partition scheme (&lt;code&gt;partitions_cardputer.csv&lt;/code&gt;).&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;LilyGO T-HMI (&lt;code&gt;lilygo-t-hmi&lt;/code&gt;) [EXPERIMENTAL]&lt;/strong&gt;:
    &lt;ul&gt;
      &lt;li&gt;High-speed 8-bit parallel ST7789 display bus driver with hardware BGR color correction.&lt;/li&gt;
      &lt;li&gt;Integrated XPT2046 resistive touch controller with calibration routines.&lt;/li&gt;
      &lt;li&gt;1-bit high-speed SD_MMC storage mount.&lt;/li&gt;
      &lt;li&gt;Onboard battery voltage telemetry.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;ESP32-CYD-28 / Cheap Yellow Display (&lt;code&gt;esp32-cyd-28&lt;/code&gt;) [EXPERIMENTAL]&lt;/strong&gt;:
    &lt;ul&gt;
      &lt;li&gt;ILI9341 SPI display driver with dedicated touch SPI bus.&lt;/li&gt;
      &lt;li&gt;Built-in RGB notification LED and onboard LDR light sensor support.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Modular Build Architecture&lt;/strong&gt;: Board environments are decoupled into dedicated &lt;code&gt;.ini&lt;/code&gt; files under &lt;code&gt;src/Hal/Boards/board_configs/&lt;/code&gt; (&lt;code&gt;cardputer.ini&lt;/code&gt;, &lt;code&gt;cyd.ini&lt;/code&gt;, &lt;code&gt;t_hmi.ini&lt;/code&gt;) and imported automatically into &lt;code&gt;platformio.ini&lt;/code&gt; using &lt;code&gt;extra_configs&lt;/code&gt;.
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;Note on Experimental Boards:&lt;/strong&gt; Target boards marked as &lt;code&gt;[EXPERIMENTAL]&lt;/code&gt; are implemented at the driver and HAL level but currently lack hands-on verification due to unavailable test hardware. The ESP32-S3 DevKitC-1 N16R8 remains the sole fully verified, physical bench-tested device. If you find any issue in the experimental boards once you have flashed them, please submit an issue on our GitHub repository. Community members with these experimental boards are strongly encouraged to test builds and submit calibration feedback.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;2. Smart Wireless Over-The-Air (OTA) Updates&lt;/h3&gt;

&lt;p&gt;Devices with large flash memory (8MB+) can now update KryonOS completely over Wi-Fi without needing a USB cable.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
&lt;strong&gt;Full Wireless OTA Support&lt;/strong&gt;: Enabled for ESP32-S3 DevKitC-1 (16MB) and M5Stack Cardputer (8MB).&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Model-Aware Resolution&lt;/strong&gt;: Devices automatically fetch the exact update binary compiled specifically for their board target.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Anti-Brick Safety&lt;/strong&gt;: Enabled bootloader anti-rollback (&lt;code&gt;CONFIG_BOOTLOADER_APP_ROLLBACK_ENABLE=1&lt;/code&gt;) that automatically restores the previous working version if a newly flashed build fails to boot.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Notice for 4MB Flash Boards&lt;/strong&gt;: Smaller boards (such as the CYD and standard DOIT DevKit V1) safely fall back to guided USB flashing to accommodate partition constraints.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;3. KryonCloud Platform &amp;amp; Account Integration&lt;/h3&gt;

&lt;p&gt;A full native C++ system application located under the launcher item &lt;strong&gt;[ SYSTEM ] apps&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
&lt;strong&gt;Fresh Server Synchronization&lt;/strong&gt;: Automatically pings the cloud server for live account quotas and the KryonBeam inbox every time the app opens.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Standardized 5-Tab Navigation Layout&lt;/strong&gt;:
    &lt;ul&gt;
      &lt;li&gt;
&lt;strong&gt;Overview&lt;/strong&gt;: Account profile, hardware handle (&lt;code&gt;@handle&lt;/code&gt;), active Wi-Fi status, quick summary telemetry cards, and unpair button.&lt;/li&gt;
      &lt;li&gt;
&lt;strong&gt;KryonAI Studio&lt;/strong&gt;: Interactive on-device AI workspace with on-screen touch keyboard (&lt;code&gt;MyKeyboard&lt;/code&gt;), real-time Server-Sent Events (SSE) streaming, and strictly bounded word-wrapping to prevent screen edge overflow.&lt;/li&gt;
      &lt;li&gt;
&lt;strong&gt;KryonBeam&lt;/strong&gt;: Hardware-to-hardware mesh messaging featuring inbox threads, detail view modal, on-screen keyboard composer, recipient handle/broadcast selector (&lt;code&gt;*&lt;/code&gt;), message composer, queue purge acknowledgment, and public group support.&lt;/li&gt;
      &lt;li&gt;
&lt;strong&gt;Cloud Storage &amp;amp; Backup&lt;/strong&gt;: Dual-scope file browser for &lt;code&gt;/cloud/shared&lt;/code&gt; and &lt;code&gt;/cloud/device&lt;/code&gt; with SHA-256 verified downloading and background chunked uploading. Includes a full device backup and restore feature, accessible both from the device and via the Kryon Account web dashboard.&lt;/li&gt;
      &lt;li&gt;
&lt;strong&gt;Usage &amp;amp; Quotas Dashboard&lt;/strong&gt;: Dedicated telemetry screen with daily AI request progress bars, cloud storage allocation bars, a 00:00 UTC quota reset countdown, and verified node health badges.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;4. New JavaScript Runtime Engines &amp;amp; APIs&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;Cloud AI Engine (&lt;code&gt;Kryon.ai&lt;/code&gt; / &lt;code&gt;System.ai&lt;/code&gt; / &lt;code&gt;AI&lt;/code&gt;)&lt;/strong&gt;:
    &lt;ul&gt;
      &lt;li&gt;
&lt;code&gt;Kryon.ai.stream(options)&lt;/code&gt;: Real-time SSE token-by-token streaming directly into UI components without RAM exhaustion.&lt;/li&gt;
      &lt;li&gt;
&lt;code&gt;Kryon.ai.ask(prompt, options, callback)&lt;/code&gt;: One-shot LLM reasoning query with usage statistics and error handling.&lt;/li&gt;
      &lt;li&gt;
&lt;code&gt;Kryon.ai.extract(options, callback)&lt;/code&gt;: Schema-constrained structured JSON extraction from messy logs and sensor feeds.&lt;/li&gt;
      &lt;li&gt;
&lt;code&gt;Kryon.ai.vision(options, callback)&lt;/code&gt;: Computer vision analysis of screen buffer snapshots or camera images.&lt;/li&gt;
      &lt;li&gt;
&lt;code&gt;Kryon.ai.status()&lt;/code&gt;: Real-time connectivity and daily credit quota monitoring.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;FastMath Hardware Acceleration Engine (&lt;code&gt;FastMath&lt;/code&gt; / &lt;code&gt;System.math&lt;/code&gt;)&lt;/strong&gt;:
    &lt;ul&gt;
      &lt;li&gt;Direct hardware single-precision Floating Point Unit (FPU) math: &lt;code&gt;FastMath.sin()&lt;/code&gt;, &lt;code&gt;cos()&lt;/code&gt;, &lt;code&gt;tan()&lt;/code&gt;, &lt;code&gt;asin()&lt;/code&gt;, &lt;code&gt;acos()&lt;/code&gt;, &lt;code&gt;atan2()&lt;/code&gt;, &lt;code&gt;sqrt()&lt;/code&gt;, &lt;code&gt;hypot()&lt;/code&gt;.&lt;/li&gt;
      &lt;li&gt;360° Trigonometric LUT: Pre-computed &lt;code&gt;FastMath.fastSin()&lt;/code&gt; and &lt;code&gt;fastCos()&lt;/code&gt; for 60FPS animation loops.&lt;/li&gt;
      &lt;li&gt;Hardware True Random Number Generator (TRNG): &lt;code&gt;FastMath.random()&lt;/code&gt; and &lt;code&gt;randomRange()&lt;/code&gt; powered by silicon RF noise (&lt;code&gt;esp_random()&lt;/code&gt;).&lt;/li&gt;
      &lt;li&gt;3D Graphics &amp;amp; Matrix Batch Processing (300%–800% FPS boost): Native C++ 4x4 matrix multiplications (&lt;code&gt;mat4Multiply&lt;/code&gt;), Euler rotations (&lt;code&gt;mat4Rotate&lt;/code&gt;), perspective projection (&lt;code&gt;mat4Perspective&lt;/code&gt;), and bulk vertex projection (&lt;code&gt;transformVertices&lt;/code&gt;).&lt;/li&gt;
      &lt;li&gt;Vector &amp;amp; Array DSP Utilities: &lt;code&gt;vec2Distance&lt;/code&gt;, &lt;code&gt;vec3Distance&lt;/code&gt;, &lt;code&gt;dot2&lt;/code&gt;, &lt;code&gt;dot3&lt;/code&gt;, &lt;code&gt;cross3&lt;/code&gt;, &lt;code&gt;normalize2&lt;/code&gt;, &lt;code&gt;normalize3&lt;/code&gt;, &lt;code&gt;arraySum&lt;/code&gt;, &lt;code&gt;arrayMinMax&lt;/code&gt;, and &lt;code&gt;arrayDot&lt;/code&gt;.&lt;/li&gt;
      &lt;li&gt;Constants: &lt;code&gt;PI&lt;/code&gt;, &lt;code&gt;HALF_PI&lt;/code&gt;, &lt;code&gt;TWO_PI&lt;/code&gt;, &lt;code&gt;DEG_TO_RAD&lt;/code&gt;, &lt;code&gt;RAD_TO_DEG&lt;/code&gt;.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Kryon3D Hardware-Accelerated 3D Engine (&lt;code&gt;Kryon3D&lt;/code&gt; / &lt;code&gt;System.graphics3d&lt;/code&gt;)&lt;/strong&gt;:
    &lt;ul&gt;
      &lt;li&gt;Flicker-free double-buffering: Off-screen frame buffer management in PSRAM/SRAM with single-burst DMA SPI flush (&lt;code&gt;begin&lt;/code&gt;, &lt;code&gt;clear&lt;/code&gt;, &lt;code&gt;render&lt;/code&gt; / &lt;code&gt;flush&lt;/code&gt;, &lt;code&gt;end&lt;/code&gt;).&lt;/li&gt;
      &lt;li&gt;Unified 2D + 3D Composite Rendering: All standard 2D graphics methods (&lt;code&gt;fillRect&lt;/code&gt;, &lt;code&gt;drawString&lt;/code&gt;, &lt;code&gt;drawLine&lt;/code&gt;, &lt;code&gt;drawRoundRect&lt;/code&gt;, &lt;code&gt;fillCircle&lt;/code&gt;, &lt;code&gt;drawPixel&lt;/code&gt;) layer directly onto the active 3D double buffer for game HUDs, weapons, and minimaps.&lt;/li&gt;
      &lt;li&gt;3D Camera, Viewport, Projection &amp;amp; Lighting: Configurable viewport sub-rects (&lt;code&gt;setViewport&lt;/code&gt;), camera eye/target, FOV, and directional light shading (&lt;code&gt;setCamera&lt;/code&gt;, &lt;code&gt;setLight&lt;/code&gt;, &lt;code&gt;setFog&lt;/code&gt;).&lt;/li&gt;
      &lt;li&gt;Hardware 3D Primitives: &lt;code&gt;drawLine&lt;/code&gt;, &lt;code&gt;drawTriangle&lt;/code&gt;, &lt;code&gt;fillTriangle&lt;/code&gt; (with automatic backface culling and flat directional shading), &lt;code&gt;drawCube&lt;/code&gt;, and &lt;code&gt;drawBillboard&lt;/code&gt;.&lt;/li&gt;
      &lt;li&gt;Batch 3D Mesh Rendering: Native &lt;code&gt;drawMesh&lt;/code&gt; capable of transforming, culling, shading, and rasterizing entire polygon models in a single C++ call.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Networking &amp;amp; REST API Engine (&lt;code&gt;Network&lt;/code&gt;)&lt;/strong&gt;:
    &lt;ul&gt;
      &lt;li&gt;Full REST API methods: &lt;code&gt;Network.get()&lt;/code&gt;, &lt;code&gt;post()&lt;/code&gt;, &lt;code&gt;put()&lt;/code&gt;, &lt;code&gt;delete()&lt;/code&gt;, and unified &lt;code&gt;request()&lt;/code&gt;.&lt;/li&gt;
      &lt;li&gt;Configurable timeouts and FreeRTOS watchdog-safe non-blocking event pumping.&lt;/li&gt;
      &lt;li&gt;Streaming file downloads with live progress callbacks (&lt;code&gt;Network.downloadFile()&lt;/code&gt;) directly to storage in 1024-byte chunks.&lt;/li&gt;
      &lt;li&gt;Network telemetry: &lt;code&gt;isConnected()&lt;/code&gt;, &lt;code&gt;hasInternet()&lt;/code&gt;, &lt;code&gt;getIP()&lt;/code&gt;, &lt;code&gt;getSSID()&lt;/code&gt;, &lt;code&gt;getRSSI()&lt;/code&gt;, and &lt;code&gt;showWiFiPrompt()&lt;/code&gt;.&lt;/li&gt;
      &lt;li&gt;Safe offline error handling without thread freezing.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;WebSocket Client Engine (&lt;code&gt;WebSocket&lt;/code&gt;)&lt;/strong&gt;:
    &lt;ul&gt;
      &lt;li&gt;W3C-standard WebSocket client: &lt;code&gt;onopen&lt;/code&gt;, &lt;code&gt;onmessage&lt;/code&gt;, &lt;code&gt;onerror&lt;/code&gt;, &lt;code&gt;onclose&lt;/code&gt;, &lt;code&gt;send()&lt;/code&gt;, &lt;code&gt;close()&lt;/code&gt;.&lt;/li&gt;
      &lt;li&gt;Native FreeRTOS 20-second ping/pong keep-alive heartbeat to prevent home router NAT dropouts.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Smart Multi-Network Wi-Fi Manager&lt;/strong&gt;:
    &lt;ul&gt;
      &lt;li&gt;Multi-credential JSON database (&lt;code&gt;known_networks.json&lt;/code&gt;) with automated migration from legacy &lt;code&gt;wifi.txt&lt;/code&gt;.&lt;/li&gt;
      &lt;li&gt;Two-phase sequential evaluation: sorts in-range APs by signal strength (RSSI) and performs post-association HTTP 204 WAN checks.&lt;/li&gt;
      &lt;li&gt;Background auto-reconnect on connection dropout and on-boot smart association.&lt;/li&gt;
      &lt;li&gt;Upgraded Settings Wi-Fi UI with live connection cards, animated network scanner, and Saved Networks management screen.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Embedded Web Server Engine (&lt;code&gt;HttpServer&lt;/code&gt;)&lt;/strong&gt;:
    &lt;ul&gt;
      &lt;li&gt;Express.js-style embedded HTTP server: &lt;code&gt;listen()&lt;/code&gt;, &lt;code&gt;stop()&lt;/code&gt;, &lt;code&gt;isRunning()&lt;/code&gt;, &lt;code&gt;getPort()&lt;/code&gt;, &lt;code&gt;getURL()&lt;/code&gt;, &lt;code&gt;getStats()&lt;/code&gt;, &lt;code&gt;poll()&lt;/code&gt;, &lt;code&gt;reset()&lt;/code&gt;.&lt;/li&gt;
      &lt;li&gt;Routing &amp;amp; middleware: &lt;code&gt;on()&lt;/code&gt;, &lt;code&gt;get()&lt;/code&gt;, &lt;code&gt;post()&lt;/code&gt;, &lt;code&gt;put()&lt;/code&gt;, &lt;code&gt;delete()&lt;/code&gt;, &lt;code&gt;patch()&lt;/code&gt;, &lt;code&gt;options()&lt;/code&gt;, &lt;code&gt;use()&lt;/code&gt;, &lt;code&gt;notFound()&lt;/code&gt;, and dynamic parameters (&lt;code&gt;/user/:id&lt;/code&gt;, &lt;code&gt;/files/*&lt;/code&gt;).&lt;/li&gt;
      &lt;li&gt;Express-like request and response objects (&lt;code&gt;req.query&lt;/code&gt;, &lt;code&gt;req.params&lt;/code&gt;, &lt;code&gt;req.body&lt;/code&gt;, &lt;code&gt;res.status()&lt;/code&gt;, &lt;code&gt;res.json()&lt;/code&gt;, &lt;code&gt;res.html()&lt;/code&gt;, &lt;code&gt;res.sendFile()&lt;/code&gt;, &lt;code&gt;res.cors()&lt;/code&gt;).&lt;/li&gt;
      &lt;li&gt;Chunked static file streaming (&lt;code&gt;serveStatic&lt;/code&gt;) from LittleFS/SD with MIME detection and TWDT watchdog protection.&lt;/li&gt;
      &lt;li&gt;Embedded security: 16 KB body payload limit (HTTP 413), path traversal protection, and 500 ms header timeout protection against Slowloris freezes.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Hardware-Accelerated PWM Engine (&lt;code&gt;PWM&lt;/code&gt; / &lt;code&gt;System.pwm&lt;/code&gt;)&lt;/strong&gt;:
    &lt;ul&gt;
      &lt;li&gt;Bound directly to the ESP32/S3 LEDC hardware peripheral (8 channels on S3, 16 on standard ESP32).&lt;/li&gt;
      &lt;li&gt;APIs: &lt;code&gt;setup()&lt;/code&gt;, &lt;code&gt;write()&lt;/code&gt;, &lt;code&gt;setDuty()&lt;/code&gt;, &lt;code&gt;setFrequency()&lt;/code&gt;, &lt;code&gt;setTone()&lt;/code&gt;, &lt;code&gt;stopTone()&lt;/code&gt;, &lt;code&gt;setServo()&lt;/code&gt;, &lt;code&gt;detach()&lt;/code&gt;, &lt;code&gt;getChannel()&lt;/code&gt;, &lt;code&gt;reset()&lt;/code&gt;.&lt;/li&gt;
      &lt;li&gt;Non-blocking tone synthesis with automatic timed expiration.&lt;/li&gt;
      &lt;li&gt;50 Hz 14-bit microsecond pulse width precision for RC servo positioning.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Hardware TwoWire I2C Master Engine (&lt;code&gt;I2C&lt;/code&gt; / &lt;code&gt;System.i2c&lt;/code&gt;)&lt;/strong&gt;:
    &lt;ul&gt;
      &lt;li&gt;Complete hardware master peripheral control: &lt;code&gt;begin()&lt;/code&gt;, &lt;code&gt;end()&lt;/code&gt;, &lt;code&gt;scan()&lt;/code&gt;, &lt;code&gt;ping()&lt;/code&gt;, &lt;code&gt;readReg()&lt;/code&gt;, &lt;code&gt;writeReg()&lt;/code&gt;, &lt;code&gt;readReg16()&lt;/code&gt;, &lt;code&gt;writeReg16()&lt;/code&gt;, &lt;code&gt;readRegBytes()&lt;/code&gt;, &lt;code&gt;write()&lt;/code&gt;, &lt;code&gt;read()&lt;/code&gt;, &lt;code&gt;reset()&lt;/code&gt;.&lt;/li&gt;
      &lt;li&gt;Automatic 50ms bus timeout protection preventing FreeRTOS watchdog freezes if slaves disconnect.&lt;/li&gt;
      &lt;li&gt;Repeated-Start (&lt;code&gt;Wire.endTransmission(false)&lt;/code&gt;) for atomic register access on sensors (MPU6050, BMP280, ADS1115).&lt;/li&gt;
      &lt;li&gt;9-clock cycle bus recovery sequence on &lt;code&gt;I2C.reset()&lt;/code&gt; to release unacknowledged lockups from wedged slave devices.&lt;/li&gt;
      &lt;li&gt;Automatic 32-byte chunking for large buffer transmissions (OLED displays, DACs).&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Hardware Cryptographic Acceleration Engine (&lt;code&gt;Crypto&lt;/code&gt; / &lt;code&gt;System.crypto&lt;/code&gt;)&lt;/strong&gt;:
    &lt;ul&gt;
      &lt;li&gt;Direct silicon hardware-accelerated SHA-256 (&lt;code&gt;Crypto.sha256()&lt;/code&gt;) and SHA-512 (&lt;code&gt;Crypto.sha512()&lt;/code&gt;) computation.&lt;/li&gt;
      &lt;li&gt;Hardware-assisted HMAC-SHA256 (&lt;code&gt;Crypto.hmacSha256()&lt;/code&gt;) for API tokens, AWS signature v4, and JWT verification.&lt;/li&gt;
      &lt;li&gt;Hardware AES-128 / AES-256 symmetric cipher blocks (&lt;code&gt;Crypto.aesEncrypt()&lt;/code&gt;, &lt;code&gt;Crypto.aesDecrypt()&lt;/code&gt;) with PKCS#7 block alignment and padding validation.&lt;/li&gt;
      &lt;li&gt;Cryptographically secure random bytes generator (&lt;code&gt;Crypto.randomBytes()&lt;/code&gt;) sampled directly from silicon RF noise.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Floating System Notifications (&lt;code&gt;System.notify&lt;/code&gt; / &lt;code&gt;Notification&lt;/code&gt;)&lt;/strong&gt;:
    &lt;ul&gt;
      &lt;li&gt;Non-blocking, fixed-size ring buffer queue in RAM (4 items max) preventing memory fragmentation.&lt;/li&gt;
      &lt;li&gt;Smooth cubic easing animation state machine (&lt;code&gt;SLIDE_IN&lt;/code&gt; → &lt;code&gt;DISPLAYING&lt;/code&gt; → &lt;code&gt;SLIDE_OUT&lt;/code&gt; over Y: −45 → +10).&lt;/li&gt;
      &lt;li&gt;Compositor overlay hook rendering glass card pill banners with typed status badges (info, warning, error, success) and optional PWM audio chimes.&lt;/li&gt;
      &lt;li&gt;Management APIs: &lt;code&gt;System.notify()&lt;/code&gt;, &lt;code&gt;System.notify.dismiss()&lt;/code&gt;, &lt;code&gt;System.notify.clearAll()&lt;/code&gt;.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;Inter-App Communication &amp;amp; Intent Dispatcher (&lt;code&gt;System.ipc&lt;/code&gt; / &lt;code&gt;IPC&lt;/code&gt;)&lt;/strong&gt;:
    &lt;ul&gt;
      &lt;li&gt;Contextual application launching with JSON startup argument passing (&lt;code&gt;System.ipc.launch()&lt;/code&gt;, &lt;code&gt;System.ipc.getLaunchArgs()&lt;/code&gt;).&lt;/li&gt;
      &lt;li&gt;File extension association mapping (e.g., &lt;code&gt;fileAssociations: [".bmp", ".txt"]&lt;/code&gt;) with automatic handler resolution (&lt;code&gt;System.ipc.openFile()&lt;/code&gt;).&lt;/li&gt;
      &lt;li&gt;Companion launch access controls and runtime mailbox system for inter-process messaging (&lt;code&gt;System.ipc.send()&lt;/code&gt;, &lt;code&gt;System.ipc.onMessage()&lt;/code&gt;).&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;For detailed architectural tutorials, memory management recommendations, and complete code samples, consult &lt;code&gt;Documentation/Kryon3D_Engine_Guide.md&lt;/code&gt; and &lt;code&gt;Documentation/JS_API_Guide.md&lt;/code&gt;.&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;5. Async Web Manager &amp;amp; Storage Dashboard Redesign&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;
&lt;strong&gt;Zero-Storage Web File Manager&lt;/strong&gt;: Embedded high-performance web manager served directly from flash &lt;code&gt;PROGMEM&lt;/code&gt;, requiring 0 bytes on LittleFS/SD.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Modern UI&lt;/strong&gt;: 100% inline embedded Lucide/Tabler SVG vector icons for drives, files, folders, and operations.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Live System Telemetry&lt;/strong&gt;: Real-time &lt;code&gt;/api/storage&lt;/code&gt; endpoint reporting LittleFS total/used/free, SD mount status, dynamic SoC chip model, free RAM, and conditional PSRAM stats.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;In-Browser Code Editor&lt;/strong&gt;: VS Code-style editor with synchronized line numbering gutter, Tab indentation, Ctrl+S save shortcut, cursor telemetry (Ln X, Col Y), and language syntax identification.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Themes &amp;amp; GitHub Integration&lt;/strong&gt;: Multi-theme selector (VS Code Dark, Cyber Blue, Clean Light) with localStorage persistence, alongside direct browser-to-GitHub live telemetry for stargazers and forks.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Settings "About Device" Card&lt;/strong&gt;: Live GitHub stargazers counter with an offline 5-tier rounding cache (&lt;code&gt;/local/system/stars_cache.json&lt;/code&gt;) for instantaneous loading without network latency.&lt;/li&gt;
&lt;/ul&gt;





&lt;h2&gt;Changes &amp;amp; Improvements&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;
&lt;strong&gt;FileSystem Path Resolution&lt;/strong&gt;: Refactored &lt;code&gt;FileSystem::getTargetFS&lt;/code&gt; to use non-static string references and uniform trailing slash normalization across all file, directory, and storage calls.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Documentation Suite&lt;/strong&gt;: Updated &lt;code&gt;Documentation/JS_API_Guide.md&lt;/code&gt; with comprehensive API specifications for FastMath (Section 6) and Kryon3D (Section 7), and introduced a dedicated game development guide in &lt;code&gt;Documentation/Kryon3D_Engine_Guide.md&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;





&lt;h2&gt;Flashing Instructions&lt;/h2&gt;

&lt;p&gt;Connect your ESP32 / ESP32-S3 board to your computer via USB and flash using &lt;code&gt;esptool.py&lt;/code&gt; or the official Espressif Flash Download Tool.&lt;/p&gt;

&lt;h3&gt;Flashing ESP32-S3 Targets (ESP32-S3 DevKitC-1, Cardputer, T-HMI)&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Note: On ESP32-S3, the bootloader starts at offset &lt;code&gt;0x0000&lt;/code&gt;. Adjust &lt;code&gt;--port COM3&lt;/code&gt; to match your system's serial port:&lt;/em&gt;&lt;/p&gt;

&lt;pre&gt;esptool.py --chip esp32s3 --port COM3 --baud 921600 write_flash -z \
  0x0000 bootloader-s3.bin \
  0x8000 partitions-s3-16mb.bin \
  0x10000 KryonOS-v2.0.0-esp32-s3-devkitc-1-n16r8.bin&lt;/pre&gt;

&lt;h3&gt;Flashing Standard ESP32 Targets (DevKit V1, ESP32-CYD-28)&lt;/h3&gt;

&lt;p&gt;&lt;em&gt;Note: On classic ESP32, the bootloader starts at offset &lt;code&gt;0x1000&lt;/code&gt;:&lt;/em&gt;&lt;/p&gt;

&lt;pre&gt;esptool.py --chip esp32 --port COM3 --baud 921600 write_flash -z \
  0x1000 bootloader.bin \
  0x8000 partitions.bin \
  0x10000 KryonOS-v2.0.0-esp32doit-devkit-v1.bin&lt;/pre&gt;





&lt;h2&gt;Hardware Requirements&lt;/h2&gt;

&lt;h3&gt;Primary Setup (Recommended)&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;ESP32-S3 DevKitC-1 (N16R8 variant: 16MB Flash, 8MB Octal PSRAM)&lt;/li&gt;
  &lt;li&gt;ILI9341 2.8 Inch TFT Touch Display Module&lt;/li&gt;
  &lt;li&gt;MicroSD Card Module SPI or SD_MMC (Optional)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
  &lt;strong&gt;Wiring Guide:&lt;/strong&gt; For complete ESP32-S3 DevKitC-1 (N16R8) Display &amp;amp; MicroSD module pinout connections, refer to the &lt;a href="https://github.com/Haris16-code/KryonOS/blob/main/Documentation/ESP32_S3_N16R8_Guide.md" rel="noopener noreferrer"&gt;Hardware Connection &amp;amp; Pinout Documentation&lt;/a&gt;.
&lt;/p&gt;

&lt;h3&gt;Supported All-in-One Targets&lt;/h3&gt;

&lt;ul&gt;
  &lt;li&gt;M5Stack Cardputer v1.1 (Integrated ESP32-S3, ST7789 display, matrix keyboard, battery)&lt;/li&gt;
  &lt;li&gt;LilyGO T-HMI (Integrated ESP32-S3, 8-bit parallel ST7789, resistive touch, battery)&lt;/li&gt;
  &lt;li&gt;ESP32-2432S028R / Cheap Yellow Display (Integrated ESP32, ILI9341 display, XPT2046 touch, RGB LED, LDR)&lt;/li&gt;
&lt;/ul&gt;





&lt;h2&gt;Star the Project&lt;/h2&gt;

&lt;p&gt;If you enjoy using KryonOS or find this release exciting, please consider giving our repository a &lt;strong&gt;Star on GitHub&lt;/strong&gt;! Every star helps boost visibility, attract contributors, and grow the embedded JavaScript ecosystem.&lt;/p&gt;

&lt;p&gt;→ &lt;a href="https://github.com/Haris16-code/KryonOS" rel="noopener noreferrer"&gt;Star KryonOS on GitHub&lt;/a&gt;&lt;/p&gt;





&lt;h2&gt;Support Hardware Acquisition &amp;amp; Testing&lt;/h2&gt;

&lt;p&gt;Expanding native device support requires physical testing on real hardware. Due to budget constraints, experimental board ports (Cardputer, T-HMI, CYD) cannot yet be bench-tested in person.&lt;/p&gt;

&lt;p&gt;If you would like to help us acquire these development boards, display modules, and test fixtures so they can become fully verified reference targets, please consider supporting the project:&lt;/p&gt;

&lt;p&gt;→ &lt;a href="https://harislab.lemonsqueezy.com/checkout/buy/9b37ee2c-e26a-4626-990f-f18834916276?logo=0" rel="noopener noreferrer"&gt;Sponsor KryonOS&lt;/a&gt;&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>esp32</category>
      <category>microcontroller</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Give a star to KryonOS Github Repository: https://github.com/Haris16-code/KryonOS</title>
      <dc:creator>Haris</dc:creator>
      <pubDate>Thu, 24 Sep 2026 19:25:54 +0000</pubDate>
      <link>https://dev.to/haris18/give-a-star-to-kryonos-github-repository-httpsgithubcomharis16-codekryonos-42p</link>
      <guid>https://dev.to/haris18/give-a-star-to-kryonos-github-repository-httpsgithubcomharis16-codekryonos-42p</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/haris18/a-gui-javascript-operating-system-for-the-esp32-3keh" class="crayons-story__hidden-navigation-link"&gt;A GUI JavaScript Operating System For The ESP32&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/haris18" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3642082%2F3dbcce03-24c1-4879-868f-031f5c4b1ee1.jpg" alt="haris18 profile" class="crayons-avatar__image" width="800" height="800"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/haris18" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Haris
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Haris
                
                
              
              &lt;div id="story-author-preview-content-4736111" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/haris18" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3642082%2F3dbcce03-24c1-4879-868f-031f5c4b1ee1.jpg" class="crayons-avatar__image" alt="" width="800" height="800"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Haris&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/haris18/a-gui-javascript-operating-system-for-the-esp32-3keh" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Sep 24&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/haris18/a-gui-javascript-operating-system-for-the-esp32-3keh" id="article-link-4736111"&gt;
          A GUI JavaScript Operating System For The ESP32
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag crayons-tag--filled  " href="/t/showdev"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;showdev&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/esp32"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;esp32&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/javascript"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;javascript&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/opensource"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;opensource&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
            &lt;a href="https://dev.to/haris18/a-gui-javascript-operating-system-for-the-esp32-3keh#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              1&lt;span class="hidden s:inline"&gt;&amp;nbsp;comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            5 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;



&lt;div class="crayons-card c-embed text-styles text-styles--secondary"&gt;
    &lt;div class="c-embed__content"&gt;
        &lt;div class="c-embed__cover"&gt;
          &lt;a href="https://github.com/Haris16-code/KryonOS" class="c-link align-middle" rel="noopener noreferrer"&gt;
            &lt;img alt="" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fopengraph.githubassets.com%2F17eaf06a3784052ac09d0ce6a8d6fbcdd13c8e705073611d471c8e767856e133%2FHaris16-code%2FKryonOS" height="600" class="m-0" width="1200"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="c-embed__body"&gt;
        &lt;h2 class="fs-xl lh-tight"&gt;
          &lt;a href="https://github.com/Haris16-code/KryonOS" rel="noopener noreferrer" class="c-link"&gt;
            GitHub - Haris16-code/KryonOS: KryonOS is an ESP32 GUI operating system with a JavaScript runtime for apps. It provides a real touch-based interface and allows installing and running JS apps dynamically without reflashing firmware. · GitHub
          &lt;/a&gt;
        &lt;/h2&gt;
          &lt;p class="truncate-at-3"&gt;
            KryonOS is an ESP32 GUI operating system with a JavaScript runtime for apps. It provides a real touch-based interface and allows installing and running JS apps dynamically without reflashing firmwa...
          &lt;/p&gt;
        &lt;div class="color-secondary fs-s flex items-center"&gt;
            &lt;img alt="favicon" class="c-embed__favicon m-0 mr-2 radius-0" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgithub.githubassets.com%2Ffavicons%2Ffavicon.svg" width="32" height="32"&gt;
          github.com
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;


</description>
    </item>
    <item>
      <title>A GUI JavaScript Operating System For The ESP32</title>
      <dc:creator>Haris</dc:creator>
      <pubDate>Thu, 24 Sep 2026 19:22:14 +0000</pubDate>
      <link>https://dev.to/haris18/a-gui-javascript-operating-system-for-the-esp32-3keh</link>
      <guid>https://dev.to/haris18/a-gui-javascript-operating-system-for-the-esp32-3keh</guid>
      <description>&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Haris16-code" rel="noopener noreferrer"&gt;
        Haris16-code
      &lt;/a&gt; / &lt;a href="https://github.com/Haris16-code/KryonOS" rel="noopener noreferrer"&gt;
        KryonOS
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      KryonOS is an ESP32 GUI operating system with a JavaScript runtime for apps. It provides a real touch-based interface and allows installing and running JS apps dynamically without reflashing firmware.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;KryonOS&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;KryonOS is an &lt;strong&gt;open-source&lt;/strong&gt;, lightweight, high-performance &lt;strong&gt;GUI&lt;/strong&gt; Operating System and JavaScript App Runtime designed specifically for the ESP32 microcontroller. It provides a complete desktop-like experience on embedded devices, featuring an integrated JS engine (Duktape) for executing standalone JavaScript applications, double-buffered graphics for smooth 2D/3D rendering, an App Store, file management, and direct hardware API access.&lt;/p&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;ESP32 + ILI9341 2.8" (Touch)&lt;/th&gt;
&lt;th&gt;Multiple Devices (Lab Overview)&lt;/th&gt;
&lt;th&gt;M5Stack Cardputer&lt;/th&gt;
&lt;th&gt;CYD (Cheap Yellow Display)&lt;/th&gt;
&lt;th&gt;LilyGO T-HMI&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Stable&lt;/strong&gt; 🟢&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;Experimental&lt;/em&gt; 🧪&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;Experimental&lt;/em&gt; 🧪&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;Experimental&lt;/em&gt; 🧪&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;Experimental&lt;/em&gt; 🧪&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a rel="noopener noreferrer" href="https://github.com/Haris16-code/KryonOS/Documentation/assets/imgs/kryonos-home.jpg"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FHaris16-code%2FKryonOS%2FHEAD%2FDocumentation%2Fassets%2Fimgs%2Fkryonos-home.jpg" width="220" alt="ESP32 ILI9341 Stable"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a rel="noopener noreferrer" href="https://github.com/Haris16-code/KryonOS/Documentation/assets/imgs/Devices.jpg"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FHaris16-code%2FKryonOS%2FHEAD%2FDocumentation%2Fassets%2Fimgs%2FDevices.jpg" width="220" alt="Hardware Overview"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a rel="noopener noreferrer" href="https://github.com/Haris16-code/KryonOS/Documentation/assets/imgs/Cardputer-V1.1.jpg"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FHaris16-code%2FKryonOS%2FHEAD%2FDocumentation%2Fassets%2Fimgs%2FCardputer-V1.1.jpg" width="220" alt="Cardputer"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a rel="noopener noreferrer" href="https://github.com/Haris16-code/KryonOS/Documentation/assets/imgs/CYD2432S028R.jpg"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FHaris16-code%2FKryonOS%2FHEAD%2FDocumentation%2Fassets%2Fimgs%2FCYD2432S028R.jpg" width="220" alt="CYD"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a rel="noopener noreferrer" href="https://github.com/Haris16-code/KryonOS/Documentation/assets/imgs/Lilygo-T-HMI.jpg"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FHaris16-code%2FKryonOS%2FHEAD%2FDocumentation%2Fassets%2Fimgs%2FLilygo-T-HMI.jpg" width="220" alt="T-HMI"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Features&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;JavaScript App Runtime:&lt;/strong&gt; Execute interactive JS apps natively on the ESP32 using the optimized Duktape engine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rich UI &amp;amp; Graphics:&lt;/strong&gt; Built-in graphics library with double-buffering support for smooth, tear-free 2D and 3D rendering.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;App Store &amp;amp; Installer:&lt;/strong&gt; Browse, download, and install JavaScript apps and updates dynamically over Wi-Fi.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;File Management:&lt;/strong&gt; Fully functional file explorer and text editor utilizing the SD Card for storage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hardware API:&lt;/strong&gt;…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Haris16-code/KryonOS" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h1&gt;Meet KryonOS: An Open-Source Graphical OS and JavaScript Runtime for the ESP32&lt;/h1&gt;

&lt;p&gt;Microcontrollers have advanced far beyond simple sensor telemetry and blinking LED loops. With dual-core 240MHz processors and high-speed external PSRAM, modern chips like the ESP32 and ESP32-S3 can run full-fledged operating environments. That vision led to &lt;a href="https://github.com/Haris16-code/KryonOS" rel="noopener noreferrer"&gt;&lt;strong&gt;KryonOS&lt;/strong&gt;&lt;/a&gt;: an open-source graphical operating system featuring an embedded JavaScript application engine, native 3D hardware graphics, and modern networking capabilities.&lt;/p&gt;





&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
  &lt;thead&gt;
    &lt;tr&gt;
      &lt;th&gt;ESP32 + ILI9341 2.8" (Touch)&lt;/th&gt;
      &lt;th&gt;Multiple Devices (Lab Overview)&lt;/th&gt;
      &lt;th&gt;M5Stack Cardputer&lt;/th&gt;
      &lt;th&gt;CYD (Cheap Yellow Display)&lt;/th&gt;
      &lt;th&gt;LilyGO T-HMI&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;
      &lt;td&gt;
&lt;strong&gt;Stable&lt;/strong&gt; 🟢&lt;/td&gt;
      &lt;td&gt;
&lt;em&gt;Experimental&lt;/em&gt; 🧪&lt;/td&gt;
      &lt;td&gt;
&lt;em&gt;Experimental&lt;/em&gt; 🧪&lt;/td&gt;
      &lt;td&gt;
&lt;em&gt;Experimental&lt;/em&gt; 🧪&lt;/td&gt;
      &lt;td&gt;
&lt;em&gt;Experimental&lt;/em&gt; 🧪&lt;/td&gt;
    &lt;/tr&gt;
    &lt;tr&gt;
      &lt;td&gt;
        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FHaris16-code%2FKryonOS%2Fmain%2FDocumentation%2Fassets%2Fimgs%2Fkryonos-home.jpg" width="800" alt="ESP32 ILI9341 Stable" height="1067"&gt;
      &lt;/td&gt;
      &lt;td&gt;
        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FHaris16-code%2FKryonOS%2Fmain%2FDocumentation%2Fassets%2Fimgs%2FDevices.jpg" width="800" alt="Hardware Overview" height="1067"&gt;
      &lt;/td&gt;
      &lt;td&gt;
        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FHaris16-code%2FKryonOS%2Fmain%2FDocumentation%2Fassets%2Fimgs%2FCardputer-V1.1.jpg" width="800" alt="Cardputer" height="1067"&gt;
      &lt;/td&gt;
      &lt;td&gt;
        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FHaris16-code%2FKryonOS%2Fmain%2FDocumentation%2Fassets%2Fimgs%2FCYD2432S028R.jpg" width="800" alt="CYD" height="1067"&gt;
      &lt;/td&gt;
      &lt;td&gt;
        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FHaris16-code%2FKryonOS%2Fmain%2FDocumentation%2Fassets%2Fimgs%2FLilygo-T-HMI.jpg" width="800" alt="T-HMI" height="1066"&gt;
      &lt;/td&gt;
    &lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;Why an OS on a Microcontroller?&lt;/h2&gt;

&lt;p&gt;Typically, developing for an ESP32 requires flashing monolithic firmware via PlatformIO or the Arduino IDE for every tweak. Changing a button's position or tweaking game logic means a full recompile and reflash cycle.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/Haris16-code/KryonOS" rel="noopener noreferrer"&gt;KryonOS&lt;/a&gt; shifts this paradigm by establishing a clear boundary between the &lt;strong&gt;native C++ core kernel&lt;/strong&gt; and &lt;strong&gt;high-level applications&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
&lt;strong&gt;Native C++ Kernel:&lt;/strong&gt; Manages FreeRTOS task scheduling, display SPI DMA channels, touchscreen interrupts, power management, and storage partitions.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Embedded JavaScript Engine:&lt;/strong&gt; Runs isolated user applications dynamically loaded from an SD card or internal LittleFS flash without recompiling firmware.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Unified System APIs:&lt;/strong&gt; Gives developers high-level JavaScript access to graphics primitives, networking, audio, file storage, and hardware sensors.&lt;/li&gt;
&lt;/ul&gt;





&lt;h2&gt;Hardware-Accelerated 3D on a Microcontroller: The Kryon3D Engine&lt;/h2&gt;

&lt;p&gt;A flagship highlight of &lt;a href="https://github.com/Haris16-code/KryonOS" rel="noopener noreferrer"&gt;KryonOS&lt;/a&gt; is &lt;strong&gt;Kryon3D&lt;/strong&gt;, a native C++ rasterization pipeline exposed directly to the JavaScript runtime. Built for double-buffered, tear-free rendering on TFT displays (like the ILI9341), it handles the heavy math at bare-metal speeds:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
&lt;strong&gt;Hardware Shading &amp;amp; Lighting:&lt;/strong&gt; Directional lighting calculations and backface culling to maximize polygon throughput.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;FastMath Acceleration:&lt;/strong&gt; Vector, matrix, and trigonometric operations offloaded to native routines for 30–60 FPS scene updates.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Composite 2D + 3D Rendering:&lt;/strong&gt; Render a 3D scene (cubes, wireframe meshes, or billboards) and composite 2D HUD text, crosshairs, or mini-maps directly in the same frame buffer before a single DMA flush to the display glass.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Distance Fog &amp;amp; Camera Models:&lt;/strong&gt; Standard 3D world coordinates with 6-DOF camera controls and fog blending.&lt;/li&gt;
&lt;/ul&gt;





&lt;h2&gt;Modern Networking: Full REST, Streaming, and WebSockets&lt;/h2&gt;

&lt;p&gt;Connected IoT and handheld devices need reliable communication without blocking the UI. &lt;a href="https://github.com/Haris16-code/KryonOS" rel="noopener noreferrer"&gt;KryonOS&lt;/a&gt; implements a non-blocking network architecture that avoids Task Watchdog (TWDT) panics and handles memory safely:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
&lt;strong&gt;Complete REST API:&lt;/strong&gt; Native &lt;code&gt;Network.get()&lt;/code&gt;, &lt;code&gt;post()&lt;/code&gt;, &lt;code&gt;put()&lt;/code&gt;, &lt;code&gt;delete()&lt;/code&gt;, and &lt;code&gt;request()&lt;/code&gt; bindings with configurable timeouts.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Memory-Optimized TLS:&lt;/strong&gt; Uses Maximum Fragment Length Negotiation (MFLN) to drop mbedTLS buffer usage from 32 KB down to ~3 KB, leaving internal SRAM free for execution.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Direct Storage Streaming:&lt;/strong&gt; &lt;code&gt;Network.downloadFile()&lt;/code&gt; streams remote files into LittleFS or SD storage in 1024-byte chunks with real-time download progress callbacks, preventing heap exhaustion.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;W3C-Standard WebSockets:&lt;/strong&gt; Native C++ engine with automated 20-second ping/pong frames to keep NAT connections alive for live telemetry and IoT dashboards.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;Smart Wi-Fi Manager:&lt;/strong&gt; Multi-network persistence (&lt;code&gt;known_networks.json&lt;/code&gt;) with RSSI sorting, automatic failover, and lightweight WAN reachability verification.&lt;/li&gt;
&lt;/ul&gt;





&lt;h2&gt;Sample: Running a 3D Scene in JavaScript&lt;/h2&gt;

&lt;p&gt;Writing an application for &lt;a href="https://github.com/Haris16-code/KryonOS" rel="noopener noreferrer"&gt;KryonOS&lt;/a&gt; is straightforward for anyone familiar with basic JavaScript:&lt;/p&gt;

&lt;pre&gt;&lt;code&gt;// Initialize 3D Viewport in PSRAM
if (Kryon3D.begin(240, 320, 16)) {
    Kryon3D.setCamera(0, 2.0, -4.0, 0, 0, 0, 60);
    Kryon3D.setLight(0.5, 1.0, -0.7, 0.3, 0.7);

    var angle = 0;

    while (true) {
        Kryon3D.clear(0x0000); // Clear buffer

        // Draw a rotating lit 3D cube
        angle += 0.05;
        Kryon3D.drawCube(0, 0, 0, 1.5, 1.5, 1.5, angle, angle * 0.5, 0, 0xFD20, true);

        // Draw 2D HUD over 3D scene
        System.drawString("FPS: 30", 10, 10, 2);

        // Push frame to physical glass (Zero Flickering)
        Kryon3D.render(0, 0);

        System.delay(16);
    }
}
&lt;/code&gt;&lt;/pre&gt;





&lt;h2&gt;Hardware Support: Stable vs. Experimental Boards&lt;/h2&gt;

&lt;p&gt;KryonOS is built to support a range of popular maker hardware, with clear milestones across devices:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
&lt;strong&gt;ESP32 + ILI9341 2.8" SPI Touch:&lt;/strong&gt; The flagship reference platform with full, battle-tested &lt;strong&gt;Stable&lt;/strong&gt; support.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;ESP32 Cheap Yellow Display (CYD):&lt;/strong&gt; While we ran experimental builds of &lt;a href="https://github.com/Haris16-code/KryonOS" rel="noopener noreferrer"&gt;KryonOS&lt;/a&gt; v1.0.0 during internal lab testing, those were not published as standalone binaries. With &lt;strong&gt;v2.0.0, CYD is officially supported&lt;/strong&gt; with a fully tested, stable binary ready to flash directly to your board.&lt;/li&gt;
  &lt;li&gt;
&lt;strong&gt;M5Stack Cardputer &amp;amp; LilyGO T-HMI:&lt;/strong&gt; Currently in active &lt;strong&gt;Experimental&lt;/strong&gt; status as we optimize key layouts and display bus timings.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Check out the repository, run the code on your own hardware, or leave a star to follow along with the upcoming v2.0.0 release!&lt;/p&gt;

&lt;p&gt;
  &lt;a href="https://github.com/Haris16-code/KryonOS" rel="noopener noreferrer"&gt;
    &lt;strong&gt;Explore the KryonOS GitHub Repository&lt;/strong&gt;
  &lt;/a&gt;
&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/Haris16-code" rel="noopener noreferrer"&gt;
        Haris16-code
      &lt;/a&gt; / &lt;a href="https://github.com/Haris16-code/KryonOS" rel="noopener noreferrer"&gt;
        KryonOS
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      KryonOS is an ESP32 GUI operating system with a JavaScript runtime for apps. It provides a real touch-based interface and allows installing and running JS apps dynamically without reflashing firmware.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;KryonOS&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;KryonOS is an &lt;strong&gt;open-source&lt;/strong&gt;, lightweight, high-performance &lt;strong&gt;GUI&lt;/strong&gt; Operating System and JavaScript App Runtime designed specifically for the ESP32 microcontroller. It provides a complete desktop-like experience on embedded devices, featuring an integrated JS engine (Duktape) for executing standalone JavaScript applications, double-buffered graphics for smooth 2D/3D rendering, an App Store, file management, and direct hardware API access.&lt;/p&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;ESP32 + ILI9341 2.8" (Touch)&lt;/th&gt;
&lt;th&gt;Multiple Devices (Lab Overview)&lt;/th&gt;
&lt;th&gt;M5Stack Cardputer&lt;/th&gt;
&lt;th&gt;CYD (Cheap Yellow Display)&lt;/th&gt;
&lt;th&gt;LilyGO T-HMI&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;strong&gt;Stable&lt;/strong&gt; 🟢&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;Experimental&lt;/em&gt; 🧪&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;Experimental&lt;/em&gt; 🧪&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;Experimental&lt;/em&gt; 🧪&lt;/td&gt;
&lt;td&gt;
&lt;em&gt;Experimental&lt;/em&gt; 🧪&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a rel="noopener noreferrer" href="https://github.com/Haris16-code/KryonOS/Documentation/assets/imgs/kryonos-home.jpg"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FHaris16-code%2FKryonOS%2FHEAD%2FDocumentation%2Fassets%2Fimgs%2Fkryonos-home.jpg" width="220" alt="ESP32 ILI9341 Stable"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a rel="noopener noreferrer" href="https://github.com/Haris16-code/KryonOS/Documentation/assets/imgs/Devices.jpg"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FHaris16-code%2FKryonOS%2FHEAD%2FDocumentation%2Fassets%2Fimgs%2FDevices.jpg" width="220" alt="Hardware Overview"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a rel="noopener noreferrer" href="https://github.com/Haris16-code/KryonOS/Documentation/assets/imgs/Cardputer-V1.1.jpg"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FHaris16-code%2FKryonOS%2FHEAD%2FDocumentation%2Fassets%2Fimgs%2FCardputer-V1.1.jpg" width="220" alt="Cardputer"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a rel="noopener noreferrer" href="https://github.com/Haris16-code/KryonOS/Documentation/assets/imgs/CYD2432S028R.jpg"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FHaris16-code%2FKryonOS%2FHEAD%2FDocumentation%2Fassets%2Fimgs%2FCYD2432S028R.jpg" width="220" alt="CYD"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a rel="noopener noreferrer" href="https://github.com/Haris16-code/KryonOS/Documentation/assets/imgs/Lilygo-T-HMI.jpg"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2FHaris16-code%2FKryonOS%2FHEAD%2FDocumentation%2Fassets%2Fimgs%2FLilygo-T-HMI.jpg" width="220" alt="T-HMI"&gt;&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Features&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;JavaScript App Runtime:&lt;/strong&gt; Execute interactive JS apps natively on the ESP32 using the optimized Duktape engine.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rich UI &amp;amp; Graphics:&lt;/strong&gt; Built-in graphics library with double-buffering support for smooth, tear-free 2D and 3D rendering.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;App Store &amp;amp; Installer:&lt;/strong&gt; Browse, download, and install JavaScript apps and updates dynamically over Wi-Fi.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;File Management:&lt;/strong&gt; Fully functional file explorer and text editor utilizing the SD Card for storage.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Hardware API:&lt;/strong&gt;…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/Haris16-code/KryonOS" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Support KryonOS
&lt;/h2&gt;

&lt;p&gt;If you find KryonOS useful and want to support its development, you can contribute toward new hardware, testing, and support for additional boards.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://harislab.lemonsqueezy.com/checkout/buy/9b37ee2c-e26a-4626-990f-f18834916276?logo=0" rel="noopener noreferrer"&gt;Support KryonOS&lt;/a&gt;
&lt;/h3&gt;

</description>
      <category>esp32</category>
      <category>javascript</category>
      <category>opensource</category>
      <category>showdev</category>
    </item>
    <item>
      <title>How to Protect Your Links with a Password</title>
      <dc:creator>Haris</dc:creator>
      <pubDate>Wed, 20 May 2026 09:13:47 +0000</pubDate>
      <link>https://dev.to/haris18/how-to-protect-your-links-with-a-password-o1e</link>
      <guid>https://dev.to/haris18/how-to-protect-your-links-with-a-password-o1e</guid>
      <description>&lt;p&gt;Protecting your short links in &lt;a href="https://trakio.harislab.tech" rel="noopener noreferrer"&gt;&lt;strong&gt;Trakio&lt;/strong&gt;&lt;/a&gt; allows you to control access and ensure only users with the correct password can reach your destination URL. This feature is useful for private content, client resources, or restricted access links.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 1: Log in to Your Trakio Account
&lt;/h2&gt;

&lt;p&gt;Open the login page and sign in to your dashboard:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://trakio.harislab.tech/login" rel="noopener noreferrer"&gt;Trakio Login&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: Open the Links Section
&lt;/h2&gt;

&lt;p&gt;After logging in:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Go to the sidebar menu&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click on “Links”&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Select “Create Link”&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 3: Create a Password-Protected Link
&lt;/h2&gt;

&lt;p&gt;Fill in the required fields:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Destination URL&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Short Link&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Scroll down to the &lt;strong&gt;Privacy&lt;/strong&gt; section.&lt;/p&gt;

&lt;p&gt;There you will find the option:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Password Protect (toggle)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Enable the toggle, then:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Enter your desired password in the password field&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Finally, click &lt;strong&gt;Create Link&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0jd6dyhb38qml9wued6b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0jd6dyhb38qml9wued6b.png" alt="Trakio-screenshot-01" width="779" height="573"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: What Happens After Creation
&lt;/h2&gt;

&lt;p&gt;Once the link is created:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Users opening the link will see a password screen first&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;They must enter the correct password to access the original URL&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;The system is secured by Trakio Secure, which includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Rate limiting protection&lt;/li&gt;
&lt;li&gt;  Bot protection&lt;/li&gt;
&lt;li&gt;  Access control safeguards&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0w0y23ssd7x8rnc8r2up.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0w0y23ssd7x8rnc8r2up.png" alt="Trakio-screenshot-02" width="474" height="578"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: Edit an Existing Link
&lt;/h2&gt;

&lt;p&gt;If the link already exists, you can still modify it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Open the Links list&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Click the Edit button on the specific link&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Scroll to the Privacy section&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enable Password Protect and set or update the password&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Save changes&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 6: Remove Password Protection
&lt;/h2&gt;

&lt;p&gt;To disable password protection:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Open the link in Edit mode&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Turn off the Password Protect toggle&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Save the changes&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After this, the link will become publicly accessible again.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>productivity</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>I built a chrome extension that will create trackable links</title>
      <dc:creator>Haris</dc:creator>
      <pubDate>Sat, 14 Feb 2026 04:13:18 +0000</pubDate>
      <link>https://dev.to/haris18/i-built-a-chrome-extension-that-will-create-trackable-links-2h2f</link>
      <guid>https://dev.to/haris18/i-built-a-chrome-extension-that-will-create-trackable-links-2h2f</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn57nkwt8coxskjacnu18.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn57nkwt8coxskjacnu18.png" alt="Preview-1" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftghm8zduhbsdg765tpcq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftghm8zduhbsdg765tpcq.png" alt="Preview-2" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Try Here:&lt;/strong&gt; &lt;a href="https://chromewebstore.google.com/detail/dknllaefoelajhiknjpmkafdadbpicdf?utm_source=item-share-cb" rel="noopener noreferrer"&gt;&lt;strong&gt;Trakio - Create Trackable Links - Chrome Extension&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>webdev</category>
      <category>ai</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Trakio - Create trackable links with real-time analytics &amp; control</title>
      <dc:creator>Haris</dc:creator>
      <pubDate>Sun, 01 Feb 2026 03:20:05 +0000</pubDate>
      <link>https://dev.to/haris18/trakio-create-trackable-links-with-real-time-analytics-control-3ff0</link>
      <guid>https://dev.to/haris18/trakio-create-trackable-links-with-real-time-analytics-control-3ff0</guid>
      <description>&lt;p&gt;&lt;strong&gt;🎉 Introducing Trakio – The Ultimate Link Management Platform! 🚀&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Hey everyone! I’m excited to share &lt;strong&gt;Trakio&lt;/strong&gt;, a smart, all-in-one platform designed to help marketers, teams, agencies, and businesses &lt;strong&gt;track, optimize, and control links like never before&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Trakio?&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;🔗 Unlimited Link Management&lt;/strong&gt; – Create unlimited links, custom slugs, and IDs, with full control over every link.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;📊 Real-Time Analytics&lt;/strong&gt; – Track clicks, traffic sources, devices, locations, and top-performing links. Export reports in CSV.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;🧠 Trakio AI Insights&lt;/strong&gt; – Our rule-based AI analyzes link performance, highlights high-performing links, and generates optimization reports.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;🎯 Smart Redirection &amp;amp; Automation&lt;/strong&gt; – Redirect links based on device type, country, or custom rules. Perfect for campaigns.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;🔐 Secure &amp;amp; Protected&lt;/strong&gt; – Password-protect links, prevent unauthorized access, and block suspicious traffic.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;👥 Team Collaboration&lt;/strong&gt; – Add up to 10 team members (and more upon request), assign roles, and chat internally to streamline your workflow.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;📢 Marketing &amp;amp; Retargeting Tools&lt;/strong&gt; – Integrate Facebook retargeting pixels (Beta), track conversions, and optimize campaigns.&lt;br&gt;&lt;br&gt;
&lt;strong&gt;🎨 SEO &amp;amp; Social Control&lt;/strong&gt; – Customize meta titles, descriptions, and social previews for every link.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💡 Special Offer:&lt;/strong&gt; To celebrate our launch, Discord users can get &lt;strong&gt;20% OFF the Premium plan&lt;/strong&gt; with promo code: &lt;code&gt;TRAKIO20OFF&lt;/code&gt; (limited time).&lt;/p&gt;

&lt;p&gt;Trakio is built for &lt;strong&gt;anyone who wants full control and accurate insights&lt;/strong&gt; into their links — from solo marketers to large teams. Stop guessing, start tracking, and grow with confidence.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;🔗 Check it out and start your link journey today:&lt;/strong&gt; &lt;a href="https://trakio.harislab.tech/" rel="noopener noreferrer"&gt;Try Trakio Free&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fby1ws8fk12euknz16oh8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fby1ws8fk12euknz16oh8.png" alt="Preview 1" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>startup</category>
      <category>showdev</category>
      <category>analytics</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Open Source Project</title>
      <dc:creator>Haris</dc:creator>
      <pubDate>Sun, 25 Jan 2026 23:22:03 +0000</pubDate>
      <link>https://dev.to/haris18/open-source-project-28k</link>
      <guid>https://dev.to/haris18/open-source-project-28k</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/haris18" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3642082%2F3dbcce03-24c1-4879-868f-031f5c4b1ee1.jpg" alt="haris18"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/haris18/how-i-fit-flappy-bird-into-a-single-qr-code-4ljo" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How I Fit Flappy Bird into a Single QR Code&lt;/h2&gt;
      &lt;h3&gt;Haris ・ Jan 25&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#python&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#showdev&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>python</category>
      <category>showdev</category>
    </item>
    <item>
      <title>An amazing and curious project</title>
      <dc:creator>Haris</dc:creator>
      <pubDate>Sun, 25 Jan 2026 22:45:27 +0000</pubDate>
      <link>https://dev.to/haris18/an-amazing-and-curious-project-88j</link>
      <guid>https://dev.to/haris18/an-amazing-and-curious-project-88j</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/haris18" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3642082%2F3dbcce03-24c1-4879-868f-031f5c4b1ee1.jpg" alt="haris18"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/haris18/how-i-fit-flappy-bird-into-a-single-qr-code-4ljo" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How I Fit Flappy Bird into a Single QR Code&lt;/h2&gt;
      &lt;h3&gt;Haris ・ Jan 25&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#webdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#javascript&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#python&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#showdev&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>python</category>
      <category>showdev</category>
    </item>
    <item>
      <title>How I Fit Flappy Bird into a Single QR Code</title>
      <dc:creator>Haris</dc:creator>
      <pubDate>Sun, 25 Jan 2026 18:56:49 +0000</pubDate>
      <link>https://dev.to/haris18/how-i-fit-flappy-bird-into-a-single-qr-code-4ljo</link>
      <guid>https://dev.to/haris18/how-i-fit-flappy-bird-into-a-single-qr-code-4ljo</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fblog.harislab.tech%2Fimages%2F3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fblog.harislab.tech%2Fimages%2F3.png" alt="Flappy Bird Canvas" width="800" height="473"&gt;&lt;/a&gt;&lt;br&gt;
Discover how Flappy Bird fits inside a single QR code using a Python tool, data URI, and minimalist HTML/JS design — scan to play instantly.&lt;/p&gt;

&lt;p&gt;It started with a quiet thought, one that refused to leave my head:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;What is the absolute smallest place a real game can live?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Not a download. Not a website link. &lt;strong&gt;The game itself.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I picked &lt;strong&gt;Flappy Bird&lt;/strong&gt;. Why? Because it doesn’t lie.&amp;nbsp;If gravity feels off, you notice. If collision fails, the illusion breaks. If timing is off, it’s unplayable.&lt;/p&gt;

&lt;p&gt;If this game survived compression, it meant the idea worked.&lt;/p&gt;
&lt;h3&gt;
  
  
  Step One: Breaking&amp;nbsp;Comfort
&lt;/h3&gt;

&lt;p&gt;QR codes hate comfort.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;They hate images.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;They hate libraries.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;They hate anything that isn’t essential.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;So I stopped thinking like a web developer and started thinking like a machine.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;No sprites&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;No fonts&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;No frameworks&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The bird became a &lt;strong&gt;shape&lt;/strong&gt;. The pipes became &lt;strong&gt;rectangles&lt;/strong&gt;. The sky became a &lt;strong&gt;color fill&lt;/strong&gt;.&amp;nbsp;Everything was drawn inside a single&lt;/p&gt;

&lt;p&gt;element.&lt;/p&gt;

&lt;p&gt;Here’s a &lt;strong&gt;glimpse of the code skeleton&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;canvas&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"c"&lt;/span&gt; &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;"320"&lt;/span&gt; &lt;span class="na"&gt;height=&lt;/span&gt;&lt;span class="s"&gt;"480"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&amp;lt;/canvas&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;
&lt;span class="nx"&gt;b&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;y&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;220&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;v&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="p"&gt;};&lt;/span&gt; &lt;span class="c1"&gt;// Bird&lt;/span&gt;
&lt;span class="nx"&gt;p&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[];&lt;/span&gt;                &lt;span class="c1"&gt;// Pipes&lt;/span&gt;

&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;loop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// gravity&lt;/span&gt;
  &lt;span class="c1"&gt;// pipes&lt;/span&gt;
  &lt;span class="c1"&gt;// collision&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nf"&gt;loop&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Notice something? That’s &lt;strong&gt;all I’m showing&lt;/strong&gt;. Enough to hint at the game — but not enough to give it away.&lt;/p&gt;

&lt;h3&gt;
  
  
  Step Two:
&lt;/h3&gt;

&lt;p&gt;I could tell you how I handled gravity, pipes, collisions, scoring… but then the secret would be gone.&lt;/p&gt;

&lt;p&gt;This experiment is about &lt;strong&gt;precision, compression, and ingenuity&lt;/strong&gt;. Every character mattered. Every symbol had a cost.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This tool is not limited to games.&lt;/strong&gt; It can package &lt;em&gt;&lt;strong&gt;any kind of HTML, CSS, or JavaScript&lt;/strong&gt;&lt;/em&gt; — from demos and experiments to landing pages, interactive tools, or visual ideas — directly into a single QR code.&lt;/p&gt;

&lt;p&gt;The game fits &lt;strong&gt;entirely inside a single QR code&lt;/strong&gt;.&amp;nbsp;No downloads. No fetching. Just scan. Tap. Play.&lt;/p&gt;

&lt;p&gt;If you’re curious how I made it happen, and want to see the &lt;strong&gt;full story, complete with the Python tool and the actual game code&lt;/strong&gt;, you can read it here:&lt;/p&gt;

&lt;p&gt;➡️ &lt;a href="https://blog.harislab.tech/52/how-i-fit-flappy-bird-into-a-single-qr-code" rel="noopener noreferrer"&gt;&lt;strong&gt;Read the full story&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>python</category>
      <category>showdev</category>
    </item>
    <item>
      <title>JavaScript Cheat Sheet – Complete Modern JS Reference (ES6+)</title>
      <dc:creator>Haris</dc:creator>
      <pubDate>Sun, 25 Jan 2026 13:52:55 +0000</pubDate>
      <link>https://dev.to/haris18/javascript-cheat-sheet-complete-modern-js-reference-es6-39j0</link>
      <guid>https://dev.to/haris18/javascript-cheat-sheet-complete-modern-js-reference-es6-39j0</guid>
      <description>&lt;p&gt;A comprehensive JavaScript cheat sheet covering variables, functions, arrays, objects, DOM manipulation, async/await, and essential ES6+ features — presented as a fast, static HTML reference.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://blog.harislab.tech/51/javascript-cheat-sheet-complete-modern-js-reference-es6" rel="noopener noreferrer"&gt;Get JavaScript Cheat Sheet&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>programming</category>
      <category>learning</category>
    </item>
    <item>
      <title>show your projects</title>
      <dc:creator>Haris</dc:creator>
      <pubDate>Sun, 25 Jan 2026 12:11:32 +0000</pubDate>
      <link>https://dev.to/haris18/show-your-projects-2ad0</link>
      <guid>https://dev.to/haris18/show-your-projects-2ad0</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/haris18" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3642082%2F3dbcce03-24c1-4879-868f-031f5c4b1ee1.jpg" alt="haris18"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/haris18/show-what-youre-building-on-harislab-hub-share-projects-ideas-eaa" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;Show What You’re Building on HarisLab Hub – Share Projects &amp;amp; Ideas&lt;/h2&gt;
      &lt;h3&gt;Haris ・ Jan 25&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
    </item>
    <item>
      <title>Search Powered by Algolia</title>
      <dc:creator>Haris</dc:creator>
      <pubDate>Sun, 25 Jan 2026 00:52:03 +0000</pubDate>
      <link>https://dev.to/haris18/search-powered-by-algolia-227n</link>
      <guid>https://dev.to/haris18/search-powered-by-algolia-227n</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/haris18" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3642082%2F3dbcce03-24c1-4879-868f-031f5c4b1ee1.jpg" alt="haris18"&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/haris18/a-simple-place-to-share-ideas-ask-questions-and-show-what-youre-building-42h8" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;A simple place to share ideas, ask questions, and show what you’re building&lt;/h2&gt;
      &lt;h3&gt;Haris ・ Jan 23&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#news&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#discuss&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#showdev&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#forem&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>news</category>
      <category>discuss</category>
      <category>showdev</category>
      <category>forem</category>
    </item>
  </channel>
</rss>
