Docs
Every card is a plain URL that returns an SVG. Compose it in the builder or by hand using the params below.
Base URL
https://doodlebug.tarinagarwal.in/api/card/<type>?username=<github-login>&theme=<theme>&…
- Boolean params accept
true/false. Lists are comma separated. - Responses are cached for 30–60 minutes and served with cache headers that GitHub's image proxy respects.
- If the username belongs to a Doodlebug account with a saved token, that token is used automatically — otherwise data comes from GitHub's public API and public contribution graph.
- Errors are returned as an error card (still an image), so your README never shows a broken picture.
Stats
/api/card/statsStars, commits, PRs, issues and a hand-drawn rank ring.

| param | what it does | example |
|---|---|---|
hide | Comma list: stars, commits, prs, issues, contribs | |
show | Extras: merged, reviews, followers, repos, forks | |
commits | all (default, all-time) or year | |
hide_rank | Hide the rank ring | |
show_icons | false to hide row icons | |
theme | Colour theme | chalkboard |
bg / ink / accent / accent2 / muted | Override any theme colour (hex, no #) | accent=ff5da2 |
grid | Background decoration: none, dots, lines, grid | |
hide_border | Remove the sketched border | true |
hide_title | Remove the title | |
title | Custom title text | |
doodles | false removes decorative sparkles/squiggles | |
animate | false disables the fade-in | |
seed | Any string — changes the wobble pattern |
Top languages
/api/card/langsYour most used languages as sketched bars, a donut, a pie or a compact strip.

| param | what it does | example |
|---|---|---|
layout | bars (default), donut, pie, compact | |
langs_count | 1–12 languages | 8 |
hide | Comma list of languages to skip | html,css |
theme | Colour theme | chalkboard |
bg / ink / accent / accent2 / muted | Override any theme colour (hex, no #) | accent=ff5da2 |
grid | Background decoration: none, dots, lines, grid | |
hide_border | Remove the sketched border | true |
hide_title | Remove the title | |
title | Custom title text | |
doodles | false removes decorative sparkles/squiggles | |
animate | false disables the fade-in | |
seed | Any string — changes the wobble pattern |
Streak
/api/card/streakTotal contributions, current streak in a flame ring, and longest streak.

| param | what it does | example |
|---|---|---|
theme | Colour theme | chalkboard |
bg / ink / accent / accent2 / muted | Override any theme colour (hex, no #) | accent=ff5da2 |
grid | Background decoration: none, dots, lines, grid | |
hide_border | Remove the sketched border | true |
hide_title | Remove the title | |
title | Custom title text | |
doodles | false removes decorative sparkles/squiggles | |
animate | false disables the fade-in | |
seed | Any string — changes the wobble pattern |
Contribution doodle
/api/card/activityA wobbly heatmap of your recent contributions.

| param | what it does | example |
|---|---|---|
weeks | 8–53 weeks to show | 40 |
legend | false to hide the less/more legend | |
theme | Colour theme | chalkboard |
bg / ink / accent / accent2 / muted | Override any theme colour (hex, no #) | accent=ff5da2 |
grid | Background decoration: none, dots, lines, grid | |
hide_border | Remove the sketched border | true |
hide_title | Remove the title | |
title | Custom title text | |
doodles | false removes decorative sparkles/squiggles | |
animate | false disables the fade-in | |
seed | Any string — changes the wobble pattern |
Activity graph
/api/card/graphA hand-drawn line chart of daily contributions.

| param | what it does | example |
|---|---|---|
days | 7–120 days | 60 |
theme | Colour theme | chalkboard |
bg / ink / accent / accent2 / muted | Override any theme colour (hex, no #) | accent=ff5da2 |
grid | Background decoration: none, dots, lines, grid | |
hide_border | Remove the sketched border | true |
hide_title | Remove the title | |
title | Custom title text | |
doodles | false removes decorative sparkles/squiggles | |
animate | false disables the fade-in | |
seed | Any string — changes the wobble pattern |
Trophies
/api/card/trophiesSketched shields ranked C → SS for stars, commits, PRs, streaks…

| param | what it does | example |
|---|---|---|
columns | 1–9 shields per row | |
hide | Comma list: stars, commits, prs, issues, followers, repos, streak | |
show | Extras: reviews, forks | |
title | Optional title (no title by default) | |
theme | Colour theme | chalkboard |
bg / ink / accent / accent2 / muted | Override any theme colour (hex, no #) | accent=ff5da2 |
grid | Background decoration: none, dots, lines, grid | |
hide_border | Remove the sketched border | true |
hide_title | Remove the title | |
doodles | false removes decorative sparkles/squiggles | |
animate | false disables the fade-in | |
seed | Any string — changes the wobble pattern |
Repo pin
/api/card/repoPin any repository: description, language, stars, forks, topics.

| param | what it does | example |
|---|---|---|
repo | Repository name (required) | my-project |
show_owner | Prefix owner/ | |
theme | Colour theme | chalkboard |
bg / ink / accent / accent2 / muted | Override any theme colour (hex, no #) | accent=ff5da2 |
grid | Background decoration: none, dots, lines, grid | |
hide_border | Remove the sketched border | true |
doodles | false removes decorative sparkles/squiggles | |
animate | false disables the fade-in | |
seed | Any string — changes the wobble pattern |
Skill stickers
/api/card/skillsYour stack as sketched stickers — no GitHub data required.

| param | what it does | example |
|---|---|---|
skills | Comma list | TypeScript,React,Go |
icons | name:icon pairs | Go:bolt,React:code |
columns | Fixed columns (default: flow) | |
width | Card width | |
theme | Colour theme | chalkboard |
bg / ink / accent / accent2 / muted | Override any theme colour (hex, no #) | accent=ff5da2 |
grid | Background decoration: none, dots, lines, grid | |
hide_border | Remove the sketched border | true |
hide_title | Remove the title | |
title | Custom title text | |
doodles | false removes decorative sparkles/squiggles | |
animate | false disables the fade-in | |
seed | Any string — changes the wobble pattern |
Sticky note
/api/card/noteA taped note with handwritten text. Great for a hello or a quote.

| param | what it does | example |
|---|---|---|
text | Note text (required) | |
author | Signature line | |
size | Font size 12–36 | |
font | hand, title or kalam | |
width | Card width | |
theme | Colour theme | chalkboard |
bg / ink / accent / accent2 / muted | Override any theme colour (hex, no #) | accent=ff5da2 |
grid | Background decoration: none, dots, lines, grid | |
hide_border | Remove the sketched border | true |
doodles | false removes decorative sparkles/squiggles | |
animate | false disables the fade-in | |
seed | Any string — changes the wobble pattern |
Project
/api/card/projectYour own title, description, tags and link — optionally merged with live repo stats.

| param | what it does | example |
|---|---|---|
name | Project title | |
desc | Description (up to ~400 chars) | |
tags | Comma list of tech tags | Node,TypeScript,MongoDB |
link | URL shown in the footer | |
badge | Small ribbon text | %2336 Product of the Day |
icon | Header icon name | cat |
username + repo | Also show language / stars / forks from that repo | |
width | Card width (default 440) | |
lines | Max description lines (default 4) | |
theme | Colour theme | chalkboard |
bg / ink / accent / accent2 / muted | Override any theme colour (hex, no #) | accent=ff5da2 |
grid | Background decoration: none, dots, lines, grid | |
hide_border | Remove the sketched border | true |
doodles | false removes decorative sparkles/squiggles | |
animate | false disables the fade-in | |
seed | Any string — changes the wobble pattern |
Achievements
/api/card/achievementsHackathon wins, awards, certifications — as numbered hand-drawn medals.
%20%26%20Buildverse%202025;Runner-up:%20GameForge%2C%20CodeSprint%2C%20Hacksphere%202025;Top%20100:%20Hackhazards%202025%20(8000%2B%20participants);3rd%20place:%20Hackman%20V8%20DSCE&theme=paper)
| param | what it does | example |
|---|---|---|
items | Semicolon-separated list. Write each item as Label: detail — the medal colour follows the label (winner, runner-up, 3rd, top...) | Winner: Buildverse 2025;Top 100: Hackhazards |
width | Card width (default 495) | |
theme | Colour theme | chalkboard |
bg / ink / accent / accent2 / muted | Override any theme colour (hex, no #) | accent=ff5da2 |
grid | Background decoration: none, dots, lines, grid | |
hide_border | Remove the sketched border | true |
hide_title | Remove the title | |
title | Custom title text | |
doodles | false removes decorative sparkles/squiggles | |
animate | false disables the fade-in | |
seed | Any string — changes the wobble pattern |
Link sticker
/api/card/linkA hand-drawn button for portfolio, LinkedIn, email... wrap it in a link in your README.

| param | what it does | example |
|---|---|---|
label | Button text | Portfolio |
sub | Small second line | tarinagarwal.in |
icon | Icon name | globe, linkedin, mail, cat, x, youtube, doc |
style | sticker (filled, default) or outline | |
size | Font size 12-30 | |
width | Fixed width (default: auto) | |
theme / colours | Same as other cards |
Themes
Use theme=<key>. Override individual colours with bg, ink, accent, accent2, muted (hex without #).
papernotebookgridstickykraftsakuraforestoceancandychalkboardblueprintmidnightgraphitedraculaIcons
Names usable in banner?icons= and skills?icons=Skill:icon:
externallinklinkedinxinstagramyoutubebriefcasedocphonediscordmediumdevnpmstarforkcommitprissueeyeheartfiretrophycalendarbookpeoplerocketcoderepoclockpinbugcoffeeboltbranchcheckfoldersparklegraphcatpencilmoonglobemailhashsmileSelf-hosting
Doodlebug is a Next.js app. Clone the repo, copy .env.example to .env.local, fill in MongoDB + SMTP, and deploy to Vercel. Set GITHUB_TOKEN to give public cards a higher rate limit.