2023-05-03 16:37:18 +02:00
|
|
|
# Anvil
|
2023-05-03 11:28:02 +02:00
|
|
|
|
2023-05-03 16:37:18 +02:00
|
|
|
/!\ work in progress!
|
2023-05-03 11:28:02 +02:00
|
|
|
|
2023-05-03 16:37:18 +02:00
|
|
|
[Kanban](https://tree.taiga.io/project/perelev-anvil) |
|
|
|
|
[Chat](https://matrix.to/#/#general-forgefed:matrix.batsense.net)
|
2023-05-03 11:28:02 +02:00
|
|
|
|
2023-05-03 16:37:18 +02:00
|
|
|
Anvil is a web client app for interacting with federated forges. It's meant to
|
|
|
|
allow you to:
|
2023-05-03 11:28:02 +02:00
|
|
|
|
2023-05-03 16:37:18 +02:00
|
|
|
- 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.
|
2023-05-03 11:28:02 +02:00
|
|
|
|
2023-05-03 16:37:18 +02:00
|
|
|
It's meant to be deployed in 3 ways:
|
|
|
|
|
|
|
|
1. [Tauri](https://tauri.app) 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
|
2023-05-03 16:48:40 +02:00
|
|
|
convenient outreach, but anyone can host on their server)
|
2023-05-03 16:51:29 +02:00
|
|
|
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
|
2023-05-03 16:37:18 +02:00
|
|
|
|
|
|
|
Status (May 2023): Implementation is in very early initial stages.
|
|
|
|
|
|
|
|
Tech stack:
|
|
|
|
|
|
|
|
- SvelteKit
|
|
|
|
- TypeScript
|
|
|
|
- Tailwind
|
|
|
|
- Skeleton.dev
|
|
|
|
|
|
|
|
Soon also:
|
|
|
|
|
|
|
|
- Tauri
|
|
|
|
- ActivityPub
|
|
|
|
- ForgeFed
|
2023-05-03 11:28:02 +02:00
|
|
|
|
|
|
|
## Developing
|
|
|
|
|
2023-05-03 16:37:18 +02:00
|
|
|
Install NodeJS. Recommended method: [FNM](https://github.com/Schniz/fnm).
|
|
|
|
|
|
|
|
Install dependencies:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
npm install
|
|
|
|
```
|
|
|
|
|
|
|
|
Launch development server:
|
2023-05-03 11:28:02 +02:00
|
|
|
|
|
|
|
```bash
|
|
|
|
npm run dev
|
|
|
|
|
|
|
|
# or start the server and open the app in a new browser tab
|
|
|
|
npm run dev -- --open
|
|
|
|
```
|
|
|
|
|
2023-05-03 16:37:18 +02:00
|
|
|
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`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte).
|
|
|
|
|
2023-05-03 11:28:02 +02:00
|
|
|
## Building
|
|
|
|
|
2023-05-03 16:37:18 +02:00
|
|
|
We haven't yet installed [adapters](https://kit.svelte.dev/docs/adapters) for
|
|
|
|
the target environments. Coming soon.
|
|
|
|
|
|
|
|
To create a production version of the app:
|
2023-05-03 11:28:02 +02:00
|
|
|
|
|
|
|
```bash
|
|
|
|
npm run build
|
|
|
|
```
|
|
|
|
|
2023-05-03 16:37:18 +02:00
|
|
|
To preview the production build:
|
|
|
|
|
|
|
|
```bash
|
|
|
|
npm run preview
|
|
|
|
```
|
|
|
|
|
|
|
|
## Software freedoms (a.k.a license)
|
2023-05-03 11:28:02 +02:00
|
|
|
|
2023-05-03 16:41:33 +02:00
|
|
|
GNU AGPL v3 or later. For the legal detail, see [`COPYING`](COPYING).
|