DEV Community

Cover image for Building A Keyboard-First Video Player with Svelte & Rust
Rudi K. 🧠
Rudi K. 🧠

Posted on

Building A Keyboard-First Video Player with Svelte & Rust

Until about five months ago, I didn’t even have a single public repo on GitHub.
Every project I’d built was closed-source, mostly private tools or experimental stuff that never saw the light of day.

But at some point, I realized how much of what I use every day exists because someone decided to make their work open.
So I figured, why not give back?

That led to Cristalyse and then LeedPDF, which, funnily enough, ended up being my fastest-growing app ever.

LeedPDF crossed 100 GitHub stars faster than I ever expected, and that tiny milestone made me want to keep going.

GitHub logo rudi-q / leed_pdf_viewer

Open-source PDF annotation and drawing tool built for privacy. Sketch and annotate PDFs with natural pen-like precision, drawing tablet support. SvelteKit + Tauri.

LeedPDF Logo

LeedPDF - Free PDF Annotation Tool

Add drawings and notes to any PDF.

Works with mouse, touch, or stylus - completely free and private.


License: AGPL-3.0 Commercial License Free for Personal Use on Web GitHub Stars Downloads WCAG AAA Compliant

SvelteKit TypeScript Tauri PDF.js Brave Search API Tailwind CSS Vite CodeRabbit Appwrite Vercel

A modern, open-source PDF annotation tool that runs entirely in your browser

Transform any PDF into an interactive canvas. Draw, annotate, and collaborate without uploading your documents to external servers.

LeedPDF in action - annotating a Y Combinator fundraising guide with highlights, comments, and drawings

Try it now → | Report Issues | Contribute

✨ Features

🔍 PDF Search & Discovery

  • Web-wide PDF search powered by Brave Search API
  • Direct PDF opening from search results
  • Smart filtering for PDF documents only
  • Pagination through search results
  • Real-time search with instant results
  • Setup guide: See docs/SEARCH_FEATURE.md for configuration

🎨 Drawing & Annotation

  • Freehand drawing with customizable pencil and highlighter tools
  • Shape tools including rectangles, circles, arrows, and stars
  • Text annotations with inline editing
  • Sticky notes for quick comments
  • Smart eraser that removes intersecting elements

📱 Universal Access

  • Works on any device -…

I’ve always loved Flutter, but working with Svelte on LeedPDF genuinely made me fall in love with it, it’s just so reactive, elegant, and fun to build with. And pairing that with Rust, well… Rust makes everything snappy.

Why I Built Glucose

As someone who’s used VLC for years, I’ve always respected how powerful it is, it’s the Swiss Army knife of video players.
But let’s be honest: it doesn’t exactly look like something from 2025.

It’s cluttered, it’s got buttons for things I never touch, and it feels… old.
I wanted a video player that’s private, open source, and brutally minimal, something that just plays my videos and gets out of the way.

That’s how Glucose started.
A zero-UI video player, simple, focused, and lightweight.
The installer? Just 4MB.

Rust helped a lot with performance, and Svelte handled the rest with elegance.

The Stack

SvelteKit, Rust, TypeScript

SvelteKit + Rust + Tauri became my go-to stack for Glucose.

SvelteKit for the UI, reactive, clean, and a joy to build with.

Rust for performance-critical tasks and local file handling.

Tauri for packaging everything into a native desktop experience that stays tiny.

Electron would’ve made the build 10x heavier, and Flutter (as much as I love it) wasn’t the right fit for a desktop-first app.

Svelte + Rust feels underrated, especially for apps that need both high reactivity and low-level performance. It’s honestly one of the smoothest pairings I’ve worked with.

Architecture Overview

Here’s the basic flow:

The frontend (SvelteKit) handles the player UI and keyboard interactions.

The backend (Rust via Tauri) deals with video decoding, file access, and media control.

Communication between them happens through Tauri’s command bridge.

It’s clean, fast, and predictable.
Rust takes care of the heavy lifting, while Svelte keeps the experience buttery smooth.

Keyboard-First Experience

Glucose is all about low cognitive load.
I designed it so you never have to touch your mouse, not even once.
You can:

- Press Space or K to play/pause
- ← and → to seek backward/forward
- K to toggle playback speed
- Jump to percentage (0% - 90%): 0 - 9
- / to open a command overlay for quick actions
Enter fullscreen mode Exit fullscreen mode

Once you get used to it, you realize how much friction you were tolerating in other players.

Offline-First and Fast

No telemetry. No tracking. No analytics.
Everything Glucose does stays on your device.

It runs entirely offline and launches almost instantly.
That’s the beauty of combining Rust’s efficiency with Svelte’s reactivity, the whole app just feels effortless.

GitHub logo rudi-q / glucose_media_player

Ultra-lightweight, video player for Windows with AI powered subtitle generation

glucose

A brutally minimalist, cinematic media viewer


glucose is a modern media viewer that strips away complexity to deliver a pure, immersive viewing experience



License: MPL 2.0
Version



SvelteKit
TypeScript
Tauri
Rust
Vite




✨ Features

🎬 Cinematic Mode

Enjoy your media with a beautifully blurred background and centered content for truly immersive viewing.

🖼️ Universal Media Support

  • Videos: MP4, MKV, AVI, MOV, WebM, WMV, FLV, M4V
  • Subtitles: SRT, VTT, ASS, SSA, SUB
  • Images: JPG, JPEG, PNG, GIF, WebP, BMP, SVG, AVIF, HEIC, HEIF

🎯 Minimal by Design

No clutter, no distractions. Just your content and elegant controls that appear when you need them.

⚡ Blazingly Fast

Built with Rust and Tauri for native performance with a tiny footprint.

🎮 Keyboard-First

Complete keyboard navigation for power users who value efficiency.

📂 Smart Gallery

Automatically scans and displays your recent videos in a beautiful grid layout.

🎨 Modern Interface

  • Frameless, transparent window design
  • Smooth animations and transitions
  • Audio output…




Everything’s open-source under MPL.
👉 github.com/rudi-q/glucose_media_player

Closing Thoughts

Five months ago, I didn’t even know what it felt like to share my work openly.
Now, I can’t imagine not doing it.

Building Glucose reminded me that open source doesn’t have to be massive, it just has to be honest.
Sometimes, it’s about building the small, quiet things that make your day smoother.

Glucose is one of those things for me.
Try it, it's FREE :)

glucose.media


Top comments (2)

Collapse
 
roshan_sharma_7deae5e0742 profile image
roshan sharma

Wow, that’s seriously impressive! You’ve gone from zero public projects to building polished, open-source tools that are both practical and elegant. LeedPDF and Glucose show real creativity, skill, and thoughtfulness for users. You’re making the dev world better and doing it with style. Truly admirable!

Collapse
 
lofifounder profile image
Rudi K. 🧠

Thank you so much Roshan! Comments and reviews like these make building these products hard to stop 🙌