WebRoll is an open-source web discovery platform built with Astro and React that lets users submit websites for review and then browse approved sites via a random "roll" mechanic.
What is WebRoll?
WebRoll is a community-driven website directory where users submit URLs, categorize them, and discover other people's submissions through a random exploration interface. It takes a website URL as input, along with a category and user-entered tags, and after moderator approval outputs a shareable listing with view counts and likes. The platform runs on Astro with React components, uses DaisyUI and TailwindCSS for styling, and is deployed on Vercel. The project is maintained by developer burhan-syed, who also built the companion Fastify parser service.
Key Features
- Random roll discovery — The explore page shows one random approved site per click of the "Next" button, with optional filtering by preset categories.
- Moderated submission queue — Submitted websites are parsed and placed in a review queue; only moderator-approved sites enter the public database.
- Likes and reporting — Users can like sites to save them for later and can report entries with mislabeled categories, tags, or broken links.
- Per-site statistics pages — Each approved site gets a unique page under /sites showing how many times it was viewed and how many likes it received, and the page is shareable.
- History page — Added in version 0.2, it lets users easily revisit sites they have previously rolled.
- Automated screenshot backups — Playwright captures screenshots of each submitted site on a separate Fastify server, stored in an S3 bucket, for cases where site embedding is not possible.
- Rate limiting with Upstash Redis — API requests are rate-limited through an Upstash Redis cache to protect the service.
Who is it for?
- Internet discoverers — Use the "Next" button to find interesting, human-vetted websites without searching.
- Site creators — Submit their own projects to gain visibility and track likes and views through the public statistics page.
- Community moderators — Manage the approval queue to keep the directory high-quality.
- Astro developers — Use the codebase as a reference for building a full-stack Astro app with React islands, Prisma ORM, authentication, and external services.
What can you do with WebRoll?
- Explore curated websites: Press "Next" on the explore page to see a random approved site; narrow results by category.
- Submit a website: Enter a URL, select a category, and add tags; the site is then parsed and queued for moderator approval.
- Track a site's performance: View the unique page for any approved site to see view and like counts.
- Fork the project: Clone the repository, follow the .example.env file, and run "yarn dev" or "npm run dev" to run a local instance.
How does WebRoll work?
- A user submits a website URL with a category and tags.
- WebRoll parses the URL and places the submission into a moderation queue.
- A moderator approves or rejects the submission.
- Approved sites appear in the explore rotation and receive a unique /sites page.
- Users roll through sites, like them, or report issues.
The underlying stack includes Astro, React, TypeScript, TailwindCSS, DaisyUI, Prisma with MySQL, Upstash Redis, Playwright, and S3 storage.
FAQ
Is WebRoll open source?
Yes. The source code is publicly available on GitHub, and the README describes how to clone, configure, and run the project locally.
What does WebRoll do?
WebRoll is a website discovery platform. It accepts submissions of websites, organizes them by category and tags, requires moderator approval, and then lets visitors explore approved sites randomly by pressing "Next".
How are sites approved?
Submissions go into a queue that moderators review. The site is parsed first, and if the moderator approves, it becomes part of the public directory. If a user finds a site with wrong categories or broken links, they can report it.
What technologies does WebRoll use?
The main app is built with Astro and React, styled with DaisyUI and TailwindCSS, and uses a MySQL database with Prisma. It also uses Upstash Redis for rate limiting, Playwright for screenshots, and runs on Vercel.
Does WebRoll have a mobile app?
The README does not mention a mobile app; it is a web application.