web2app
web2app copied to clipboard
Turn any web page into a desktop app (but, lightweight ~3MB)
Intro
Convert any web page into a desktop app (but, lightweight ~3MB)
- The bundle size will be around 3MB
- Demo: https://i.imgur.com/BLr03oF.mp4
Pre-requisites
macOS
# cargo
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Linux
You should first install the Rust toolchain
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
Then you need to install some dependencies, which depends on your Linux distribution.
Ubuntu (and derivates such as KDE Neon, PopOS etc.)
sudo apt install libwebkit2gtk-4.0-dev -y
OpenSUSE
sudo zypper in -y webkit2gtk3-soup2-devel
Other
You need to look for another package that provides the development libraries for webkit with GTK4. There might also be other missing packages.
Windows
Windows Setup (x64)
- Setup Tauri Pre-Requisities for windows: https://tauri.app/v1/guides/getting-started/prerequisites#setting-up-windows
Install
cargo install web2app tauri-cli
Usages
# Run with args
web2app args -n Notion -u https://www.notion.so -i icon.png
# Run with interactive mode
web2app interactive
# 🍀 Enter Name (TestApp):
# 🍀 Enter URL (https://trello.com):
# 🍀 Enter Description (An example application.):
# 🍀 Enter Version (0.1.0):
# 🍀 Enter Author (John Doe):
# 🍀 Enter Identifier (com.example.testapp):
# 🍀 Enter Icon (icon_path.png):
# 🍀 Enter User Agent (Mozilla/5.0):
Output
- The output will be saved in
$HOME/web2app_apps/<name>
directory.
Roadmap
- [x] Zoom In/Out
- [x] Reload
- [x] Standard Copy/Paste
- [x] Custom User Agent
- [x] Desktop Notification (working for some apps)
- [x] Back and forward navigation
- [ ] Automatically fetch icon from website
- [ ] Dark Reader Extension (already there but, not fully working)
- [ ] Retain window size and position after restart
- [ ] Separate
web2app_apps
repo to host common built apps through Github Action - [ ] File download support