Federated forge client web app
dd50af1764
I want to explore how I could potentially reuse components. Therefore I extract the form into a component. Given its complexity it could either be a molecule or an organism. I went with the latter here. I have to explore how I pass around Objects and Arrays in Svelte so that I can move server logic up in the component tree. When I reuse components, I potentially want to define the labels and placeholders. Therefore the hard-coded strings have to become variables. Eventually I will define the key on the template level and use the real values on page level and pass it down. That would break tests currently so I'm not doing it in this refactoring. Signed-off-by: André Jaenisch <andre.jaenisch@posteo.de> |
||
---|---|---|
.vscode | ||
src | ||
static | ||
tests | ||
.eslintignore | ||
.eslintrc.cjs | ||
.gitignore | ||
.node-version | ||
.npmrc | ||
.prettierignore | ||
.prettierrc | ||
COPYING | ||
package-lock.json | ||
package.json | ||
playwright.config.ts | ||
postcss.config.cjs | ||
README.md | ||
svelte.config.js | ||
tailwind.config.js | ||
tsconfig.json | ||
vite.config.ts | ||
vitest.config.ts |
Anvil
/!\ work in progress!
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:
- Tauri app, packaged with Flatpak, that you can install on your desktop
- 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)
- 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
.