Programrs is a website that aims to gather programming streams from around the internet in one place. For the time being, only streams from Twitch and YouTube are being showed.
If you know any other sources of programming streams, feel free to open an issue so that we can start a discussion about adding it.
There are three easy ways to start contributing:
- Add Technologies in src/models/technologies.ts. This file contains searchable technologies and keywords for YouTube search.
- Add blocked channels in src/models/blocklist.ts. This file contains channels that are should be filtered out due to various reasons.
- Add included channels in src/models/includelist.ts. This file contains lists of channels that should be always be included.
If you want to edit any of these lists, you are welcome to open a PR. If you have feature or improvement suggestions, please open an issue beforehand.
Clone the project:
git clone https://github.com/Plazide/programrs.live
Install dependencies:
yarn install
# or
npm install
You need to create a Fauna database. You can easily do this by going to the Fauna dashboard and clicking "NEW DATABASE".
This project uses Fauna GQL Upload. This means that we can create and update all of our database resources by running yarn fauna
or npm run fauna
. All you need is and admin secret for your database called FGU_SECRET
in .env.local
.
You could also create a local node, which I recommend that you do. This app consumes a lot of read and write operations, which might incur costs when using a cloud hosted instance of FaunaDB. See Set up Fauna GQL Upload with Fauna Dev to learn how to run a local Fauna database.
npm i -g fauna-shell
docker pull fauna/faunadb:latest
docker run --name faunadb -p 8443:8443 -p 8084:8084 -v /var/lib/faunadb fauna/faunadb
fauna add-endpoint http://localhost:8443 --alias localhost --key secret
fauna create-database fauna-dev --endpoint=localhost
fauna create-key fauna-dev --endpoint=localhost
in .env.local
FGU_SECRET=[secret from the previous step]
NEXT_PUBLIC_GRAPHQL_KEY=secret
in .fauna.json
"region": "local"
docker start faunadb
You need to create a file called .env.local
.
Then check out the .env.local.example to see the required environment variables. Among these variables are:
CLIENT_ID
. This is your Twitchclient_id
which you get from creating an application through the Twitch developer console.CLIENT_SECRET
. This is your TwitchCLIENT_SECRET
which you also get from the Twitch developer console.GOOGLE_API_KEY
. This is an API key for making requests to the YouTube Data API. You can generate this key by going to your Google Cloud Console. Don't forget to enable the YouTube Data API for your project.NEXT_PUBLIC_FAUNA_API_ENDPOINT
. This is the endpoint your FaunaDB instance. If you are running a cloud instance, this will behttps://db.fauna.com
. Local databases usehttp://localhost:8443
.NEXT_PUBLIC_FAUNA_GRAPHQL_ENDPOINT
. This is the endpoint of the FaunaDB GraphQL API. Usehttps://graphql.fauna.com/graphql
for cloud instances, andhttp://localhost:8084/graphql
for local instances.NEXT_PUBLIC_GRAPHQL_KEY
. This is an API key with the rolepublic
. Thepublic
role is created when you runyarn fauna
ornpm run fauna
.FGU_SECRET
. This should be an admin key for your database. You can create this key in the security tab on your Fauna dashboard, or by following the article mentioned above.FGU_API_ENDPOINT
. This should be the same asNEXT_PUBLIC_FAUNA_API_ENDPOINT
if you are running FaunaDB locally. This should only be present in development environments.FGU_GRAPHQL_ENDPOINT
. This should behttp://localhost:8084
if you are running FaunaDB locally. This should only be present in development environments.
This is a Next.js project bootstrapped with create-next-app
.
First, run the development server:
npm run dev
# or
yarn dev
Open http://localhost:4000 with your browser to see the result.
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.