Live GitHub identity cards, animated SVGs, profile racks and a daily repository arena.
Open Gallery · Build a Card · Rack API · Daily Battle
DevQuest turns public GitHub data into polished, cacheable SVG profile cards. Pick from 42 templates, 27 themes, real contribution data, official technology icons and personal profile fields. Export one card, compose a multi-card rack, collect guestbook signatures, or submit a repository to Daily Battle.
- Personal cards: About Me, Social Links, Avatar Hero and a fully personal Daily Focus card.
- Animated flat SVGs: Aurora and Commit Pulse with
pulse,bounce,scanlineandglitchmodes. - Rack API: combine up to six live cards into one row or vertical profile strip.
- Icon constructor: search 300 devicons, reorder selections and share the resulting
icons=URL. - One-click presets: hacker, devrel, gamer and startup profile packs.
- Eight premium themes: graphite, ivory, sage, slate, sand, ink, porcelain and midnight.
- Six new ASCII scenes including Octocat Constellation, Contribution Skyline and Repository Vault.
- Custom avatar override: paste a public HTTPS image URL in the constructor; empty keeps the GitHub avatar.
- Refero-style gallery redesign with sticky header, hero search, category pills and large visual cards.
- Inline template customizer directly inside the gallery modal: template, art style, theme, title, accent, ASCII, stats, PNG download, X share, Markdown and HTML embeds.
- Working template search over all registered cards.
- Daily Battle: Product Hunt-style daily repository leaderboard.
- GitHub star gate: users must sign in with GitHub and star
yiaany/devquestbefore submitting a project. - Local media uploads: thumbnail/logo and screenshots are uploaded directly from desktop or phone and stored as base64 data URLs.
- Daily reset at
12:00Yekaterinburg time (07:00 UTC) with yesterday's winners. - Upvotes and comments for submitted repositories.
- Live SVG battle badge for README embeds showing current upvotes.
- Rebuilt
Main Languagefrom scratch around real devicon artwork and overflow-safe layout.
Every image below is rendered live from GitHub data.
- 42 card templates across profile, stack, vibe, repository and interactive categories.
- 15 art-style frames: terminal, neobrutalism, glass, pixel, minimal, outrun, blueprint, sketch, sticker, tape, hologram, newspaper, arcade, polaroid, circuit.
- 27 themes, including graphite, ivory, sage, slate, sand, ink, porcelain and midnight.
- 46 ASCII arts for terminal-style templates.
- Constructor with icon search, personal fields, presets, animation controls and rack preview.
- Markdown, HTML, PNG export and X sharing.
- GitHub OAuth via NextAuth.
- Guestbook card with live signatures and owner moderation.
- Daily Battle with submissions, votes, comments, media gallery, makers, licenses and yesterday's winners.
All cards are selected via ?template=<id>.
| Category | Templates |
|---|---|
| Profile | terminal · neofetch · heatmap · wrapped · id-card · rank-badge · profile-hero · about-me · avatar-hero · commit-pulse · signal-orbit · stat-grid · stat-spark · receipt · shields · account-age · follower-ratio · contribution-gauge · streak-flame · pr-badge · poll |
| Stack | language-donut · tech-stack · skill-bars · language-ladder · language-crown · polyglot · stack-shelf · toolshelf · monster-stack · code-streak |
| Vibe | code-weather · mood-ring · quote · social-links · aurora · now-playing |
| Repository | top-repos · stars-per-repo · repo-scatter · repo-skyline |
| Interactive | guestbook |
Example:
Useful parameters:
template=<card-id>
theme=<theme-name>
style=minimal|glass|terminal|...
icons=typescript,react,nextjs
bio=I+ship+web+apps
avatar=https://example.com/avatar.png
socials=x:user,tg:user,yt:@user
shape=circle|hex|square|badge
anim=pulse|bounce|scanline|glitchCombine several cards into one SVG. layout=stack is the default; layout=row creates a horizontal strip.
PNG export uses the same intrinsic rack dimensions:
/rack/octocat/png?cards=terminal,aurora&layout=rowDaily Battle is a Product Hunt-style ranking for GitHub repositories.
- You must sign in with GitHub.
- You must star
yiaany/devquest. - One submitted repository per GitHub user per battle day.
- The submitted project must be a real GitHub repository.
- The primary link is always computed as the GitHub repository URL.
- Battle day starts at
12:00Yekaterinburg time (07:00 UTC) and lasts 24 hours.
- Name: clean product name.
- Tagline: up to 60 characters.
- Description: up to 260 characters.
- Keywords: up to 3 comma-separated tags.
- Alternative links: optional extra URLs.
- License: project license or
-when absent. - Thumbnail: uploaded locally from desktop/phone.
- Screenshots: minimum 2 uploaded images.
- Video link: optional YouTube URL.
- Makers: comma-separated GitHub usernames.
GET /api/battle -> current + previous battle
POST /api/battle -> submit repository, GitHub auth + star required
POST /api/battle/vote -> toggle upvote
POST /api/battle/comment -> add comment
GET /api/battle/badge/:owner/:repo -> live SVG upvote badgeSubmitted projects can embed a live badge in their README:
[](https://devquest-mu.vercel.app)The Guestbook card turns a README into a living wall.
[](https://devquest-mu.vercel.app/<your-username>/sign)API:
GET /api/guestbook/:owner
POST /api/guestbook/:owner
DELETE /api/guestbook/:owner?at=<ts>
DELETE /api/guestbook/:owner?all=1git clone https://github.com/yiaany/devquest.git
cd devquest
npm install
cp .env.example .env.local
npm run devGITHUB_CLIENT_ID=your_client_id
GITHUB_CLIENT_SECRET=your_client_secret
AUTH_SECRET=your_random_secret_string
NEXTAUTH_URL=http://localhost:3000
# Optional but recommended for higher GitHub API rate limits.
GITHUB_TOKEN=your_personal_access_token
# Durable Daily Battle + Guestbook storage.
# Without Redis/KV, data falls back to in-memory storage and is not durable.
KV_REST_API_URL=your_upstash_rest_url
KV_REST_API_TOKEN=your_upstash_rest_token
# Alternative Upstash env names are also supported.
UPSTASH_REDIS_REST_URL=your_upstash_rest_url
UPSTASH_REDIS_REST_TOKEN=your_upstash_rest_tokenDeploy on Vercel:
npx vercel --prodRequired production settings:
- Add all environment variables above in Vercel.
- Set
NEXTAUTH_URLto the production URL. - Configure GitHub OAuth callback URL.
- Configure Upstash/Vercel KV for durable Daily Battle and Guestbook data.
- Fixed production rack PNG rendering for complex nested SVG cards.
- Rack PNG now rasterizes each card independently before composing the final strip.
- Added devicon, Simple Icons and Tabler rendering pipeline.
- Added stack shelves, personal identity cards, Aurora and real Commit Pulse.
- Added four flat SVG animation modes with static PNG compatibility.
- Added profile racks with row/stack SVG and PNG endpoints.
- Added constructor icon search, personal controls, presets and rack preview.
- Added eight premium themes and six detailed ASCII artworks.
- Rebuilt Main Language with icon-first responsive composition.
- Added validated custom avatar URLs across every avatar-based template.
- Unified the gallery into one filterable grid and polished Daily Battle styling.
- Added redesigned gallery landing page.
- Added inline template customizer modal.
- Added Daily Battle Product Hunt-style repository ranking.
- Added GitHub star gate for submissions.
- Added local media uploads for thumbnails and screenshots.
- Added comments, upvotes, yesterday winners and battle reset timer.
- Added live SVG battle badges.
- Fixed Main Language and Contribution Gauge card layouts.
CC BY-NC-SA 4.0 License (Attribution-NonCommercial-ShareAlike 4.0 International). Free for personal use and modification. Commercial use, reselling, or hosting paid versions is prohibited.