Overview:
WebRoll.io is a website that allows users to submit and discover commendable creations on the internet. Users can submit websites, which are then reviewed by moderators and added to the database of approved sites. Users can discover new sites by pressing the “Next” button on the explore page, with the ability to narrow down the scope by selecting from preset categories. They can also save sites by liking them and report any issues with categories, tags, or broken websites.
Features:
- Website Submission: Users can submit websites for others to discover.
- Categorization and Tagging: Users can select from predefined categories and freely enter tags to properly catalogue the site.
- Moderator Review: Submitted sites are reviewed by moderators before being added to the database of approved sites.
- Random Site Discovery: Users can discover random sites from the approved database by pressing the “Next” button on the explore page.
- Category Filtering: Users can narrow down the websites shown by selecting from preset categories.
- Saving Sites: Users can save sites by leaving a like.
- Reporting Issues: Users can report miss-labeled categories, tags, or broken websites.
- Site Information: Each submitted site has a unique page in the /sites directory with information such as views and likes.
Installation:
To install and run the WebRoll.io website, follow these steps:
- Clone this repository.
- If you want to screenshot sites, set up the screenshot repository.
- Follow the instructions in the .example.env file to create a .env file with the necessary environment variables. The
DATABASE_URLvariable is strictly necessary, but other variables are needed for AWS, authentication, and email service. If no Upstash variables are provided, you will need to clear the rate-limit check.
Run the following command to install and run the website:
npm install
npm run dev
Alternatively, you can use the Yarn package manager:
yarn install
yarn dev
Summary:
WebRoll.io is a platform where users can submit and discover commendable creations on the internet. It allows users to submit websites, which are then reviewed by moderators and added to a database for discovery. Users can explore random sites, filter by categories, save sites, and report any issues. The website is built with Astro and React with Typescript, styled with DaisyUI and TailwindCSS. The MySQL database is queried and managed with Prisma, and Rate-limiting is handled with an Upstash Redis cache. Overall, WebRoll.io provides an easy and organized way for users to discover new and interesting websites.