Bonfires is a messaging app with a toasty, cozy flavor.
This is the frontend repo. See the repo for the API here.
- Create accounts using traditional username or password, or quickly authenticate using an existing GitHub account
- Start private groupchats, called "camps", invite others to camps by username, and share messages in camps
- Upload custom user and camp avatars
- Customize user display name, name color, and activity invisibility both as broad default and per camp
- Camps have activity indicators that show which users are viewing the camp and typing a message
- Toggleable light and dark mode, with preference remembered
- Language: Typescript
- Framework: Express.js on backend, React on frontend
- Database: MongoDB with Mongoose ORM
- Testing: Jest
- Other: JSON Web Token, Socket.IO, Supabase API, GitHub Apps API, Redis, Docker
This is a Node.js project, so you will need Node installed.
This repo hosts a frontend that interacts with the Bonfires API. It will need to be installed and running on a port.
Navigate to the root directory where you'd like this project to be, and clone this repo:
git clone https://github.com/endulum/bonfiresNavigate to the root of the newly created /bonfires, and install all required packages:
npm installThis project uses two env files: development and production. This project supplies a file .env.example with the variables necessary to run; copy this file to the two envs specified.
cp -n .env.example .env.development && cp -n .env.example .env.productionThis frontend uses very few variables:
VITE_APP_NAME: A string representing the name of this app, set toBonfiresby default.VITE_API_URL: You should have the Bonfires API up and running somewhere; this var represents the API's URL.VITE_GH_CLIENT_ID: If you've connected a GitHub App to the Bonfires API, you should add its client ID here, too.
Background pattern is "Bonfire" from DinPattern.
Animal SVGs used to autogenerate new user avatars are from the Animals 15 collection on SVGRepo.
UI colors are borrowed from Rosé Pine.
