A portable, offline media server powered by the ESP32-S3 in a thumbdrive form factor.
Stream movies, music, books, and shows anywhere - no internet required.
Buy a Prebuilt Nomad | Support on Ko-fi
Mk3 Release - The experimental branch has been merged into main. This is the new stable baseline with all Mk3 features. Testing is ongoing, but everything is running stable so far.
Jcorp Nomad is an open-source offline media server designed for travel, remote work, classrooms, camping, and more. It runs entirely on an ESP32-S3, creates a local Wi-Fi hotspot, and serves media through a browser interface. Multiple users can access separate media streams simultaneously, all without internet access.
This project is compact, easy to modify, and includes optional 3D-printable hardware. Both firmware and web interface are fully open-source.
I strongly recommend building your own Nomad. It's not a very difficult project, if you can follow instructions and plug in a USB cable, you can do it. The parts are cheap, widely available, and the whole build takes under an hour. See Hardware Requirements and Quick Start below. If nothing else please check out the DIY option before purchasing.
That said, I also won't say no to money. If you'd rather skip the DIY and get a ready-to-go unit, prebuilt Nomads are available at nomad.jcorptech.net.
Every Nomad, whether you build it or buy it, runs the same open-source firmware and web interface. When new features and updates are released, you can always flash the latest code yourself to stay up to date. This project isn't going anywhere.
If you just want to support the project, donations are always appreciated:
ko-fi.com/jcorptech
- Replaced native browser video elements with the Plyr library
- Consistent playback UI across all devices
- Fixes playback issues on Apple hardware
- New Theme Control Panel in the Admin Console
- Expanded to 28 preset themes
- Full custom theme editor for manual color adjustments
- Mobile-optimized with compact layout and touch-friendly controls
- Seamless playback across Songs, Playlists, and Queue
- New Queue system - add tracks from any music page, reorder or remove dynamically
- Search results link directly to the queue
- PDF Viewer - dedicated page with progressive loading for large files
- EPUB Reader - cleaned up and stable, prevents crashes on low-memory devices (still not recommended over PDF, but it works)
- Comic Reader - supports webtoon infinite scroll and standard page mode, works with raw CBZ files
- Menu search uses cached indices for much faster results
- Themes loaded from
/.system-theme.jsonfor system-wide consistency
Default Blue, Forest Night, Cherry Blossom, Mocha Latte, Ocean Depths, Autumn Leaves, Lavender Fields, Sunset Horizon, Coral Reef, Mountain Mist, Jade Garden, Desert Sand, Arctic Aurora, DeLorean, Midnight Code, 90s Retro, Mint Breeze, Rose Gold, Crimson Night, Emerald Dream, Royal Purple, Copper Sunset, Sapphire Sea, Peach Cream, Slate Storm, Lime Zest, Burgundy Wine, Teal Oasis
- Admin Panel: Full device controls, library indexing, Theme Customizer.
- File Browser: Upload, rename, delete, download, and inline file editing. (Recommended to use a PC)
- Global Search: Quickly find media across all categories from the Menu page.
- Music Player: Seamless background playback with subdirectory playlists and a dynamic Queue.
- Movies & Shows: Plyr-integrated playback with season/special folder support.
- Digital Library: EPUB support, PDF handling, and a dedicated Comic/Webtoon reader.
- Resume Tracking: Saves playback progress for Movies, Shows, and certain Books.
- Gallery & Files: Dedicated pages for image viewing, video clips, and general file sharing.
- Captive Portal: Automatic login/redirection for easy access.
- Persistent Settings: Themes and system configurations saved across reboots.
- Mobile-Friendly UI: Fully responsive design optimized for handheld offline streaming.
Nomad is built specifically for the Waveshare ESP32-S3 Dev Board (1.47" LCD version). Due to the number of low-level tricks used to squeeze this much functionality out of the hardware, it is difficult to get Nomad running on other boards.
There are a few community forks that target other ESP32 boards, but your mileage will vary. Now that Nomad is stable on Mk3, I plan to develop a Nomad Lite version with wider board compatibility, focused on basic streaming without all the advanced features.
-
Waveshare ESP32-S3 Dev Board (1.47" LCD version) Amazon Link
-
FAT32 microSD card (16-128GB recommended, up to 2TB) Amazon Link
-
SD-Card Extender (optional, 3DP case compatible) Amazon Link
-
USB power source
-
Optional: 3D-printed enclosure (STL files included)
- Arduino IDE
- Fat32Format or equivalent
- SquareLine Studio (optional, for UI editing)
- Flash ESP32-S3 firmware from
/firmware/. - Format SD card as FAT32 and copy
/SD_Card_Template/files. - Place media in
/Movies,/Shows,/Books,/Music,/Gallery,/Files. - Insert SD card and power device via USB.
- Connect to Wi-Fi
Jcorp_Nomadwith password:password. - Open the browser interface.
- Click the gear icon → Library Index → Full Scan Now.
- Monitor Admin Console for progress; scan may take minutes.
- Return to Menu page and enjoy your media!
-
Faster & More Reliable Indexing
- Non-blocking, background indexing for large libraries.
- Safe on power loss; partial indexes remain intact.
- Auto-updates changes; frontend detects updates automatically.
-
Resume Functionality
- Movies and Shows track playback progress.
- Options for Play from Start or Resume.
- Menu displays last three movies/shows; mobile shows most recent.
-
Dark Mode
- Toggleable across all pages from the menu.
-
Admin Page
- Full device control: shutdown, restart, flash mode, Wi-Fi, RGB LEDs, brightness, credentials, indexing, and file management.
- Safe shutdown option for SD card health.
- Real-time system console feedback.
-
Stability Improvements
- Fixed frontend NDJSON sync issues.
- Crash recovery on large indexes.
- Dynamic LCD brightness adjustment.
- Streaming stability enhancements.
-
Improved Library Support
- Supports deeper folder structures for Shows and Music.
- Flexible organization; media files can be nested at any level.
Folder Structure
/Movies
Interstellar.mp4
Interstellar.jpg
/Shows
/The Office
S01E01 - Pilot.mp4
S01E02 - Diversity Day.mp4
The Office.jpg
/Gravity Falls
/Season 1
S1E1 - Tourist Trapped.mp4
S1E2 - The Legend of the Gobblewonker.mp4
/Season 2
S2E1 - Scary-oke.mp4
S2E2 - Into the Bunker.mp4
Alex Hirsch Interview.mp4
Gravity Falls.jpg
/Books
The Martian.pdf
The Martian.jpg
/How to Train Your Dragon
book1.pdf
book2.mp3
book1.jpg
book2.jpg
How to Train Your Dragon.jpg
/Music
track01.mp3
/Artist1
track01.mp3
/Album1
track02.mp3
/PersonName
/Playlist1
track01.mp3
/Playlist2
track02.mp3
/Gallery
image01.jpg
video01.mp4
/Files
document.pdf
example.txt
index.html
appleindex.html
menu.html
movies.html
shows.html
books.html
music.html
gallery.html
files.html
Logo.png
favicon.ico
- Video:
.mp4, .mov, .mkv, .webm - Audio:
.mp3, .flac, .wav - Books:
.pdf, .epub, .mp3, .cbz - Images:
.jpg
Nomad Lite - A stripped-down version of Nomad with wider board compatibility, focused on core streaming features. Now that Mk3 is stable, this is the next priority.
Nomad Manager - A companion application for Nomad that integrates with Jellyfin to handle automated media downcoding and transfers. Keep your Nomad stocked and ready to go without manual file management.
Gallion - A larger-scale sibling to Nomad, built on more capable hardware. Gallion is designed to handle everything that couldn't fit on Nomad's current platform > ZIM file support, ROM emulation, 4k video, and expanded media compatibility across the board. The current version is here.
Inspired by my experience running a Jellyfin server, I wanted a portable, low-cost solution for offline media streaming. Challenges with SBCs (Raspberry Pi, etc.) included high power usage, heat, and instability.
Nomad focuses on delivering:
- Offline access
- Wide device compatibility
- Simple frontend for media browsing and playback
- Multiple user support
- High customization potential
The ESP32-S3 provides enough performance to handle these requirements efficiently, in a pocket-sized form factor.
CC BY-NC-SA 4.0 - free to remix and share for non-commercial use with attribution.
Developed by Jackson Studner (Jcorp Tech). Inspired by open-source offline media projects. Contributions via PRs welcome.
