---
url: /docs/deployment/web.md
description: >-
  Configure the web version of a Luna Park application: app name, history mode,
  Progressive Web App, and backend settings.
---

# Web App

The web version of your application is a **single-page application** (Vue, built with Vite), served by its Node.js backend or by any static host. It is what you get when you [compile](./compilation) your project, from the cloud version or the desktop app. To put it online, see [Self-hosting](./deployment).

## General settings

The settings are available in the  **General Settings** button of the top bar. You can change the name of your application there, and choose the history mode:

* **Hash Mode** (default): Generates links like `myApp.com/#/home/dashboard`. This mode works in most cases but is not optimal for SEO and does not work with page anchors.
* **Web Mode**: Generates links like `myApp.com/home/dashboard`. This mode is better for SEO but requires server configuration to redirect all 404 errors to the `index` file.
* **Memory Mode**: Generates links like `myApp.com/` (the path is hidden). This mode works in all conditions but is not optimal for SEO.

[Desktop](./desktop) and [mobile](./mobile) apps always use Hash Mode.

## Progressive Web App

A Progressive Web App (PWA) can be installed from the browser, on a computer or a phone: it gets an icon, opens in its own window, and loads its interface without the network once installed.

Enable it in the **Progressive Web App** section of the  **General Settings**:

| Setting | Default | Description |
|---|---|---|
| **Enabled** | Off | Turns the app into a PWA. |
| **Short name** | App name | The name shown under the icon, when space is limited. |
| **Description** | Empty | A short description of the app. |
| **Icon (512×512)** | Luna Park icon | The URL of a square 512×512 image used as the app icon. |
| **Theme color** | `#ffffff` | The color of the title bar and of the browser interface around the app. |
| **Background** | `#ffffff` | The color of the splash screen shown while the app starts. |
| **Display** | Standalone | **Standalone** (own window, like a native app), **Fullscreen**, **Minimal UI** (own window with basic navigation buttons), or **Browser** (regular tab). |
| **Orientation** | Any | Locks the screen orientation: **Any**, **Portrait**, or **Landscape**. |

The compiled app then includes a web app manifest and a service worker. The service worker caches the frontend files (HTML, CSS, JS, images, fonts) and updates them automatically when you deploy a new version. Requests to the backend (`/api`) always go to the server.

::: info

* Browsers only offer to install a PWA served over **HTTPS** (or from `localhost`).
* The service worker is only generated by the production build: test the installation with **Production** in the desktop app, not with **Watch**.
* Desktop and mobile apps ignore this option.
  :::

## Backend settings

The **Backend Settings** button sets an outgoing **Proxy** for the backend and the **Cookie salt** used to sign cookies.
