Federated forge client web app
Find a file
André Jaenisch 08e739440e
feat: new projects page
This is the page that will be reached after a new project was added or
imported unless there have been projects before already.

Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de>
2024-03-15 11:19:14 +01:00
.reuse chore: introduce REUSE 2024-03-06 16:03:12 +01:00
.vscode chore: introduce REUSE 2024-03-06 16:03:12 +01:00
LICENSES chore: introduce REUSE 2024-03-06 16:03:12 +01:00
src feat: new projects page 2024-03-15 11:19:14 +01:00
src-tauri chore: run prettier over Tauri conf 2024-03-13 18:52:23 +01:00
static chore: introduce REUSE 2024-03-06 16:03:12 +01:00
tests chore: introduce REUSE 2024-03-06 16:03:12 +01:00
.eslintignore chore: introduce REUSE 2024-03-06 16:03:12 +01:00
.eslintrc.cjs chore: introduce REUSE 2024-03-06 16:03:12 +01:00
.gitignore chore: prevent target folder from being added 2024-03-09 10:27:56 +01:00
.node-version Update README and add .node-version 2023-05-03 17:37:18 +03:00
.node-version.license chore: introduce REUSE 2024-03-06 16:03:12 +01:00
.npmrc chore: introduce REUSE 2024-03-06 16:03:12 +01:00
.prettierignore chore: introduce REUSE 2024-03-06 16:03:12 +01:00
.prettierrc build: upgrade all dependencies 2023-12-20 23:18:17 +01:00
.prettierrc.license chore: introduce REUSE 2024-03-06 16:03:12 +01:00
COPYING Create first-start page & add COPYING 2023-05-03 17:41:33 +03:00
package-lock.json build: set up tauri 2024-03-09 10:21:32 +01:00
package-lock.json.license chore: introduce REUSE 2024-03-06 16:03:12 +01:00
package.json chore: document tauri commands 2024-03-09 10:27:51 +01:00
package.json.license chore: introduce REUSE 2024-03-06 16:03:12 +01:00
playwright.config.ts chore: introduce REUSE 2024-03-06 16:03:12 +01:00
postcss.config.cjs chore: introduce REUSE 2024-03-06 16:03:12 +01:00
README.md chore: introduce REUSE 2024-03-06 16:03:12 +01:00
svelte.config.js chore: introduce REUSE 2024-03-06 16:03:12 +01:00
tailwind.config.js chore: introduce REUSE 2024-03-06 16:03:12 +01:00
tsconfig.json refactor: break out routes into components 2024-02-09 11:19:08 +01:00
tsconfig.json.license chore: introduce REUSE 2024-03-06 16:03:12 +01:00
vite.config.ts chore: introduce REUSE 2024-03-06 16:03:12 +01:00
vitest.config.ts chore: introduce REUSE 2024-03-06 16:03:12 +01:00

Anvil

/!\ work in progress!

Kanban | Chat

Anvil is a web client app for interacting with federated forges. It's meant to allow you to:

  • Create an account of a federated forge
  • Browse software projects
  • Create and manage your software projects
  • Create and manage teams and organizations
  • Participate and interact with software projects: Repo, issues, PRs, CI, etc. etc.

It's meant to be deployed in 3 ways:

  1. Tauri app, packaged with Flatpak, that you can install on your desktop
  2. Independent fully-client-side hosted app you can access using a web browser and connect to any forge (we will probably host one on Anvil's website for convenient outreach, but anyone can host on their server)
  3. Hosted app served by federated forge servers as their default UI, supporting both multi-page mode with pre-rendered pages and regular single-page mode

Status (May 2023): Implementation is in very early initial stages.

Tech stack:

  • SvelteKit
  • TypeScript
  • Tailwind
  • Skeleton.dev

Soon also:

  • Tauri
  • ActivityPub
  • ForgeFed

Developing

Install NodeJS. Recommended method: FNM.

Install dependencies:

npm install

Launch development server:

npm run dev

# or start the server and open the app in a new browser tab
npm run dev -- --open

Quick overview of the structure of the codebase:

This repo was started via npm create skeleton-app@latest with the "Welcome" template.

More components can be added using create-svelte.

Building

We haven't yet installed adapters for the target environments. Coming soon.

To create a production version of the app:

npm run build

To preview the production build:

npm run preview

Software freedoms (a.k.a license)

GNU AGPL v3 or later. For the legal detail, see COPYING.