https://github.com/mathix420/free-the-web-apps
Turn any website into an app in seconds!
https://github.com/mathix420/free-the-web-apps
app arc arc-browser chrome linux rice sway web webapp
Last synced: about 1 month ago
JSON representation
Turn any website into an app in seconds!
- Host: GitHub
- URL: https://github.com/mathix420/free-the-web-apps
- Owner: mathix420
- License: gpl-3.0
- Created: 2024-02-13T10:51:37.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2026-04-27T09:43:15.000Z (about 2 months ago)
- Last Synced: 2026-04-27T10:26:33.549Z (about 2 months ago)
- Topics: app, arc, arc-browser, chrome, linux, rice, sway, web, webapp
- Language: TypeScript
- Homepage: https://ftwa.mathix.dev
- Size: 78.5 MB
- Stars: 515
- Watchers: 4
- Forks: 12
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Free The Web Apps
**[FTWA](https://ftwa.mathix.dev)** is an utility to free your web apps from their browser's frame.
So you don't need to wait for Arc Browser on Linux to have great looking webapps!
- **Native Feel.** Don't wait for native desktop apps, most frontend developpers already did an amazing job.
- **Quick Access.** Find your apps in the App Launcher, Rofi, Wofi, dmenu, Spotlight and more.
- **Support Extentions.** Apps keep browser data: cookies, storage, extentions, ...
- **App Store.** Discover dozen of web apps that work especially well in a frameless browser.
**[Apps Store](https://ftwa.mathix.dev/store)** • **[How it works](#how-it-works)** • **[Suggest an app][suggest-app]**
> [!NOTE]
> Feel free to contribute and [suggest apps][suggest-app] you find useful!
## How it works
### Chromium browsers
FTWA uses the `--app='https://app.example'` parameter with Chromium-based browsers to launch a website in "app mode". Similar to kiosk-mode, this mode launches the website without the typical browser interface, such as tabs, the address bar, or navigation buttons, making the website look and feel more like a standalone application.
### Firefox
Previously the `--ssb` parameter (Site Specific Browser) provided similar behavior as `--app` in chrome, but it was discontinued in 2021.
FTWA create a new firefox profile with custom CSS and settings, inspired by [this reddit comment](https://www.reddit.com/r/firefox/comments/li2lqg/now_that_mozilla_killed_the_ssb_feature_what/).
### On linux
When choosing linux as target OS, FTWA generate a shell script that will create a [`.desktop` file](https://specifications.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html) and it's icons.
### On Windows
FTWA generates a PowerShell script that downloads the icon, wraps it as an `.ico`, and creates a Start Menu `.lnk` shortcut (via `WScript.Shell`) pointing at the browser executable with the right `--app=` / Firefox profile arguments. The shortcut shows up in Start Menu search.
### On Macos
Creating a `.app` folder in `/Applications` containing an icon (`.icns`) and a bash script that run the browser command.
## How to install an app
1. Make sure to select your environment options.

2. Either [create your own app](https://ftwa.mathix.dev/#create-web-app) or click the copy icon on any app from the [gallery](https://ftwa.mathix.dev/#gallery) or [app store](https://ftwa.mathix.dev/store).
3. Paste the code in your terminal of choice.
- It's good practice to check a script content before running it.
- **Example:**
```bash
sh -ec "$(curl -fsSL 'https://ftwa.mathix.dev/v/excalidraw?os=linux&bw=chrome&path=%2Fusr%2Fbin%2Fgoogle-chrome-stable')"
```
Just curl the link or [open it in a browser](https://ftwa.mathix.dev/v/excalidraw?os=linux&bw=chrome&path=%2Fusr%2Fbin%2Fgoogle-chrome-stable) to see the script content.
```bash
curl -fsSL 'https://ftwa.mathix.dev/v/excalidraw?os=linux&bw=chrome&path=%2Fusr%2Fbin%2Fgoogle-chrome-stable'
```
Currently this will only work if you have a chromium browser installed. If you're not using `google-chrome` make sure to either edit the `.desktop` file to point to your executable, or make `/usr/bin/google-chrome` an alias to your chromium browser.
## What to expect using swayfx
Using [swayfx](https://github.com/WillPower3309/swayfx) as window manager (corner_radius: 12, blur_radius: 5)
- Chrome, Todo Mate, YT Music (My current every-day setup)

- YouTube Music, Todo Mate, Notion

- YouTube Music

- Notion, ~~Cron~~ *Notion* Calendar

## How to uninstall
### Linux
Installed apps are located in one of these locations, just remove the ftwa-*.desktop file you don't want anymore.
```bash
ls -lAh ~/.local/share/applications
# OR
ls -lAh /usr/share/applications
```
### Macos
You can uninstall apps like any other one, just move the `.app` folder to the trash.
## Resources to find logos
- https://macosicons.com/
- https://icon-icons.com/
- https://simpleicons.org/
## License
This project is licensed under the GNU General Public License v3.0 - see the [LICENSE](LICENSE) file for details.
### Icon License Exception
> [!IMPORTANT]
> The icons and logos located in `/public/icons/` are the property of their respective owners and are **NOT** covered by the GPL-3.0 license. These assets are used for identification purposes only. All rights to these icons belong to the respective app developers and companies. See `/public/icons/LICENSE` for more information.
## Web Dev
Look at [Nuxt docs](https://nuxt.com/docs/getting-started/introduction), [Nuxt UI](https://ui.nuxt.com), [Nuxt Hub](https://hub.nuxt.com) and [Tailwind UI](https://tailwindui.com/) to learn more.
### Setup
Make sure to install the dependencies:
```bash
bun install
```
### Development Server
Start the development server on `http://localhost:3000`:
```bash
bun run dev
# or
bun run dev --host
```
### Production
Build the application for production:
```bash
bun run build
```
Locally preview production build:
```bash
bun run preview
```
Check out the [deployment documentation](https://nuxt.com/docs/getting-started/deployment) for more information.
[suggest-app]: https://github.com/mathix420/free-the-web-apps/issues/new?assignees=&labels=app-suggestion&projects=&template=APP_SUGGESTION.yaml&title=%5BAPP%5D+-+
