meefik

meefik

@meefik.dev

Software engineer focused on digital sovereignty. Writing about FOSS, Linux, and P2P networking while building with self-hosted tools & local LLMs. Like coffee โ˜•๏ธ, geese ๐Ÿชฟ, rain ๐ŸŒฆ, and walks in the park ๐Ÿ•. ๐Ÿ™ github.com/meefik ๐ŸŒ meefik.dev

115 followers158 following47 posts

#Neux 0.18.0 is out ๐Ÿ A quiet release: leaks fixed, linear list updates, top-down mounted events, errors surface. 3.74 kB gzipped vs Solid 5.08, Preact 5.69, Lit 7.20, Svelte 15.11, Vue 22.54, React 67.81. neux.dev #JavaScript #OpenSource #WebDev

Wanted something useful for my ESP32-S3 + e-paper screen, so I turned it into a physical TTY. Just pipe text over USB serial and it renders with auto-scaling fonts. Writeup: meefik.dev/2026/08/04/p... #DIY #ESP32 #embedded #electronics #epaper #cli #OpenSource

My favorite stack for front-end styling: #TailwindCSS, #daisyUI, and #Iconify ๐Ÿ”ฅ Why? โ€ข JavaScript-only writing โ€ข Custom styling where needed โ€ข Framework-agnostic & pure CSS output โ€ข Automatic tree-shaking โ€ข No "class hell" with daisyUI Works perfectly with the #Neux library! ๐Ÿง‘โ€๐Ÿ’ป

I've tried #WebAwesome, a framework-agnostic #UI component library based on #WebComponents. It works perfectly with the #Neux library because it can be used directly, without the need for JSX or other framework-specific approaches. Try it together in the playground: v49.livecodes.io?x=id/qtqxqig...

The #Neux front-end library now has detailed documentation powered by #TypeDoc (neux.dev) and a new cute logo ๐Ÿฆโ€โฌ›

Day 14: MISSION ACCOMPLISHED! ๐Ÿ The #P2P video app is live, tested, and installable as a #PWA. From foundations to a full-mesh conferencing tool in two weeks. Built with #ReactJS, #TypeScript, #Peerix & #ZedEditor. Thoughts and takeaways: meefik.dev/2026/07/20/p... #BuildInPublic #DevLog #WebRTC

meefik.devPeerix Talk: P2P video app in 13 eveningsBuilding a real-time P2P chat app from scratch using React, WebRTC, and local LLMs inside Zed Editor. It took about half the time I expected.

What else can be done: โœ”๏ธ Video quality settings (resolution & bitrate controls) โœ”๏ธ Active speaker indication โœ”๏ธ Low signal/network quality indicator โœ”๏ธ Raise Hand functionality โœ”๏ธ Keyboard navigation support โœ”๏ธ Chat history synchronization โœ”๏ธ Local video recording

Day 14: MISSION ACCOMPLISHED! ๐Ÿ The #P2P video app is live, tested, and installable as a #PWA. From foundations to a full-mesh conferencing tool in two weeks. Built with #ReactJS, #TypeScript, #Peerix & #ZedEditor. Thoughts and takeaways: meefik.dev/2026/07/20/p... #BuildInPublic #DevLog #WebRTC

meefik.devPeerix Talk: P2P video app in 13 eveningsBuilding a real-time P2P chat app from scratch using React, WebRTC, and local LLMs inside Zed Editor. It took about half the time I expected.

Day 13: Installable everywhere! Turning the #P2P video app into a full-blown #PWA: ๐Ÿ“ฑ Web App Manifest + icons & themes ๐Ÿ”” Native install prompts (iOS/Android/Desktop) โšก App-like UX, zero store friction Built with #ReactJS, #TypeScript & #Vite inside #ZedEditor. #BuildInPublic #DevLog

Day 12: Signaling drivers unlocked! ๐Ÿ”“ Expanded #Peerix signaling for the #P2P video app: โœ… MQTT & NATS support โœ… SSE integration โœ… BroadcastChannel for testing More flexibility for diverse network environments, plus public server support! #JavaScript #TypeScript #BuildInPublic #DevLog

