diff --git a/.node-version b/.node-version new file mode 100644 index 0000000..e048c8c --- /dev/null +++ b/.node-version @@ -0,0 +1 @@ +v18.15.0 diff --git a/README.md b/README.md index 5c91169..8e7c56b 100644 --- a/README.md +++ b/README.md @@ -1,22 +1,56 @@ -# create-svelte +# Anvil -Everything you need to build a Svelte project, powered by [`create-svelte`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte). +/!\ work in progress! -## Creating a project +[Kanban](https://tree.taiga.io/project/perelev-anvil) | +[Chat](https://matrix.to/#/#general-forgefed:matrix.batsense.net) -If you're seeing this, you've probably already done this step. Congrats! +Anvil is a web client app for interacting with federated forges. It's meant to +allow you to: -```bash -# create a new project in the current directory -npm create svelte@latest +- 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. -# create a new project in my-app -npm create svelte@latest my-app -``` +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 + convenient reachout, but anyone can host on their server) +3. Hosted app served by federated forge servers as their default UI, in + multi-page mode and pre-rendered pages + +Status (May 2023): Implementation is in very early initial stages. + +Tech stack: + +- SvelteKit +- TypeScript +- Tailwind +- Skeleton.dev + +Soon also: + +- Tauri +- ActivityPub +- ForgeFed ## Developing -Once you've created a project and installed dependencies with `npm install` (or `pnpm install` or `yarn`), start a development server: +Install NodeJS. Recommended method: [FNM](https://github.com/Schniz/fnm). + +Install dependencies: + +```bash +npm install +``` + +Launch development server: ```bash npm run dev @@ -25,14 +59,31 @@ npm run dev 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`](https://github.com/sveltejs/kit/tree/master/packages/create-svelte). + ## Building -To create a production version of your app: +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: ```bash npm run build ``` -You can preview the production build with `npm run preview`. +To preview the production build: -> To deploy your app, you may need to install an [adapter](https://kit.svelte.dev/docs/adapters) for your target environment. +```bash +npm run preview +``` + +## Software freedoms (a.k.a license) + +GNU AGPL v3 or later.