Skip to content

A web app for negotiating interpersonal relationships

License

Notifications You must be signed in to change notification settings

lostatc/discuss.love

Repository files navigation

discuss.love

This web app is a tool for negotiating interpersonal relationships.

Architecture

The site is a Vue.js app hosted on Cloudflare Pages. The client app is in this repo under ./client/.

The backend is a Cloudflare Worker which stores session state in Cloudflare KV. The worker is in this repo under ./worker/.

The list of questions is defined in a JSON document which is used to dynamically build the input form

A self-hosted instance of Umami is used to provide privacy-preserving analytics.

Development

To run the app locally, you'll need to spin up a local instance of the worker. It must be running on port 8787.

cd ./worker/
npm install
npx wrangler dev

Then you can start the local dev server.

cd ./client/
npm install
npm run dev

Deployment

The client app and backend worker are automatically deployed to the dev environment on pushes to main and to the prod environment on pushes to prod. To deploy the worker manually, run:

cd ./worker/
npm install
npx wrangler deploy --env dev
npx wrangler deploy --env prod

You can build the client app locally like this:

cd ./client/
npm install
npm run build

Copyright

Copyright © 2024 Wren Powell

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.

You should have received a copy of the GNU Affero General Public License along with this program. If not, see https://www.gnu.org/licenses/.