Day 11: E2E tests are live! ๐Ÿงช Adding automated #E2E testing with #Playwright to catch regressions fast in #P2P video app: โœ… Full browser automation setup ๐Ÿ”„ Cross-tab navigation & #UI interactions ๐Ÿ› Flaky test detection & retries #ReactJS #TypeScript #Peerix #BuildInPublic #DevLog

Actually, before writing any E2E automated tests, I teach a local AI agent to perform the tests manually using Playwright MCP, like a human tester. It analyzes the code and my instructions to create a test plan and then executes it without requiring extra code.

Day 10: Chat is live! ๐Ÿ’ฌ Hooked up #Peerix via data channels for #P2P messaging: โœ… Data channels established ๐Ÿ’ฌ Peer messages syncing instantly ๐Ÿ”ฅ Seamless chat integration complete Built with #ReactJS, #TailwindCSS & #shadcn in #ZedEditor. #TypeScript #BuildInPublic #DevLog

Day 9: Media streaming is alive! ๐Ÿ’ฅ Hooked up #Peerix for live #WebRTC streams: ๐Ÿ“น Remote video tiles rendering flawlessly ๐ŸŽ™๏ธ Mic/cam toggles syncing instantly Built with #ReactJS, #TailwindCSS & #shadcn in #ZedEditor. Next: P2P text chat! ๐Ÿ’ฌ #TypeScript #BuildInPublic #DevLog

Day 8: Peer connections are live! ๐Ÿ•ธ๏ธ Wired up the network backbone for the #P2P video app: ๐ŸŒ Added #Peerix to handle #WebRTC connections ๐Ÿ‘ฅ Full mesh support across multiple peers in the same room Next step: WebRTC media stream sharing ๐Ÿ’ฅ #ReactJS #TypeScript #BuildInPublic #DevLog

Day 7: Expect the unexpected! โš ๏ธ Making the #P2P video app robust against real-world chaos: ๐Ÿšซ Graceful error handling for blocked cam/mic permissions ๐Ÿ”‘ Room joining logic fully wired up ๐Ÿงฉ Clean UI fallbacks for missing devices #ReactJS #TypeScript #BuildInPublic #DevLog

Day 6: Lights, camera, action! ๐ŸŽฅ๐ŸŽ™๏ธ Today, the #P2P video app gets local media streams! Wired up device inputs to the UI: ๐Ÿ“น Live camera capture & tile display ๐ŸŽค Mic audio capture & toggle sync ๐Ÿ“ฑ Responsive header for sleek mobile navigation Demo below ๐Ÿ‘‡ #ReactJS #TypeScript #BuildInPublic #DevLog

Day 5: Video tiles ๐ŸŽฌ Tackling the hardest part of the #P2P video app UI yet! Here's what I'm packing into the layout: ๐Ÿ‘ค Name & Identicon ๐ŸŽ™๏ธ Mic & Active speaker indicators ๐Ÿ“ฑ Responsive tiles + pinning ๐Ÿ“Œ Building with #ReactJS, #Tailwind & #shadcn in #ZedEditor. #TypeScript #BuildInPublic #DevLog

Day 4: Chat panel is live! Built the text chat interface for the #P2P video app in #ZedEditor using #ReactJS, #TailwindCSS & #shadcn: ๐Ÿ—ช Toggleable sidebar panel ๐Ÿ’จ "No messages yet" empty state โœ‰๏ธ Layout with usernames & timestamps Next: video tiles! ๐Ÿš€ #BuildInPublic #DevLog #WebDev #SPA

Day 4: Chat panel is live! Built the text chat interface for the #P2P video app in #ZedEditor using #ReactJS, #TailwindCSS & #shadcn: ๐Ÿ—ช Toggleable sidebar panel ๐Ÿ’จ "No messages yet" empty state โœ‰๏ธ Layout with usernames & timestamps Next: video tiles! ๐Ÿš€ #BuildInPublic #DevLog #WebDev #SPA

