import { useState, useRef, useEffect } from 'react'; import { Link, useNavigate } from 'react-router-dom'; import { useAuthStore } from '../store/useAuthStore'; import { AppHeader } from '../components/layout/AppHeader'; import { useSEO } from '../utils/useSEO'; import raspberryPi3Svg from '../assets/Raspberry_Pi_3_illustration.svg'; import './LandingPage.css'; const GITHUB_URL = 'https://github.com/davidmonterocrespo24/velxio'; const PAYPAL_URL = 'https://paypal.me/odoonext'; const GITHUB_SPONSORS_URL = 'https://github.com/sponsors/davidmonterocrespo24'; /* ── Icons ───────────────────────────────────────────── */ const IcoChip = () => ( ); const IcoCpu = () => ( ); const IcoCode = () => ( ); const IcoZap = () => ( ); const IcoLayers = () => ( ); const IcoMonitor = () => ( ); const IcoBook = () => ( ); const IcoGitHub = () => ( ); /* ── Circuit Schematic SVG (hero illustration) ───────── */ const CircuitSchematic = () => ( ); /* ── Board SVGs ───────────────────────────────────────── */ const BoardATtiny85 = () => ( {/* PCB - small square DIP board */} {/* ATtiny85 DIP-8 chip center */} {/* Notch */} {/* DIP pins left */} {[0,1,2,3].map((i) => ( ))} {/* DIP pins right */} {[0,1,2,3].map((i) => ( ))} {/* Chip label */} ATtiny 85 {/* Status LED */} AVR · 8KB · DIP-8 ); const BoardCH32V003 = () => ( {/* PCB */} {/* CH32V003 chip */} {[0,1,2,3].map((i) => ( ))} {[0,1,2,3].map((i) => ( ))} CH32 V003 {/* Pins left */} {[0,1,2,3,4,5,6].map((i) => ( ))} {/* Pins right */} {[0,1,2,3,4,5,6].map((i) => ( ))} {/* USB */} {/* LED */} RV32EC · 48 MHz ); const BoardEsp32C3 = () => ( {/* PCB */} {/* Antenna tab */} {/* ESP32-C3 chip */} {[0,1,2,3,4].map((i) => ( ))} {[0,1,2,3,4].map((i) => ( ))} ESP32 -C3 {/* Left header pins */} {[0,1,2,3,4,5,6,7,8,9,10].map((i) => ( ))} {/* Right header pins */} {[0,1,2,3,4,5,6,7,8,9,10].map((i) => ( ))} {/* USB-C */} {/* WS2812B RGB LED */} {/* Power LED */} {/* Board label */} ESP32-C3 DevKit ); /* ── Features ─────────────────────────────────────────── */ const features = [ { icon: , title: '5 Emulation Engines', desc: 'AVR8 (ATmega), RP2040 (ARM Cortex-M0+), RV32IMC (ESP32-C3 in-browser), Xtensa LX6/LX7 (ESP32 via QEMU), and ARM Cortex-A53 (Raspberry Pi 3 Linux).' }, { icon: , title: '48+ Visual Components', desc: 'LEDs, LCDs, ILI9341 TFT displays, servos, buzzers, ultrasonic sensors, keypads, and more from wokwi-elements.' }, { icon: , title: 'Monaco Editor', desc: 'VS Code-grade C++ editor with full syntax highlighting, IntelliSense-style autocomplete, minimap, and multi-file workspace.' }, { icon: , title: 'Local arduino-cli Compiler', desc: 'Compile and flash sketches locally in seconds. No cloud, no latency, no account required. Full offline support.' }, { icon: , title: 'Serial Monitor', desc: 'Real-time TX/RX with auto baud-rate detection, message history, send commands, and autoscroll.' }, { icon: , title: 'Library Manager', desc: 'Search and install any library from the full Arduino library index — directly inside the editor, no terminal needed.' }, ]; /* ── Sponsor SVG icon ─────────────────────────────────── */ const IcoSponsor = () => ( ); /* ── User nav dropdown ────────────────────────────────── */ const UserMenu: React.FC = () => { const user = useAuthStore((s) => s.user); const logout = useAuthStore((s) => s.logout); const navigate = useNavigate(); const [open, setOpen] = useState(false); const ref = useRef(null); useEffect(() => { const handler = (e: MouseEvent) => { if (ref.current && !ref.current.contains(e.target as Node)) setOpen(false); }; document.addEventListener('mousedown', handler); return () => document.removeEventListener('mousedown', handler); }, []); if (!user) return null; const initials = user.username[0].toUpperCase(); return (
{open && (
{user.avatar_url ? ( ) : ( {initials} )}
{user.username}
{user.email}
setOpen(false)}> Open Editor setOpen(false)}> My Projects
)}
); }; /* ── Component ────────────────────────────────────────── */ export const LandingPage: React.FC = () => { useSEO({ title: 'Velxio — Free Local Arduino Emulator | AVR8 · RP2040 · 48+ Components', description: 'Velxio is a free, open-source Arduino emulator that runs entirely in your browser. Real AVR8 emulation at 16 MHz, 48+ electronic components, Monaco Editor, Serial Monitor, and Library Manager — no cloud, no latency.', url: 'https://velxio.dev/', }); return (
{/* Hero */}

Emulate Hardware.
In your browser.

Write, compile, and simulate 17+ boards across 5 CPU architectures — no hardware, no cloud, no limits. Real emulation running entirely on your machine.

Try Simulator Free → View on GitHub

No signup required · Runs 100% in your browser · Free & open-source

Velxio simulator preview
{/* Boards */}
Supported Hardware

Every architecture.
One tool.

17 boards across 5 CPU architectures — AVR, ARM, RISC-V, Xtensa, and Linux. All running locally, no cloud needed.

{/* ── AVR8 · avr8js ────────────────────────────────────────── */}
avr8js AVR8 · ATmega · 16 MHz
Arduino Uno
Arduino Uno ATmega328p · 32 KB
Arduino Nano
Arduino Nano ATmega328p · 32 KB
Arduino Mega 2560
Arduino Mega 2560 ATmega2560 · 256 KB
ATtiny85 AVR · 8 KB · DIP-8
{/* ── RP2040 · rp2040js ────────────────────────────────────── */}
rp2040js RP2040 · Dual ARM Cortex-M0+ · 133 MHz
Raspberry Pi Pico
Raspberry Pi Pico RP2040 · 264 KB RAM
Raspberry Pi Pico W
Raspberry Pi Pico W RP2040 + WiFi
{/* ── RISC-V · RV32IMC · Browser ───────────────────────────── */}
RV32IMC · Browser RISC-V · 160 MHz · no backend needed
ESP32-C3
ESP32-C3 DevKit RV32IMC · 4 MB flash
XIAO ESP32-C3
XIAO ESP32-C3 RV32IMC · compact
ESP32-C3 SuperMini
ESP32-C3 SuperMini RV32IMC · mini form
CH32V003 (RISC-V) RV32EC · 48 MHz
{/* ── Xtensa LX6/LX7 · QEMU ────────────────────────────────── */}
QEMU · Xtensa Xtensa LX6/LX7 · 240 MHz · backend required
ESP32 DevKit V1
ESP32 DevKit V1 LX6 · 4 MB flash
ESP32 DevKit C V4
ESP32 DevKit C V4 LX6 · 4 MB flash
ESP32-CAM
ESP32-CAM LX6 · camera module
ESP32-S3
ESP32-S3 DevKit LX7 · 4 MB flash
XIAO ESP32-S3
XIAO ESP32-S3 LX7 · compact
Arduino Nano ESP32
Arduino Nano ESP32 LX7 · Nano form
{/* ── ARM · Linux · QEMU ───────────────────────────────────── */}
QEMU · ARM ARM Cortex-A53 · Linux · backend required
Raspberry Pi 3B
Raspberry Pi 3B Cortex-A53 · 1.2 GHz · Linux
{/* Features */}
Features

Everything you need.

A complete IDE, compiler, and multi-architecture simulator — running locally with no external services required.

{features.map((f) => (
{f.icon}

{f.title}

{f.desc}

))}
{/* Support */}

Support the project

Velxio is free and open source. If it saves you time, consider supporting its development.

{/* Footer */}
); };