Versia Server frontend, designed with Nuxt.
Find a file
Jesse Wierzbinski 092bce0f24
Some checks failed
CodeQL / Analyze (javascript) (push) Failing after 2m30s
Deploy to GitHub Pages / build (push) Failing after 6s
Deploy to GitHub Pages / deploy (push) Has been skipped
Docker / build (push) Failing after 5s
Mirror to Codeberg / Mirror (push) Failing after 0s
chore: ⬆️ Upgrade to the latest Shadcn-Vue version
2025-03-28 01:16:24 +01:00
.github change back to ghcrio for now 2025-02-05 19:49:21 +01:00
.vscode feat: Implement internationalization 2024-12-07 20:24:09 +01:00
app feat: Add HTML spinner while loading frontend 2024-12-09 10:19:35 +01:00
assets docs: 📝 Refactor README to improve appearance 2024-12-16 14:18:46 +01:00
components chore: ⬆️ Upgrade to the latest Shadcn-Vue version 2025-03-28 01:16:24 +01:00
composables feat: ⬆️ Update Inlang JS to v2 2025-02-14 14:08:21 +01:00
layouts chore: ⬆️ Upgrade to the latest Shadcn-Vue version 2025-03-28 01:16:24 +01:00
messages Translated using Weblate (English (en_OT)) 2025-02-07 00:02:03 +01:00
pages chore: ⬆️ Upgrade to the latest Shadcn-Vue version 2025-03-28 01:16:24 +01:00
plugins feat: Ensure external links open in a new tab 2024-12-29 14:27:16 +01:00
project.inlang feat: ⬆️ Update Inlang JS to v2 2025-02-14 14:08:21 +01:00
public feat: Add audio packs support 2024-12-25 18:15:09 +01:00
server/plugins refactor: ♻️ Rewrite authentication page 2024-12-02 17:20:27 +01:00
styles refactor: 💄 Add slight "frosted glass" effect to some cards, improve color variety, make avatars smaller 2024-12-31 15:55:02 +01:00
types chore: ⬆️ Upgrade to the latest Shadcn-Vue version 2025-03-28 01:16:24 +01:00
utils feat: ⬆️ Update Inlang JS to v2 2025-02-14 14:08:21 +01:00
.dockerignore refactor: 🎨 Move Lysand-FE into its own repository 2024-04-14 15:16:57 -10:00
.editorconfig ci: 👷 Add the short commit SHA as a docker container tag 2024-12-15 17:26:09 +01:00
.gitignore feat: Implement rich text note composer 2024-12-25 20:46:14 +01:00
app.vue chore: ⬆️ Upgrade to the latest Shadcn-Vue version 2025-03-28 01:16:24 +01:00
biome.json feat: Implement internationalization 2024-12-07 20:24:09 +01:00
bun.lock chore: ⬆️ Upgrade to the latest Shadcn-Vue version 2025-03-28 01:16:24 +01:00
components.json chore: ⬆️ Upgrade to the latest Shadcn-Vue version 2025-03-28 01:16:24 +01:00
Dockerfile fix(build): 👷 Put Node back into Docker image builds :c 2025-02-14 14:29:50 +01:00
index.d.ts refactor: ♻️ Improve mobile timeline switching 2024-12-26 14:34:59 +01:00
LICENSE docs: 📝 Make README prettier, add LICENSE 2024-06-09 17:53:51 -10:00
nuxt.config.ts refactor: 🛂 Refactor account switching to ask for instance 2025-02-09 20:14:27 +01:00
package.json chore: ⬆️ Upgrade to the latest Shadcn-Vue version 2025-03-28 01:16:24 +01:00
README.md feat(build): Add Weblate community translation link 2025-02-06 23:13:30 +01:00
settings.ts feat: ⬆️ Update Inlang JS to v2 2025-02-14 14:08:21 +01:00
sws.toml fix(build): 🐛 Use correct path for 200.html fallback page 2024-12-09 15:48:11 +01:00
tailwind.config.ts chore: ⬆️ Upgrade to the latest Shadcn-Vue version 2025-03-28 01:16:24 +01:00
tsconfig.json feat: Implement internationalization 2024-12-07 20:24:09 +01:00

Versia Frontend


Versia-FE screenshot on an iPad Pro

Features

  • Timelines: public, home, local
  • Login
  • Notifications
  • Replies
  • Quotes
  • Markdown posts (quasi-unrestricted)
  • Dark mode
  • Following
  • Multiple accounts
  • Custom Emojis
  • Versia Server Permissions support
  • Note editing
  • Alt text support everywhere
  • Media uploads
  • WCAG 2.2 AAA testing
  • Settings
  • Profile editing

Browser Support

The following browsers are supported (issues will be prioritized):

  • Chromium: 110+
  • Firefox: 110+
  • Safari: 16+
  • IE: None.

The following browsers will very likely work, but are not officially supported:

  • Chromium: 80+
  • Firefox: 80+
  • Safari: 12+
  • IE: None.

Other browsers may work, but are not guaranteed to.

Performance

JavaScript

The total JavaScript bundle size is less than 1000 kB, but this is made even smaller by the fact that the bundle is split into multiple files, and only the necessary files are loaded on each page.

Benchmarks

Soon™.

Installation

Versia-FE is included in the provided docker-compose file during Versia Server installation.

To have Versia-FE and Versia Server running on the same domain, edit the Versia Server configuration to point to the Versia-FE container's address (frontend category inside config).

Manual Installation

Here are the steps to install Versia-FE manually:

Docker/Podman

services:
    fe:
        image: ghcr.io/versia-pub/frontend:main
        container_name: versia-fe
        restart: unless-stopped
        networks:
            - versia-net

Then, the frontend will be available at http://localhost:3000 inside the container.

Tip

By default, Versia-FE will connect to any Versia Server instance running on the same domain.

You can set the NUXT_PUBLIC_API_HOST environment variable to point to a different Versia Server instance.

Manual

  1. Clone the repository.
git clone https://github.com/versia-pub/frontend.git
  1. Install dependencies.
bun install
  1. Build the project.
bun run build
  1. Serve the static files in the .output/public directory.

Warning

.output/public/200.html should be configured as a fallback for all 404 errors.

Development

Run bun run emojis:generate to generate the emoji list before building or running the project.

License

This project is licensed under the AGPL 3.0 - see the LICENSE file for details.

All Versia assets (icon, logo, banners, etc) are licensed under CC-BY-NC-SA-4.0.

Misskey Audio

The public/packs/audio/misskey directory contains audio files from the Misskey project, which are licensed under the AGPL 3.0.

Acknowledgments

Projects

  • Bun: Thanks to the Bun team for creating an amazing JavaScript runtime.
  • Nuxt: Thanks to the Nuxt team for creating an amazing Vue framework.

People

  • April John: Creator and maintainer of the Versia Server ActivityPub bridge.