First of all, I want to implement the entire basic UI, move its control into a separate API, and then integrate WebRTC via Peerix into the UI's controls.

Day 3: Inside the room! Building the #P2P video app core UI: โฑ๏ธ Room ID & timer ๐ŸŽ›๏ธ Responsive controls ๐ŸŒ“ Theme toggle ๐Ÿ“ฒ QR invite dialog Next stop: text chat! ๐Ÿ’ฌ #TypeScript #ReactJS #TailwindCSS #shadcn #WebDev #BuildInPublic #DevLog

Day 2: Lobby view is alive! Built the "Join Room" view for the #P2P video app with #ReactJS & #shadcn Working: ๐Ÿ‘ค Name input & Room ID ๐ŸŽค Mic toggle, level meter & device selector ๐Ÿ“น Camera toggle+live preview Polishing the visualizer with #AI agent in #ZedEditor felt useful! #DevLog #BuildInPublic

Day 1: Foundations laid! Today I set up the base environment: ๐Ÿ“ฆ Stack: React+TS+Vite+TW+shadcn/ui ๐Ÿค– Agents: Added AGENTS.md to guide AI workflows ๐ŸŒ i18n: Added i18next for localization Repo: github.com/peerix-dev/p... #ReactJS #TypeScript #Vite #TailwindCSS #DevLog #BuildInPublic #OpenSource

I'm starting a 30-day challenge to build a #P2P video app from scratch using #peerix and local #LLMs in #ZedEditor. โ€‹Not just "vibe coding". I'm using #AI agents to co-pilot the work. โ€‹Expect daily micro-updates here. Let's go! ๐Ÿš€ #WebRTC #JavaScript #DevLog #BuildInPublic

Want to hide data inside PNGs using JS? ๐Ÿ–ผ๏ธ๐Ÿ” Check out this pure #JavaScript library for lossless data encoding: 1๏ธโƒฃ Data-to-Image: Converts raw bytes directly into RGB channels. 2๏ธโƒฃ #Steganography: Injects up to 1 byte per pixel into an existing image invisibly! meefik.dev/2020/02/22/a...

meefik.devEncoding and decoding data in PNG with compressionExploring data encoding and steganography techniques using PNG images with lossless compression in JavaScript.

If you build a small open source library, please try to keep it zero dependency. When someone installs your tool, they want your code and not a hidden avalanche of 50 sub dependencies they did not ask for. Keep it lightweight. Keep it predictable. Build trust. ๐Ÿ“ฆ Do you agree?

Meet #NEUX: a tiny (~4kb) frontend library for dynamic UIs using native JS & browser APIs! ๐Ÿš€ Ditch complex compilers & vDOM. Enjoy reactive signals, direct DOM manipulation, true 2-way reactivity, built-in L10n, and simple routing. Perfect for fast SPAs & Web Components! ๐Ÿ”— meefik.dev/neux/

I benchmarked #LLM performance on AMD Radeon AI PRO R9700 with Ollama, comparing ROCm 7.1 vs 6.4 across 8 models (Mistral, Llama, Qwen, GPT-OSS, DeepSeek, and more). Result: visible gains in prompt throughput (+87% avg) and faster responses (+11% avg). More details here: meefik.dev/2026/05/31/l...

Recently launched Peerix, a lightweight, open-source JS library for painless peer-to-peer #WebRTC apps. ๐ŸŒ Direct browser-to-browser data/streaming ๐Ÿ”Œ Drivers for MQTT, NATS, SSE, Supabase, etc. โœจ TS-first, zero deps, minimal API ๐Ÿ› ๏ธ Auto-handles collisions & reconnects Check it out! peerix.dev

peerix.devPeerix | WebRTC development made simplePeerix is a JavaScript/TypeScript library that removes the friction from building WebRTC peer-to-peer applications.

You are up to date.