- Private: Every request is proxied through the server, and no logs are kept.
- Lightweight: Compared to twitch, SafeTwitch is optimized for speed and usability.
</br>
# Okay, but why?
It is impossible to use Twitch without being bombarded with tons of ads, multiple trackers, and enourmous page sizes and loading times. This project aims to fix these issues, by removing all trackers, have much smaller page sizes, and very fast loading times.
# Features
### User features
- [x] No connection to twitch/amazon
- [x] Lightweight on server and client
- [x] No Ads or tracking
- [x] No outside connections, only connection is the instance
- [x] Uses [Vue](https://vuejs.org/) for a speedy experience
- [x] No logs
- [x] Much smaller pages compared to Twitch (<600kbcomparedto>8.2mb)
- [x] Follow streamers locally to have a more personalized feel
First, set the environment variables in the .env file to your needs. Here's an example:
**This step is important, once the frontend is built, the env variables become hard coded**
```env
VITE_BACKEND_DOMAIN=localhost:7000
VITE_INSTANCE_DOMAIN=localhost:5173
VITE_HTTPS=false
```
Perfect, now we can build the frontend by running this command
`npm run build`
Once this finished, a new `dist` folder will appear. Put the contents of this folder into wherever your http server is. For the tutorial's sake, we'll use nginx.
`cd dist`
`mv ./* /var/www/html`
To have nginx allow for the SPA aspect of vue to work, we need to set the config option try_files.
```conf
events {}
http {
include mime.types;
server {
listen 80;
access_log off;
error_log off;
location / {
root /app;
index index.html;
try_files $uri $uri/ /index.html;
}
}
}
```
With that all set up, you can turn nginx on and start using SafeTwitch! (unless you need to setup the backend...)
### Setting up the backend
Setting up the backend is easier, first, let's clone it