β‘ Descubre los repositorios mΓ‘s calientes de GitHub antes de que se vuelvan virales.
RepoWall es un agregador pΓΊblico de solo lectura que detecta automΓ‘ticamente proyectos emergentes y virales en GitHub, ordenados mediante Star Velocity (Velocidad de Estrellas). Esta mΓ©trica es la ΓΊnica capaz de capturar el verdadero impacto de un software naciente de forma honesta. Sin registros, sin bases de datos tradicionales y sin infraestructura compleja de backend. Solo seΓ±al pura y directa.
El ecosistema de RepoWall estΓ‘ dividido en dos piezas completamente independientes:
Un flujo automatizado en GitHub Actions que se ejecuta diariamente a las 08:00 UTC.
- BΓΊsqueda Inteligente: Consulta la API de GitHub en paralelo usando tres bΓΊsquedas minuciosamente calibradas.
- Filtro Anti-Spam: Limpia los resultados de repositorios inflados artificialmente o granjas de bots.
- Persistencia: Guarda instantΓ‘neamente la captura consolidada en un archivo JSON alojado en un GitHub Gist privado. Este Gist actΓΊa como nuestra base de datos histΓ³rica e indestructible. Si la interfaz web se apaga maΓ±ana, tus datos sobreviven intactos en el Gist.
Una interfaz moderna construida sobre React + Vite. Al cargar la pΓ‘gina, consulta la URL cruda del Gist, procesa la informaciΓ³n y renderiza las tarjetas en un muro adaptativo estilo Masonry con cΓ‘lculo dinΓ‘mico de alturas. Al ser un sitio estΓ‘tico puro, se puede desplegar gratis en cualquier lugar (Vercel, Netlify, Cloudflare Pages) sin costes de servidor.
Cada maΓ±ana, el pipeline procesa tres niveles de bΓΊsqueda automatizada para capturar el software en sus distintas fases de madurez:
| Tipo de SeΓ±al | Consulta API (GitHub Search) | Objetivo de Captura |
|---|---|---|
| π₯ ExplosiΓ³n Inmediata | stars:>500 created:>2025-01-01 forks:>50 size:>200 | Proyectos nacidos este aΓ±o que ya han explotado de forma masiva. |
| π TracciΓ³n Temprana | stars:>100 created:>last 3 months forks:>20 size:>200 | Software muy reciente que mantiene un crecimiento sΓ³lido y orgΓ‘nico. |
| π± Radar de Emergencias | stars:50..500 created:>last 3 months forks:>10 size:>200 | Joyas ocultas en su fase mΓ‘s temprana (aquΓ nacen los virales reales). |
Los datos brutos de las tendencias en GitHub suelen estar llenos de ruido y bots. Para garantizar un feed de alta calidad, RepoWall aplica filtros estrictos antes de registrar cualquier repositorio en el Gist:
![][image1]Los proyectos legΓtimos rara vez superan un ratio del 40% de forks sobre estrellas. Los repositorios que superan este umbral suelen estar inflados artificialmente (los bots aΓ±aden stars pero no hacen fork). Esta regla elimina de raΓz el spam mΓ‘s agresivo del feed.
- Al aplicar size:>200 directamente en las consultas, excluimos repositorios fantasma o que solo contienen un archivo README.md vacΓo. Un proyecto con cΓ³digo real debe pesar al menos 200KB.
En el cliente, los repositorios no se ordenan por su volumen total de estrellas, sino por su velocidad de crecimiento por dΓa desde su creaciΓ³n:
velocity = stargazers_count / Math.max(age_in_days, 1)
π― FilosofΓa del Muro: Un repositorio que ha conseguido 10k estrellas en 30 dΓas es infinitamente mΓ‘s rompedor y relevante que uno con 100k estrellas acumuladas a lo largo de 2 aΓ±os. Este cΓ‘lculo posiciona las tendencias reales en la cima de tu muro sin importar el peso histΓ³rico de los gigantes antiguos.
Cada tarjeta en el muro interactivo despliega un set completo de seΓ±ales analΓticas directamente mapeadas desde la API de GitHub:
+---------------------------------------------------------+
| π username / repository-name π | -> Enlace directo a GitHub
| Beautifully detailed app description text... | -> Atenuado si estΓ‘ vacΓo
| |
| [β TypeScript] | -> Badge con color oficial
| β 12.4k π 1.2k ποΈ 342 | -> MΓ©tricas clave (Watchers reales)
| [web] [react] [vite] [+2 more] | -> Lista de hasta 4 tΓ³picos
| ----------------------------------------------------- |
| π Pushed 2 hours ago | -> SeΓ±al de actividad viva
| π
Created 2 weeks ago | -> AntigΓΌedad del proyecto
| β‘ Discovered 3 days ago | -> Registro de RepoWall
+---------------------------------------------------------+
β¨ Efecto Visual: Los bordes de las tarjetas se iluminan con un sutil resplandor dinΓ‘mico utilizando el color exacto de su lenguaje de programaciΓ³n principal al pasar el cursor. Los repositorios sin lenguaje definido adoptan un elegante destello blanco.
ββββββββββββββββββββββββββ
β GitHub Search API β
βββββββββββββ¬βββββββββββββ
β
βΌ (EjecuciΓ³n Diaria Cron)
ββββββββββββββββββββββββββ
β GitHub Actions Infra β βββΊ Filtro Ratio de Forks (β€ 0.40)
βββββββββββββ¬βββββββββββββ
β
βΌ (Upsert Automatizado)
ββββββββββββββββββββββββββ
β GitHub Gist (JSON DB) β βββΊ Base de datos serverless e incremental
βββββββββββββ¬βββββββββββββ
β
βΌ (Carga dinΓ‘mica / Fetch on mount)
ββββββββββββββββββββββββββ
β React Frontend β βββΊ Ordena por Star Velocity
βββββββββββββ¬βββββββββββββ βββΊ Filtra por Idioma / Estrellas / Forks
β
βΌ (Despliegue EstΓ‘tico)
ββββββββββββββββββββββββββ
β Vercel / Edge Host β
ββββββββββββββββββββββββββ
Crea un repositorio para el script automatizado e inyecta las siguientes claves dentro de tus GitHub Repository Secrets:
| Secreto | DescripciΓ³n | Valor Requerido |
|---|---|---|
| GIST_ID | Identificador ΓΊnico del almacenamiento. | El ID extraΓdo de la URL de tu Gist privado. |
| GIST_TOKEN | Token de autenticaciΓ³n seguro. | Tu Personal Access Token (PAT) de GitHub con permisos para gist y public_repo. |
Para enlazar la aplicaciΓ³n de React con los datos del Gist de manera segura sin exponer la URL privada en tus commits, configura esta variable en tu archivo .env.local de desarrollo o en el panel de variables de tu frontend hosting favorito (Vercel en mi caso):
VITE_API_URL=[https://gist.githubusercontent.com/\](https://gist.githubusercontent.com/){tu\_usuario}/{id\_del\_gist}/raw/repowall.json
- Pipeline de Datos: Node.js 24 & GitHub Actions CI/CD.
- Almacenamiento Core: GitHub Gist (Persistencia JSON).
- Capas del Frontend: React 18, Vite & TypeScript.
- Estilos e Interfaz: Tailwind CSS v4 & componentes accesibles de shadcn/ui.
- Layout DinΓ‘mico: Muro estructural Masonry adaptativo con cachΓ© de altura en el cliente.
- Tratamiento del Tiempo: Formateo Γ‘gil de fechas relativas mediante date-fns.
- Paquete de Iconos: Lucide React.
- Alojamiento: Vercel (Optimizada para despliegues estΓ‘ticos globales).
- DetecciΓ³n de Granjas de Bots: El filtro de ratio de horquillas es altamente efectivo pero no infalible frente a ataques de spam avanzados que imitan comportamiento humano coordinado.
- LΓmite de Almacenamiento del Gist: GitHub limita los archivos individuales de Gist a un mΓ‘ximo de 1MB. Con un crecimiento estimado de ~3 nuevos repositorios vΓ‘lidos detectados al dΓa, esto garantiza aproximadamente 2 aΓ±os de historial continuo antes de necesitar implementar compresiΓ³n o paginaciΓ³n.
- Marcas de Tiempo Iniciales: Tras la primera inicializaciΓ³n, todos los repositorios existentes heredarΓ‘n el mismo timestamp de first_seen. El rastreo y diferenciaciΓ³n cronolΓ³gica empezarΓ‘ normalmente a partir de la segunda ejecuciΓ³n del script.
Pensando...
Hecho con β€οΈ por Aisurf3r
β‘ Discover the hottest GitHub repositories before everyone else does.
RepoWall is a read-only public aggregator that surfaces new and viral GitHub projects automatically, sorted by star velocity β the only metric that truly captures groundbreaking projects. No accounts, no database, no backend. Just signal.
RepoWall is split into two independent pieces:
A GitHub Actions workflow that runs once a day at 08:00 UTC.
- Intelligent Querying: It queries the GitHub Search API in parallel with three carefully tuned queries.
- Spam & Inflation Filter: It filters out spam and artificially inflated repos.
- Database-less Storage: Writes the results to a private GitHub Gist as a JSON snapshot. This Gist is the database. It grows over time, accumulating a permanent historical record. If you shut down the frontend app tomorrow, your data survives.
A React + Vite app that reads the Gist at load time and renders the repos in a responsive masonry wall. Fully static, deployable anywhere (Vercel, Netlify, Cloudflare Pages) with zero hosting costs.
Three GitHub Search API queries run in parallel on every daily update to capture projects at different life stages:
| Target Signal | API Query Structure | Purpose |
|---|---|---|
| π₯ Immediate Explosion | stars:>500 created:>2025-01-01 forks:>50 size:>200 | New projects born in 2025 that already exploded |
| π Early Traction | stars:>100 created:>last 3 months forks:>20 size:>200 | Recent projects with solid early traction |
| π± Emerging Radar | stars:50..500 created:>last 3 months forks:>10 size:>200 | Emerging projects before everyone knows them (where the real gold is) |
Raw GitHub trending data is noisy. Star farming is real and widespread. RepoWall applies strict filters before anything enters the Gist:
![][image1]Legitimate projects rarely exceed a 40% fork-to-star ratio. Repos above this threshold are systematically inflated β bots star but don't fork. This single rule eliminates the most egregious spam from the feed.
- By applying size:>200 in the queries, we exclude pure README repos with no real code. A project with substance has at least 200KB of content.
Repos are sorted client-side by stars per day since creation:
velocity = stargazers_count / Math.max(age_in_days, 1)
π― Mural Philosophy: A repo with 10k stars in 30 days is infinitely more disruptive and interesting than one with 100k stars accumulated over 2 years. This surfaces genuinely new, exploding projects at the top regardless of their absolute star count.
Each card displays a comprehensive set of analytical signals directly mapped from the GitHub API:
+---------------------------------------------------------+
| π username / repository-name π | -> Direct link to GitHub
| Beautifully detailed app description text... | -> Muted if empty
| |
| [β TypeScript] | -> Badge with official color
| β 12.4k π 1.2k ποΈ 342 | -> Key stats (Real watchers)
| [web] [react] [vite] [+2 more] | -> Topic list (max 4 visible)
| ----------------------------------------------------- |
| π Pushed 2 hours ago | -> Code activity signal
| π
Created 2 weeks ago | -> Project age
| β‘ Discovered 3 days ago | -> First seen on RepoWall
+---------------------------------------------------------+
β¨ Visual Feedback: Card borders glow with a subtle dynamic outline in their primary language color on hover. Repos without a defined language get a sleek white border.
ββββββββββββββββββββββββββ
β GitHub Search API β
βββββββββββββ¬βββββββββββββ
β
βΌ (Daily Cron Run)
ββββββββββββββββββββββββββ
β GitHub Actions Infra β βββΊ Fork ratio filter (β€ 0.40)
βββββββββββββ¬βββββββββββββ
β
βΌ (Automated Upsert)
ββββββββββββββββββββββββββ
β GitHub Gist (JSON DB) β βββΊ Serverless persistent record
βββββββββββββ¬βββββββββββββ
β
βΌ (Fetch on Mount)
ββββββββββββββββββββββββββ
β React Frontend β βββΊ Sorts by Star Velocity
βββββββββββββ¬βββββββββββββ βββΊ Filter by Language / Stars / Forks
β
βΌ (Static Deploy)
ββββββββββββββββββββββββββ
β Vercel / Edge Host β
ββββββββββββββββββββββββββ
Add these to your GitHub Repository Secrets:
| Secret Key | Description | Required Value |
|---|---|---|
| GIST_ID | The unique ID of your storage Gist. | The ID from your private Gist URL. |
| GIST_TOKEN | Security authentication token. | Personal Access Token (PAT) with gist + public_repo scopes. |
To link your React app securely with your data Gist without exposing it in your public repository commits, configure this variable in your .env.local or your favourite frontend hosting dashboard (Vercel in my case):
VITE_API_URL=[https://gist.githubusercontent.com/\](https://gist.githubusercontent.com/){your\_username}/{gist\_id}/raw/repowall.json
- Data Pipeline: Node.js 24 & GitHub Actions
- Storage Core: GitHub Gist (JSON persistence)
- Frontend Layers: React 18, Vite & TypeScript
- Styling & UI: Tailwind CSS v4 & custom shadcn/ui components
- Dynamic Layout: Responsive Masonry with DOM measurement + height cache
- Dates & Timing: Relative formatting with date-fns
- Icons Package: Lucide React
- Hosting: Vercel (Optimized static hosting)
- Star Farming Detection: The fork ratio filter catches most automated operations but highly sophisticated farms can evade it.
- Gist Storage Limit: GitHub limits individual Gist files to 1MB. At our current growth rate of ~3 new repos/day, this gives roughly 2 years of runtime before needing data compression or pagination.
- Initial Discovery Timestamps: On the very first run, all repos will receive the same first_seen timestamp. Timestamps will differentiate normally starting from day two.
Thinking...
Made with β€οΈ by Aisurf3r