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
It's not all sunshine and rainbows though, and still has various cons, including
- SafeTwitch was a learning project
- dragongoose is silly (can't even drive yet 😔)
- Uses Vue, which relies on Javascript
You aren't forced to use SafeTwitch, so use whatever suits you the most!
Heres some other notable twitch projects
- [Xtra](https://f-droid.org/packages/com.github.andreyasadchy.xtra/), a Twitch client focused on providing the best viewing and chatting experience on mobile devices
- [Twire](https://f-droid.org/packages/com.perflyst.twire/), an ad free Twitch browser and stream player for Android.
- [Streamlink Twitch Gui](https://streamlink.github.io/streamlink-twitch-gui/), A multi platform Twitch.tv browser for Streamlink
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