Create web app PWA manifest (closes #24) #34

Open
luca0N wants to merge 4 commits from dev_client_pwa into dev
Owner

Create a simple Progressive Web App (PWA) for the web app. This
manifest uses the same icon used for `apple-touch-icon', but it has been
renamed, as that icon is no longer exclusively used for that purpose.

One caveat is that this pull request introduces a breaking change for those who would like to host this web app at a subpath of an already existing website (e.g., https://www.luca0n.com/lanbassador/ instead of a dedicated subdomain), assuming this was even possible before (which I haven't tested). This issue is caused by the start_url option in the PWA manifest.

  • Test on desktop
  • Test on mobile (Firefox and Chromium-based)
Create a simple Progressive Web App (PWA) for the web app. This manifest uses the same icon used for `apple-touch-icon', but it has been renamed, as that icon is no longer exclusively used for that purpose. One caveat is that this pull request introduces a breaking change for those who would like to host this web app at a subpath of an already existing website (e.g., `https://www.luca0n.com/lanbassador/` instead of a dedicated subdomain), assuming this was even possible before (which I haven't tested). This issue is caused by [the `start_url` option in the PWA manifest](https://git.luca0n.com/luca0N/lanbassador/src/commit/c95715890fcead2517c470eabd97a36a20dc8163/client/public/assets/lanbassador_manifest.json#L8). - [x] Test on desktop - [ ] Test on mobile (Firefox and Chromium-based)
luca0N self-assigned this 2026-01-05 23:34:44 +00:00
Create a simple Progressive Web App (PWA) for the web app.  This
manifest uses the same icon used for `apple-touch-icon', but it has been
renamed, as that icon is no longer exclusively used for that purpose.
luca0N changed title from Create web app PWA manifest (closes #24) to WIP: Create web app PWA manifest (closes #24) 2026-01-05 23:34:48 +00:00
Author
Owner

I've thought about having the instance name appended to the PWA name, so as to help users in telling instances apart. The thing is, I believe most users will only have a single instance, plus, since the PWA manifest is a static JSON file, achieving this would mean doing it in the server side.

Since the web app runs from static files (there's no npm server or PHP script that serves it), this would have to be done in the web server configuration (for the lanbassador/client Docker image, this would have to be achieved with Apache).

Still, I think this is too much effort for such a niche combination.

I've thought about having the instance name appended to [the PWA name](https://git.luca0n.com/luca0N/lanbassador/src/commit/7157ebfbbeab86d70ec4bd49ac5feebd74bed72e/client/public/assets/lanbassador_manifest.json#L2), so as to help users in telling instances apart. The thing is, I believe most users will only have a single instance, plus, since the PWA manifest is a static JSON file, achieving this would mean doing it in the server side. Since the web app runs from static files (there's no npm server or PHP script that serves it), this would have to be done in the web server configuration (for the `lanbassador/client` Docker image, this would have to be achieved with Apache). Still, I think this is too much effort for such a niche combination.
Add extra attributes to the web app PWA manifest file, including
`description', `theme_color', and `categories'.
In the web app Progressive Web App manifest, add some options that are
required by Chromium-based browsers.  This allows Chromium users to
install the web app.
In the web app Progressive Web App manifest, fix the path to the app
icon, as it was (and still is) a relative path that should point to the
file contained within the same directory.
Author
Owner

The PWA seems to work well on Brave running on Linux. I would like to test this on mobile before merging this pull request.

The PWA seems to work well on Brave running on Linux. I would like to test this on mobile before merging this pull request.
luca0N changed title from WIP: Create web app PWA manifest (closes #24) to Create web app PWA manifest (closes #24) 2026-01-13 23:50:39 +00:00
Author
Owner

One thing to note is that all hyperlinks (as of now) will open on the user's web browser instead of the PWA, even though they are hosted on the same website. This is due to the use of target="_blank" in the anchor tags.

This is intended behavior, as changing the app page means losing the history of detected hosts (for now). Plus, it's not uncommon for native apps to open up the user's web browser that points to relevant legal documents (such as ToS, privacy policy, free software licenses, etc).

One thing to note is that all hyperlinks (as of now) will open on the user's web browser instead of the PWA, even though they are hosted on the same website. This is due to the use of `target="_blank"` in the anchor tags. This is intended behavior, as changing the app page means losing the history of detected hosts (for now). Plus, it's not uncommon for native apps to open up the user's web browser that points to relevant legal documents (such as ToS, privacy policy, free software licenses, etc).
This pull request can be merged automatically.
This branch is out-of-date with the base branch
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin dev_client_pwa:dev_client_pwa
git switch dev_client_pwa

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch dev
git merge --no-ff dev_client_pwa
git switch dev_client_pwa
git rebase dev
git switch dev
git merge --ff-only dev_client_pwa
git switch dev_client_pwa
git rebase dev
git switch dev
git merge --no-ff dev_client_pwa
git switch dev
git merge --squash dev_client_pwa
git switch dev
git merge --ff-only dev_client_pwa
git switch dev
git merge dev_client_pwa
git push origin dev
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
luca0N/lanbassador!34
No description provided.