reddit-playbooks

r/coolgithubprojects

MODERATEplaybookView on Reddit ↗

Sharing Github projects just got easier!

Subscribers
78K
Posts/day
17.4
Age
11.9y
Top week
178
Top month
877
Top year
881

Reddit Community Analysis: r/coolgithubprojects

1. Data Sources & Methodology

  • 297 unique posts after deduplication across 4 time periods (all, year, month, week), 4 pages each (16 raw JSON files).
  • Date collected: April 10, 2026
  • Subreddit subscribers: 81,476
  • Score range: 0 to 1,022
  • Median score (full dataset): ~30
  • Top 10 threshold: ~268
  • Top 25 threshold: ~168
  • Top 50 threshold: ~127
  • Top 100 threshold: ~66
PeriodPostsScore RangeApprox MedianNotes
All-time~100110–1,022~160Historical canon: Awk FPS, ButtFish, voice cloning, Rich, Ventoy. Many scoreless LINK posts from 2015–2020.
Year~10030–1,022~115Heavy overlap with all-time; adds 2025–2026 GitHub-meta tools (GitKingdom, RepoRoast, CommitmentIssues).
Month~6017–1,022~40Jan–Mar 2026 launches. Mostly self-posts with detailed writeups.
Week~400–1,022~2Current churn. Large volume of <10-score promotional launches (the real baseline).

Period overlap: Only 5 posts appear in all 4 periods (the week's current viral hits: "I updated my GitHub profile!" at 1,022; "Milla Jovovich AI memory system" at 905; "AlgoFlow Java visualizer" at 205; "rgitui" at 127; "My Theme Sensitive GitHub Readme" at 77). This is a sub where the week's top is often THE top — engagement is highly temporal.

This is a content strategy guide, not a sociological study. The dataset is heavily weighted toward top performers; the long tail of 0–5 score posts is visible only in the week slice, where it dominates.

Cross-subreddit calibration: r/coolgithubprojects peaks at ~1,022 — very low for the implied visibility. Compare:

SubSubscribersAll-time peakMedian
r/programming~6M10,000+50+
r/selfhosted738K9,564200+
r/ClaudeAI~500K8,084100+
r/opensource342K2,25999
r/sideproject~350K~3,000~10
r/somethingimade~90K~2,000~30
r/coolgithubprojects81K1,022~30

This is a small, slow sub with a very shallow ceiling. A "hit" here is 200–500. Canonical top-10 is 300–1,000. There is no viral layer above 1,000 the way r/selfhosted (9K), r/LocalLLaMA (6K), or even r/opensource (2K) have. What this sub lacks in ceiling it makes up for in tolerance: unlike r/opensource, it welcomes raw "I built a cool thing" posts without ideological gatekeeping.


2. Subreddit Character

r/coolgithubprojects is a show-and-tell gallery for novelty, cleverness, and GitHub-native in-jokes — organized as a subreddit but functioning as a variety show. The defining question a post must answer is not "is this useful?" but "is this cool?" Utility is optional; novelty, whimsy, or impressive technical stunts are mandatory. A perfectly serviceable CRM or rate limiter will score 30; a Tamagotchi that lives in your bash prompt scores 507.

Product launches are not just tolerated but welcomed — this is the sub's primary content type. There is no anti-promotion rule, no karma gate, no "Promotional" flair used as a shame mark. Every post in the top 25 that uses a self-post format is some form of "I built X, here it is." The only rule from the sidebar is: projects MUST be hosted on GitHub (other hosts like GitLab will be removed). Language flair is auto-assigned. Repost policy allows reposts only if the project got new features and the original was 6+ months old.

Humor works, and so do jokes about GitHub itself. The single highest-engagement archetype is "meta-GitHub projects": tools that do something silly with your GitHub profile, contribution graph, or repos. GitKingdom (589): turn repos into a fantasy kingdom. GitCity (220, 198): turn contributions into a drivable 3D city. CommitmentIssues (216, 30): death certificate for abandoned repos. RepoRoast (142): AI roasts your codebase. gitsugi (24): fill contribution graph gaps with kintsugi gold. GitQuest (112): RPG where your commits defeat The Merge Conflict. GitWrapped, GitHub Profile README generators, the literal post "I updated my GitHub profile!" (1,022) — these are the heart of the sub. If your project uses the GitHub API to make fun of GitHub itself, you've found the magic formula.

Absurdist/joke projects reliably outperform serious ones. ButtFish (263) — "Effortlessly transmitting Morse Code of chess moves to your butthole" — is in the top 15. TrumpScript (148), FOAAS (166), Volkswagen (115) "detects when your tests are being run in a CI server and makes them pass", like-my-gf Instagram bot (306, 148), Psychological Alarm (31) "wakes you up randomly just to tell you you still have time", ButtFish-adjacent weirdness, docx-you-want (143) "turn PDF into perfectly formatted but 'fake' DOCX", echo rewritten in x86 assembly for no reason (134), awk-raycaster (168), fattest cat at SF animal shelter scraper (110). These would be anti-patterns on r/programming and r/opensource. Here they are canon.

Technical level is intermediate-to-high but broad. Readers are working devs, students, hobbyists, and tinkerers who can read a README, understand a tech stack list, and appreciate a clever hack. They are NOT the r/programming crowd that wants language theory; they're the r/sideproject crowd with an aesthetic filter set to "cool." They tolerate AI-assisted code (see values below) and are genuinely impressed by raw star counts when they're earned.

Core cultural values, ranked:

  1. Novelty and cleverness over utility. The question is always "is this a thing I haven't seen before?" Not "would I use this?" Incremental improvements to existing tools (another Markdown editor, another file converter, another rate limiter) score 10–30. Genuinely novel ideas — even if useless — score 200+.
  2. GitHub-native meta-humor. The community LOVES projects that do something with GitHub data: contribution graphs as art, profiles as RPG stats, repos as death certificates, star counts as building sizes. This is their inside joke and it always works.
  3. Terminal/TUI aesthetic. Terminal-based tools, TUIs, CLI dashboards, bash/zsh integrations, and text-mode games get disproportionate love. Sampler (225), Rich (192), mangadesk (193), Serie git graph (173), serpentine (168 awk raycaster), timetrace (127), periodic table on CLI (183), sshb Tamagotchi (507), rgitui (127), Bluekeys (28), TSM (33), sshz (19). The aesthetic signal (Nord, Catppuccin, Tokyo Night, Dracula) is recognized and upvoted.
  4. Self-hosted and privacy-first framing. "Runs locally, no cloud, no API keys" is nearly a mandatory phrase for AI-touching projects. Crucix intelligence terminal (908), DevGlobe (302), Iran conflict dashboard (260), CyberDeck (119), OmniSearch (51), QwenVoice (36, 31), HearoPilot offline meeting assistant (10, 2) all lean on this.
  5. Mixed feelings on AI-assisted code. Unlike r/opensource (which has a literal rule banning AI-generated content), r/coolgithubprojects is neutral-to-tolerant. The top post of the week — "I ran 12 AI agents on one laptop" (71) — and many top launches openly disclose "built with Claude Code" and still score 200+. But the downvote ratio is where skepticism shows up. Disclosures like "vibe coded with Claude Code in 7 days" (Git City, 198 with 0.98 ratio) land fine when the output is genuinely cool. Posts that feel AI-overproduced or that read like AI-ghostwritten marketing (Inkwell at 66 score, 0.68 ratio, 97 comments — a full comment-section riot) get punished. Disclosing AI is smart; sounding AI-written is fatal.
  6. Stars-earned, not stars-demanded. Posts that mention earning stars organically ("managed to hit 1k stars", "400+ stars in 7 days") are celebrated. Posts that beg ("if you like it, drop a star", "please star the repo 🙏") are tolerated but commented upon. Posts that use star counts as marketing ("6,900 stars on GitHub!" in the title — ToolJet, 141 score, 0 comments, 0.95 ratio) do NOT viralize the way they might on r/programming.

Enforcement mechanisms:

  • Rule: GitHub hosting only. The sidebar explicitly says "The projects you post all have to be hosted on Github." Linking a GitLab/Bitbucket/SourceHut repo is removal grounds. This is the only hard rule.
  • Rule: Repost only with new features + 6-month gap. The sidebar allows reposts when "some new features were added to the project and if the original post was 6+ months ago." Prevents spam of the same launch. In practice you see the same project (SurfSense, kana-dojo, Snowify, QwenVoice, certctl, commitmentissues, git-lrc) posted 2–4 times within a few months by the same author, and each iteration scores less as the novelty fades.
  • Auto-assigned language flair. The sidebar says "Language Flair: Will be assigned automatically for you!" This is mostly true — flairs correspond to the dominant language of the repo. OTHER is used liberally and correlates with anything non-standard.
  • No visible mod action on promotion. Unlike r/opensource, there is no blacklist, no karma farming rule, no repeat-author policy. Mods appear hands-off. The community self-polices through downvotes and comment sections — a bad post dies in the ratio, not via removal.
  • Commenters enforce the culture, not mods. The comment sections on low-ratio posts (Inkwell, COS the 12-year-old's OS, OmniLang the 15-year-old's language) show the real enforcement: call-outs for AI-ghostwritten READMEs, demands for actual novelty, skepticism of the "wholesome kid builder" framing.

How this sub differs from similar subs:

  • vs. r/programming: r/programming wants language theory, deep technical writeups, and industry news; r/coolgithubprojects wants whimsy and personal projects. Do NOT cross-post between them.
  • vs. r/opensource: r/opensource is a news-and-advocacy watchtower where launches are treated with suspicion; r/coolgithubprojects welcomes launches as the primary content type. A raw "I built this" post that dies at 10 on r/opensource might score 200 here with the same content.
  • vs. r/sideproject: r/sideproject is a celebration-of-shipping space for any side project; r/coolgithubprojects filters for GitHub-hosted novelty. r/sideproject accepts landing pages and Figma screenshots; here you need a repo link or you're invisible.
  • vs. r/selfhosted: r/selfhosted scores memes and docker-compose jokes 5,000+; here, self-hosted launches cap around 500 and memes about Docker would feel out of place.
  • vs. r/somethingimade: broader crafting/making sub; overlaps on the "whimsy" axis. A post that hits here can often be reframed there and vice versa.

3. The All-Time Leaderboard

Median of full dataset: ~30. Top-25 threshold: ~168. Only one post breaks 1,000.

#ScoreFlairRatioCmtsFormatTitle
11,022OTHER0.9877GALLERYI updated my GitHub profile!
2908OTHER0.96111IMAGESelf-hosted intelligence terminal — 26 global data sources + AI analyst (Crucix)
3905OTHER0.90101IMAGEActress Milla Jovovich just released a free open-source AI memory system
45890.9968IMAGEGitKingdom — GitHub repos become buildings in a fantasy world
5507SHELL1.0026IMAGEsshb — SSH Buddy Tamagotchi in your terminal
6448PYTHON1.0021GALLERYFound a pretty cool github readme template
7334PYTHON0.9926LINKAsthma inhaler prediction w/ Rasp Pi for my son
8306PYTHON0.988LINKLike My GF — bot to like your girlfriend's Instagram posts
9302OTHER0.9939IMAGEDevGlobe — open-source globe showing devs coding worldwide
10272OTHER0.999LINKApollo dev posts backend code to Git to disprove Reddit's claims
112680.9840VIDEOBonjourr customisable iOS-inspired startpage
12267OTHER0.9924IMAGESketchbook-style React component library
132630.9712LINKButtFish — Effortlessly transmitting chess moves in Morse to your butthole
142600.9744IMAGEReal-time Iran conflict dashboard
15258PYTHON0.985LINKClone a voice in 5 seconds in real time
16249PYTHON0.9821LINKScientific calculator — 600+ hours, first program
17226OTHER0.9614IMAGEAITutor — vimtutor for AI-assisted coding
18225OTHER0.9519LINKWhat to code — list for uninspired programmers
192250.996VIDEOSampler — configurable CLI dashboard
202200.9438GALLERYGitCity — GitHub contribution graph as drivable 3D city
212170.999LINKBullshit.js — turn marketing BS to plain English
222160.9232IMAGEDeath certificate generator for abandoned GitHub repos
232090.995IMAGETake your video conference call from within the matrix
24207OTHER1.007LINKBuild your own (insert technology here)
25205TYPESCRIPT0.9826IMAGEAlgoFlow — auto-visualizes Java algorithms as they run

Ironic flair observations: The #3 "Milla Jovovich" post is tagged OTHER and — reading the text — is almost certainly a joke post (fake celebrity framing, "30K stars in 2 days on GitHub", 0.90 ratio showing audience split). The sub let it through at 905 because it's funny. The "Apollo dev" post (#10) is OTHER but is actually Reddit-drama news from 2023, not a project launch. The top post "I updated my GitHub profile!" is OTHER but is literally just a README showcase — category confusion is the norm here because there's no good flair for "cool thing I did with GitHub."


4. Content Type Dominance at Scale

Flair is auto-assigned by repo language. Counts are approximate — "empty" flair (no language detected, often for GALLERY/IMAGE posts pointing at the repo indirectly) is significant.

FlairTop 25Top 50All 297Avg Score (all)Avg RatioBest Post
OTHER918~95~720.92I updated my GitHub profile! (1,022)
— (empty)715~70~500.94GitKingdom (589)
PYTHON47~35~800.95Found a cool readme template (448)
TYPESCRIPT13~20~450.94AlgoFlow (205)
JAVASCRIPT01~18~500.95TabFS (128)
SHELL11~6~800.98sshb (507)
GO00~10~400.94Go-cabinet posts
RUST01~12~600.92rgitui (127)
C00~6~950.94Ventoy (157)
CSHARP01~6~500.95Spytify (120)
JAVA00~3~750.94github-do-not-ban-us (157)
RUBY / ASSEMBLY / PHP / SWIFT / PERL / LISP / HASKELL00–1<5 eachvariesvariesVarious

Biggest surprise: The OTHER flair dominates the top tier (9 of 25) because the "cool meta-GitHub" archetype — which is the community's favorite content — gets classified as OTHER when the repo is a hybrid or primarily JSON/config/markdown. This means picking "OTHER" (or letting it auto-assign) is NOT a penalty the way a non-flair-conformant post would be elsewhere.

Second surprise: RUST has zero posts in the top 25 despite the community's love for terminal/TUI aesthetics (which heavily overlap with Rust tooling). Rust posts score consistently but not spectacularly. The issue is not Rust itself — it's that a Rust-flair post is often a Rust-idiomatic rewrite of something, which the community has seen before.

Third surprise: PYTHON punches above its weight. Python is over-represented in top posts (34 posts, avg ~80) even though new-comer tech stacks (Rust, Go, TS) are more fashionable. This is because Python attracts the weird-projects archetype — Like-My-GF, TrumpScript, DeleteFB, voice cloning, asthma inhaler prediction, scientific calculators — the community's sweet spot.

Empty-flair posts are significant. ~70 posts have no flair (often because they link to a gallery/image with the repo in the description). These perform well (~50 avg) because they're usually IMAGE or GALLERY posts — the dominant winning format.


5. Content Archetypes That Work

These are the 7 archetypes the data revealed, ranked by ceiling.

1. GitHub-Meta Projects (The Crown Archetype)

Score range: 24 → 1,022 (median ~180)

Tools that use GitHub data/API/profiles to make something whimsical about GitHub itself.

Examples:

  • "I updated my GitHub profile!" (1,022) — just a README showcase
  • GitKingdom — repos as fantasy kingdom buildings (589)
  • GitCity — contribution graph as drivable 3D city (220, 198)
  • "Found a cool github readme template" (448)
  • CommitmentIssues — death certificates for abandoned repos (216, 30, 17)
  • RepoRoast — AI brutally roasts your codebase (142)
  • GitQuest — RPG where commits defeat The Merge Conflict (112)
  • Git-City pixel art city (198)
  • GitWrapped (2)
  • gitsugi — fill contribution graph gaps with kintsugi gold (24)
  • "My Theme Sensitive GitHub Readme" (77)
  • "GitHub Profile README generator" (131)

The pattern: The project has to do something WITH GitHub data TO make a point ABOUT GitHub culture. It's self-referential humor. It's always visual (IMAGE or GALLERY), always includes a link to a hosted demo, and nearly always has a cute one-line concept.

Why it matters for distribution: This is the single highest-performing archetype on the sub. If your product isn't GitHub-meta, you can still package a GitHub-meta side feature and launch that (e.g., a weekly GitHub activity reporter, a contribution graph visualization, a profile enhancer) to build credibility for your main project. The GitHub-meta hook is a known score ceiling of 500+ on a sub that otherwise caps at 200.

2. Terminal/TUI Nostalgia & Cleverness

Score range: 11 → 507 (median ~100)

Tools that live in the terminal and do something clever with text-mode rendering.

Examples:

  • sshb — SSH Buddy Tamagotchi cat (507)
  • Rich — terminal rendering library (192)
  • Sampler — configurable CLI dashboard (225)
  • Serie — git commit graph (173)
  • AlgoFlow — Java algorithm visualizer (205)
  • mangadesk — terminal manga client (193)
  • timetrace CLI (127)
  • awk-raycaster (168)
  • periodic table CLI (183)
  • rgitui — GPU-accelerated Rust git GUI (127)
  • nless — vi-style pager for CSVs/JSON (85)
  • Bluekeys — Monkeytype in the terminal (28)
  • Balatro TUI (21)
  • D9s — k9s for Docker (33)
  • TermF1, Perfmon, sshz

The pattern: Show a screenshot or GIF of the TUI. The more retro the aesthetic, the better. Mentioning Nord/Catppuccin/Dracula themes is a positive signal. Vim-style keybindings is a bonus. If the project reimagines a famous GUI tool as a TUI, points doubled.

Why it matters for distribution: TUIs have predictable ~150-250 ceiling. They're reliable but not explosive. Use them for credibility-building, not viral launches.

3. Absurdist/Joke Projects

Score range: 31 → 306 (median ~150)

Projects whose entire point is the absurdity.

Examples:

  • Like-My-GF Instagram auto-liker (306, 148)
  • ButtFish — chess moves to butthole via Morse (263)
  • Bullshit.js — marketing speak translator (217)
  • Matrix video conference background (209)
  • Volkswagen — makes tests pass in CI (115)
  • TrumpScript — Python dialect (148)
  • FOAAS — "Fuck Off As A Service" (166)
  • Fattest cat at SF shelter scraper (110)
  • Psychological Alarm — wakes you up to tell you it's not wake time (31)
  • docx-you-want — PDF to fake DOCX (143)
  • sshb Tamagotchi (507)
  • Echo in x86 assembly for no reason (134)

The pattern: The title IS the pitch. No explanation needed, no README dump, the idea alone is enough. Usually LINK format with a github.com URL. Works best when the idea is 1 sentence of pure absurdism.

Why it matters for distribution: The ceiling here is real (~300) but unpredictable. You can't engineer an absurdist hit. If you have a side-project that's genuinely funny, drop it here and see.

4. Self-Hosted Intelligence / Data Dashboards

Score range: 19 → 908 (median ~120)

Tools that aggregate data sources into a local-first dashboard with an AI layer.

Examples:

  • Crucix self-hosted intelligence terminal — 26 data sources + AI (908)
  • Iran conflict dashboard with AI briefs (260)
  • DevGlobe — globe of devs coding in real-time (302)
  • ODEN — 3D research network graph (35)
  • Lightcap traffic spectral analysis (8)
  • TaxHacker (referenced in a list)
  • SurfSense open-source NotebookLM alternative (38, 36)
  • GDP per capita interactive tool (18)
  • RepoInsider — find breakout repos (14)
  • Crypto/market/OSINT terminals

The pattern: Heavy emphasis on "runs locally," "no cloud," "no API keys." Screenshot of a dense, data-rich interface. Mentions of satellite/real-time/multi-source. Often AI-assisted but the AI is a feature, not the core.

Why it matters for distribution: When it hits, this archetype hits hardest (the #2 all-time post is one of these). But it needs a dense, credible-looking dashboard screenshot as the image. Shallow dashboards die in the 20-50 range.

5. The "My Kid / My First Project" Earnest Build

Score range: 17 → 334 (median ~100)

Posts with personal stakes where the author genuinely needed the thing.

Examples:

  • Asthma inhaler predictor for author's son (334)
  • Scientific calculator — 600+ hours, first program (249)
  • "I'm 12 and built my own OS" (COS, 51, 0.74 ratio — divisive)
  • "15-year-old builds his own programming language" (OmniLang, 37, 0.77 ratio — divisive)
  • "I built a mini-shell for my homework" (71)
  • "My cat bit through my MacBook so I made it headless" (39)
  • EyesOff — screen peeper detector (36)
  • Kedip — eye strain reminder because the dev kept forgetting (33)

The pattern: Personal stakes + earnest framing + working code. This works when the pain is specific and relatable. It FAILS when the framing feels manipulative ("I'm 12" / "I'm 15" without a genuinely impressive artifact — the ratio drops below 0.80).

Why it matters for distribution: Real personal stakes are a credibility multiplier. Fake personal framing is a credibility destroyer. Only use this archetype if you genuinely built the thing for yourself.

6. Infrastructure/Reference Lists

Score range: 43 → 225 (median ~130)

Curated awesome-lists, learning resources, and reference repos.

Examples:

  • "What to code — list for uninspired programmers" (225, 133)
  • "Build your own (insert tech here)" (207, 150)
  • "Awesome Git Hooks" (119)
  • "Best GitHub Awesome Lists in 2026 [Mega Thread]" (125)
  • "Awesome Hacking" (111)
  • "Clone Wars — list of 70 clones" (116)
  • "ReadMeTemplate" (132)
  • "Awesome-security" variants
  • "Cosmos" algorithms compilation (155, 120)
  • "swag-for-dev" (132)

The pattern: Meta-resources that other developers will bookmark. Usually LINK format pointing at the GitHub repo directly. The title needs to describe what you'll find inside in one clear phrase. No selftext needed.

Why it matters for distribution: This archetype has a low ceiling (~225) but a high floor. If you maintain a genuine awesome-list or curated resource, it will reliably score 100+. Great for building author credibility for future launches.

7. Privacy-First Local AI / Voice / Search Tools

Score range: 2 → 181 (median ~35)

Tools that run LLMs, TTS, or search locally on consumer hardware.

Examples:

  • Reverse API engineer built with Claude Code (179)
  • Serge — self-hosted LLaMa ChatGPT (191)
  • QwenVoice — offline macOS voice cloning (36, 31)
  • SurfSense (38, 36)
  • MaximusLLM — LLMs on potato hardware (54)
  • HearoPilot — on-device meeting assistant (10, 2)
  • Kitaru — durable execution for agents (28)
  • VoltAgent framework (28)
  • EmbeddedFinder — semantic file search (17)
  • webclaw — web scraper for AI agents (10)
  • Octocode — semantic code search (4)

The pattern: Screenshot or GIF of the UI/CLI working, heavy emphasis on "offline/local/private," tech stack callout (MLX, Ollama, Rust, Tauri). Opens with the problem, explains why cloud isn't acceptable.

Why it matters for distribution: This is the fastest-growing category but has a surprisingly low ceiling (~180). The sub is saturated with "I built a local AI thing" posts. Novelty is getting harder here. Lead with the unique angle, not the tech stack.

Note on giveaways: This sub has NO giveaway archetype. There are no giveaway posts in the 297-post dataset. Unlike r/macapps or r/ClaudeAI, the giveaway tactic does not exist here. Do not try to manufacture one — it would feel out of place and likely underperform.


6. Format Analysis

FormatTop 25% of 25Top 50% of 50All 297% of all
IMAGE1144%2448%~14047%
LINK728%1530%~6522%
GALLERY416%612%~6522%
VIDEO28%36%~124%
TEXT00%00%~2<1%
GIF (static images that are GIFs)14%24%~134%

Format insight: IMAGE dominates, but most "IMAGE" posts are actually animated GIFs uploaded as i.redd.it. Reddit classifies these as is_gallery: false, is_video: false but the URL ends in .gif. True animated content (rendered as a video by Reddit or an actual .gif file) is disproportionately represented in the top tier. The data suggests: post your demo as a looping GIF uploaded to Reddit directly, not as a reddit video or YouTube link.

LINK posts work for awesome-lists and novelty repos only. If you're posting a LINK to a github.com URL, the title has to carry ALL the weight. The top LINK posts are all either joke projects (ButtFish, Bullshit.js, Volkswagen) or awesome-lists. For a serious tool launch, DO NOT use LINK format — use IMAGE with a screenshot and put the link in the selftext.

GALLERY is the archetype for multi-screenshot showcases. 4 of the top 25 are galleries, and they are almost always "here are 5 screenshots of my polished UI." Typical gallery count is 3-8 images.

VIDEO is underweight. Only 2 videos in the top 25 (Sampler, Bonjourr). Video posts underperform — likely because Reddit's autoplay and the muted-by-default experience don't capture the "cool" moment as well as a looping GIF does.

TEXT format (self-post with no image) is effectively dead. Only 2 TEXT posts in all 297. This is a visual sub. If you cannot show a screenshot, you cannot launch here.

What Format to Use For What

  • Tool/app launches: IMAGE (specifically a GIF, if there's any animation worth showing; otherwise a screenshot). Put GitHub link + description in selftext.
  • Terminal/TUI launches: ANIMATED GIF. Show the tool in action. Static screenshots of TUIs underperform animated ones.
  • Multi-feature SaaS-style launches: GALLERY with 4-8 screenshots.
  • Awesome-lists / reference repos: LINK directly to github.com with a descriptive title.
  • Joke projects: LINK with the absurdist title doing all the work.
  • Dashboards with lots of data: IMAGE (single dense screenshot that shows everything).
  • Questions / discussions: Don't. This is not a discussion sub. TEXT posts die.

What Makes a Good Demo GIF

Based on the top-performing GIFs (sshb, AlgoFlow, AITutor, DevGlobe, mangadesk, vimtutor, gitsugi, nless, Serie, Persistence ALife):

  1. Loop cleanly. The GIF should start and end at the same visual state so it loops smoothly.
  2. Show the "cool moment" in the first 1 second. Reddit users scroll fast; if the hook isn't visible in the first frame, you've lost them.
  3. Keep it under 10 seconds. Longer GIFs get truncated by Reddit and lose their climax.
  4. Cursor / keystroke visible. If it's a TUI, show keypresses. If it's a GUI, show clicks. Invisible interaction = unclear demo.
  5. No intro title card. The GIF should start in the action, not with "MY PROJECT v1.0."

7. Flair/Category Strategy

Flair is auto-assigned based on the dominant language of your linked repo, so you can't really "choose" a flair — you choose it implicitly by what your project is written in. But you CAN optimize around it.

Raw performance (avg score by flair)

  1. C — ~95 avg (small sample, historical posts dominate)
  2. PYTHON — ~80 avg (large sample, weird-projects sweet spot)
  3. SHELL — ~80 avg (small sample, but sshb skews high)
  4. OTHER — ~72 avg (dominant flair, catches most GitHub-meta content)
  5. JAVA — ~75 avg (tiny sample)
  6. RUST — ~60 avg (fashionable but saturated)
  7. CSHARP — ~50 avg
  8. JAVASCRIPT — ~50 avg
  9. — (empty) — ~50 avg (often GALLERY posts)
  10. TYPESCRIPT — ~45 avg
  11. GO — ~40 avg

Distribution utility (what flair is best for a product launch regardless of avg score)

  1. OTHER — because the top-performing GitHub-meta archetype lives here. If your project is classified OTHER, you're actually in the best position: you're next to the canonical hits. Don't view OTHER as a fallback.
  2. PYTHON — Python projects get a quality bump because the community associates Python with "clever hacks" and "weird projects." Lean into the weirdness if possible.
  3. SHELL — Niche but high-ceiling for terminal tools.
  4. TYPESCRIPT / JAVASCRIPT — The largest audience of readers are likely JS/TS devs, but these flairs are saturated with me-too web projects. You need a strong novelty angle to stand out.
  5. RUST — Fashionable but competitive. A Rust TUI or CLI needs something unique beyond "I wrote it in Rust."
  6. GO / C / JAVA / C# — Small niches. Your audience for a GO project IS smaller, but your competition is also smaller.

There are no title-prefix tags

Unlike r/macapps ([FREE], [Giveaway]) or r/ClaudeAI ([Built with Claude]), this sub does NOT use bracketed prefixes. Titles like [OC] or [OS] are rare and neutral — they don't boost or hurt scores. Don't waste title characters on them.

Pricing model hierarchy

The community's pricing preferences, ranked from most to least welcome:

  1. Free + open source (MIT/Apache/BSD) — the default expectation. Any other model needs justification.
  2. Free + source-available (BSL, AGPL) — accepted with grumbling if the rationale is explained.
  3. Free + "Pro" optional one-time payment — tolerated for specialized tools (Inkwell tried this; it got mixed reception).
  4. Subscription — very rarely attempted. The one launch that clearly described a subscription model (BlinkDisk had implicit cloud backup tiers) scored 51.
  5. Closed source + paid — essentially zero launches. Don't bother.

The key phrase: "100% free, 100% open source, runs locally." This is the magic triad. If you can truthfully write it, put it in the title or first line of the selftext.


8. Title Engineering

Deconstructing the top 10 titles:

  1. "I updated my GitHub profile!" (1,022) — The shortest possible title. Pure curiosity gap. Worked because the gallery showed a visually impressive README and the sub LOVES profile showcases.
  2. "I built a self-hosted intelligence terminal — 26 global data sources + an AI analyst" (908) — "self-hosted" + specific number (26) + concrete value prop. Every word earns its place.
  3. "Actress Milla Jovovich just released a free open-source AI memory system" (905) — Joke post leaning on absurd celebrity framing. This is unreproducible — don't try it.
  4. "I built GitKingdom, where GitHub repos become buildings in a procedurally generated fantasy world. Your stars determine your building size." (589) — Long but every clause adds info. The second sentence is the payoff.
  5. "sshb - SSH Buddy" (507) — Ultra-short, relies on the GIF. Works because the product name IS the concept.
  6. "Found a pretty cool github readme template" (448) — Casual, lowercase, not salesy. Reads like a friend sharing, not a launch.
  7. Asthma inhaler predictor: Long, earnest, describes exactly what the project does and why (personal stakes).
  8. "Like My GF - A bot to 'like my girlfriend's post on Instagram'" (306) — Title is the joke. No explanation needed.
  9. "We built an open-source globe to see developers coding around the world" (302) — "We built" + concrete visual + "developers coding" hooks the identity.
  10. "Apollo dev posts backend code to Git to disprove Reddit's claims of scrapping and inefficiency" (272) — News-drama framing. Not reproducible unless you're actually in drama.

Title Formulas That Work

  1. "I built X — [specific capability] + [specific capability] + [specific capability]" — Example: "I built an interactive research tool for investigating cold cases, genealogy, historical events." Works because the specific examples anchor what's abstract.

  2. "[Project name] - [one-line description that IS the concept]" — Example: "sshb - SSH Buddy", "ButtFish - chess morse to butthole", "Serie - A rich git commit graph in your terminal". Minimal title, high curiosity.

  3. "I turned X into Y" — Example: "I turned your GitHub contribution graph into a 3D city", "I made a Tamagotchi that lives in your terminal", "I built a tool to officially declare your abandoned repos dead." Strong verbs + transformation.

  4. "Found a cool X / A cool X I stumbled on" — Example: "Found a pretty cool github readme template", "So I was scrolling GitHub until my eyes glazed over". Passive-voice casual framing signals "not a launch," which paradoxically boosts launch performance.

  5. "X but for Y" — Example: "vimtutor for AI-assisted coding" (226), "k9s for Docker" (33), "Monkeytype for your terminal" (28), "NotebookLM alternative" (38). Familiarity hook + twist.

  6. "Built X so I could stop Y" — Example: "I kept forgetting to rest my eyes so I built a Mac app" (33), "I was tired of certbot-per-host so I built certctl". Lead with the personal pain.

Title Anti-Patterns (community-specific)

  • Do NOT mention star counts, download numbers, Product Hunt rank, or "trending." Posts with these in the title underperform. "ToolJet — 6,900 stars on GitHub" scored 141 with 0 comments. "6 months of efforts and finally hit 500 stars on GitHub" scored 16 with 0.74 ratio. "My GitHub repo hit #3 trending for TypeScript" scored 0 with 0.5 ratio. The community reads vanity-metric mentions as desperation.

  • Do NOT use emoji in titles. Emojis in titles correlate with lower performance on this sub. The successful posts use zero emoji. Emojis in the SELFTEXT are fine.

  • Do NOT say "please star my repo" in the title. "MaximusLLM — Give me feedback" type framing underperforms vs. descriptive titles.

  • Do NOT use "Check out" — "Check out minikv v1.0.0" scored 0. "Check out my X" is a dead phrase here.

  • Do NOT lead with version numbers. "v2.0 released" / "Critiq 1.10.0 Released" scored 2. Version numbers in titles signal "update post" which has ~15 ceiling.

  • Do NOT use all caps — it reads as spam.

  • Avoid "AI-powered" / "revolutionary" / "cutting-edge" — these are LLM-ghostwritten tells. The sub has a nose for it.


9. Engagement Patterns

Comments-to-upvote ratio (C/U) signals discussion intensity. Higher C/U = more active back-and-forth.

Content TypeAvg ScoreAvg CommentsC/U RatioInterpretation
Joke / absurdist~180~10~0.06Passive upvotes, "haha cool" and scroll
Terminal / TUI~150~12~0.08Low discussion, upvote + silent star
GitHub-meta (leaderboard)~200~30~0.15Mid discussion, feedback on the idea
Dashboards / intelligence~120~35~0.29High discussion, questions about data sources
Personal stakes earnest builds~100~25~0.25High discussion, emotional engagement
AI-disclosed (controversial)~40~30~0.75Very high discussion, often argumentative
Low-ratio drama (Inkwell etc)~60~50~0.83Argument threads, critical comments

Key finding: The highest-discussion posts are the most controversial ones, not the most popular ones. If you want upvotes and visibility, build a terminal tool or a GitHub-meta project. If you want actual comment engagement (which is where people will discover your other projects, give real feedback, or link to you), post something that sparks debate — a new AI coding tool, a dashboard with a political angle, or a project that discloses AI assistance.

If your goal is VISIBILITY → terminal/TUI demo GIF or GitHub-meta project (low C/U but high ceiling).

If your goal is RELATIONSHIPS / feedback / discussion → post a "I built X to solve Y" with a dashboard screenshot, include a personal story, and be willing to engage the critical comments.

Top 5 discussion topics (highest total comments regardless of score)

  1. AI-assisted development tooling (Claude Code wrappers, MCP servers, agent orchestrators) — generates the longest threads as people compare approaches.
  2. Self-hosted alternatives to SaaS — always generates "why not just use X?" discussions.
  3. New programming languages by young authors (OmniLang, COS) — divisive, half supportive half critical.
  4. Markdown editors / dev tooling launches — the "another Markdown editor?" reflex starts a meta-discussion.
  5. Licensing and open-source purity — closed vs. BSL vs. MIT debates flare up reliably.

10. What Gets Downvoted

Posts with ratios below 0.85 are the minority but reveal what fails. Most of r/coolgithubprojects is in the "safe" tier (0.94+).

Three ratio tiers

TierRatioInterpretation% of posts
Safe> 0.94Universally well-received or ignored~75%
Friction0.85–0.94Net positive but something's off~20%
Controversial< 0.85Actively hostile comment section~5%

Notable downvoted posts

ScoreRatioCmtsTitle / Reason
660.6897Inkwell — Markdown editor, open about NOT being open source. r/rust "grilled me hard for it not being OSS." The refusal to open-source was the issue.
510.7472"I'm 12 and built my own operating system: COS" — divisive, criticized as thin and likely AI-assisted despite young-dev framing.
370.7715"15-Year-Old Builds His Own Programming Language" (OmniLang) — similar framing skepticism.
130.7022"I built this last week, woke up to 300+ stars and a developer with 28k followers tweeting about it" — comes across as bragging.
160.7417"6 months of efforts and finally hit 500 stars on GitHub" — vanity-metric title.
100.6524"Every Markdown editor I tried was either 300MB of Electron or broke without internet" — me-too Markdown editor, dismissed.
710.8513"I ran 12 AI agents on one laptop for 47 hours" — polarizing AI-agent content.

7 Community-Specific Anti-Patterns

  1. Vanity metric bragging. Mentioning star counts, follower counts, trending rank, or "my repo got X" in the title. The community reads this as desperation or marketing. Quiet confidence (letting the repo speak) is the cultural norm.

  2. Source-available launches that try to pass as open source. Inkwell's downvote spiral was driven by the author explicitly NOT open-sourcing a project posted to a sub literally called "coolgithubprojects." If you're closed-source or source-available, disclose upfront in the title.

  3. Fake earnest framing. The "I'm 12" / "I'm 15" / "my first project" framing works when the artifact is genuinely impressive for a beginner (see the 249-score scientific calculator). It fails when the artifact is mediocre and the age feels like a shield. Readers sniff this out.

  4. "Another X editor" launches without novelty. The sub has been flooded with Markdown editors, CRMs, JSON viewers, and rate limiters. A generic entry in these categories scores 10-30 regardless of quality. Either find a novel angle or don't post.

  5. AI-ghostwritten READMEs and launch posts. Tells include: em-dashes, overly polished structure, emoji bullets, "let me know what you think" sign-offs, and the exact same "I kept running into the same problem so I built..." opener. The community recognizes the style and downvotes it.

  6. Vague titles without a concrete hook. Titles like "I built a tool that helps developers" or "Check out my new CLI" die at <10. The sub wants the idea in the title.

  7. Update/version posts within 2 weeks of the original. Reposts within the 6-month window are against sidebar rules. Even slightly-rebranded updates ("Snowify 1.2 update", "Critiq 1.10.0 released") score in single digits. Users who post the same project 3+ times in a month (the QwenVoice author, the kana-dojo author, the SurfSense author) see each repost score less than the previous.

No hall of shame / blacklist

Unlike r/macapps (which has an astroturfing blacklist) or r/opensource (which enforces <10% self-promotion), r/coolgithubprojects has no public enforcement mechanism. The downvote ratio IS the enforcement. Mods are hands-off. Bad posts die in comments, not in removals.


11. The Distribution Playbook

Phase 1: Pre-launch (1-2 weeks before)

  1. Make sure your repo has a GitHub-hosted URL. Non-GitHub hosts (GitLab, Bitbucket, Codeberg) will get removed per the sidebar rule.

  2. Add a clear README with screenshots/GIFs at the top. Readers click through; your repo's README is the second impression and can salvage or sink a post. Include a section labeled "Screenshots" or a hero GIF within the first 5 lines.

  3. Add a LICENSE file. An OSI-approved license (MIT, Apache 2.0, BSD, GPL) is the default expectation. Source-available (BSL, Elastic License) needs justification. No license is read as "author doesn't understand open source."

  4. Record a high-quality demo GIF (not video). Tools: asciinema + svg-term for terminal tools, peek/LICEcap/kap for GUI. Under 10 seconds. Loops cleanly. Shows the cool moment immediately.

  5. Browse the sub for 30 minutes. Read the top 50. Understand what scores vs. what doesn't. Identify which archetype your project fits into — that determines your post format.

  6. Draft 3 title variants. Pick the one that's shortest, most concrete, and avoids all anti-patterns (no star counts, no version numbers, no "check out").

Phase 2: Launch day

  1. Post format: IMAGE (specifically, an animated GIF). Upload the GIF directly to Reddit (i.redd.it), not to Imgur or YouTube. Reddit's algorithm favors native uploads.

  2. Title: Follow one of the 6 formulas from Section 8. Keep it under 120 characters. Do NOT include emojis. Do NOT include version numbers.

  3. Selftext: Even though the format is IMAGE, Reddit doesn't show the text on image posts visibly. But commenters and some viewers will expand to see it, and the GitHub link MUST be in the selftext (never expect people to find it from the image alone). Structure:

    • First line: GitHub link.
    • Second paragraph: the 2-3 sentence concept.
    • Short feature list (5-8 bullet points max).
    • Tech stack.
    • "Tried it, feedback welcome" close.
    • If AI-assisted: disclose upfront, briefly. "Built with Claude Code help on the [specific parts]." Don't hide it; don't dwell on it.
  4. Timing: No strong timing signal in the data. Post during North American afternoon (14:00-18:00 UTC) or European morning (08:00-12:00 UTC) for slightly better pickup, but timing isn't a major factor. The sub is slow enough that a good post will accumulate over 24-48 hours regardless of launch hour.

  5. Flair: Auto-assigned. Don't worry about it.

Phase 3: First 24-48 hours

  1. Monitor the ratio in the first hour. If you're below 0.90 within 30 minutes, something is wrong — likely the title, the framing, or the AI-disclosure handling. You can delete and relaunch with a fix (once).

  2. Reply to every comment in the first 4 hours. This sub is small enough that comment responsiveness is noticed. Aim for <30 minute response times.

  3. Answer critical comments technically, not defensively. If someone says "this is just another X", respond with the specific reason yours is different, one concrete example. Don't argue about whether they're right to criticize.

  4. If you get a "why not just use X?" comment, EXPAND on it. This is the sub's most common objection. Example reply template: "Good question — X is great for [specific case] but I found [specific pain point] that bugged me. Mine handles that by [specific approach]. If you're happy with X, no reason to switch." This turns a critical comment into a credibility moment.

  5. Seed discussion with a pinned top-level author comment. Good content: "If you try it on [platform], let me know — I've only tested on [platform]." or "I'm looking for ideas on [specific feature] if anyone wants to PR." This invites engagement without begging for stars.

Phase 4: Ongoing presence

  1. Do not post a follow-up within 2 weeks. The sidebar rule is "6+ months + new features" but the community enforcement is softer — roughly 3-6 weeks is the minimum tolerable gap for a clearly-iterated version.

  2. Post content (not your own project) 3-5 times between launches. Upvoting, commenting, and sharing other people's cool projects builds soft credibility. Authors who show up ONLY when launching their own thing are less welcome than authors who participate.

  3. Consider launching a "GitHub-meta" side project. If your main project isn't a GitHub-meta archetype, spend a weekend building a GitHub profile enhancer, a contribution graph visualization, or a quirky repo analyzer. Launch it here. You'll gain author credibility AND potentially 200+ upvotes that your main project couldn't touch.

  4. Cross-post to r/sideproject, r/somethingimade, r/selfhosted depending on your archetype. Different framings for each (see Section 12).

Community-specific comment reply templates

"Is this just another [existing tool]?"

Great question — [existing tool] handles [most of the space] well. I built this because [specific pain]: [concrete example]. Mine handles that by [specific approach]. If [existing tool] works for you, honestly stick with it — mine is for the [specific niche].

"Why not just use [existing tool]?"

[Existing tool] is what I used before building this. The specific thing I wanted was [X], and [existing tool] [specific limitation]. Built this to scratch that particular itch. If you don't hit that limitation, [existing tool] is still the right choice.

"Is this vibe-coded / AI-generated?"

Yeah, parts of it. I used [Claude Code / Cursor / etc.] for [specific parts]. The architecture and the [specific hard part] I wrote by hand. Code is in [file path] if you want to see what's human vs. assisted. Not hiding it.

"What's your license?"

[License name]. Core reason: [brief reason]. [If anything other than MIT/Apache]: willing to revisit if it blocks adoption — happy to hear the use case.

"Doesn't this already exist?"

Possibly! Can you share the link? I searched for [keywords] before building and didn't find [specific angle]. If there's an existing project that covers this, I'd rather contribute there.

Stealth distribution tactics

r/coolgithubprojects has few stealth-distribution options because there's no "what are you using?" thread or "ask for an alternative" flair. But:

  1. Comment helpfully on GitHub-meta posts. The comment sections on GitKingdom, GitCity, RepoRoast, etc. are great places to mention similar tools if someone asks.
  2. Launch an awesome-list that mentions your tool alongside 20 others. Awesome-lists have a ~200 ceiling and are credible. Your tool as item #14 on a curated list lands differently than your tool as a solo launch.
  3. Post a "found this cool project" review of someone else's tool. Builds author credibility on the sub; the audience sees your name associated with curation, not just self-promotion.

Score-tier calibration

Tell yourself honestly what your content can realistically achieve:

  • Terminal/TUI launch: realistic ceiling 100-250. Median 80.
  • Local AI / dashboard launch: realistic ceiling 150-300 (can spike to 900 with a great screenshot). Median 60.
  • GitHub-meta project: realistic ceiling 200-600 (can spike to 1,000). Median 150.
  • Absurdist joke project: realistic ceiling 100-300. Median 120. High variance.
  • Awesome-list: realistic ceiling 150-225. Median 130.
  • Personal stakes earnest build: realistic ceiling 150-350 IF the personal stakes are real. Median 80.
  • Markdown editor / CRM / rate limiter / me-too tool: realistic ceiling 30-80. Median 20. Don't expect more.
  • v1.2 / v2.0 update post: realistic ceiling 20-50. Median 5.

If you need 1,000+ visibility, this is NOT your sub. Try r/programming (different archetype) or r/selfhosted (different archetype).

Post-publication measurement

  • First 30 minutes: ratio should be ≥0.95. If below 0.90, something's wrong with framing.
  • First hour: score should be ≥10. If below 5, the post is dead — don't bother reviving.
  • First 4 hours: score should be ≥30 for a viable launch. If you're below 15, the post will cap at ~50.
  • First 24 hours: score should be ≥100 for a top-50 finish. If below 50, you land in the long tail.
  • First 48 hours: posts that are going to hit the leaderboard have already done so. Week-old posts rarely climb.

If your post is dying in the first 4 hours: comment engagement is the only rescue. Reply to every comment substantively. Ask a question back. Don't delete the post (reposting is worse than letting it die).


12. Applying This to Any Project

Quick-reference checklist

  • Repo is hosted on GitHub (not GitLab, not Bitbucket). Non-GitHub = instant removal.
  • LICENSE file is at the repo root. MIT/Apache/BSD preferred.
  • README has a screenshot or GIF above the fold.
  • Demo GIF is <10 seconds, loops cleanly, starts in action.
  • Title is under 120 characters, concrete, no emojis, no version numbers, no star counts.
  • Title fits one of the 6 formulas in Section 8.
  • Selftext leads with GitHub link, then 2-3 sentence concept, then bullets.
  • If AI-assisted, disclosed briefly upfront.
  • Post format: IMAGE (native Reddit upload) or GALLERY (3-8 screens).
  • Not a repost within 6 months of the same project.
  • You've replied to at least 3 comments on other people's posts in the last month.

Scenario-based launch guides

Scenario A: Your project is free/open-source/MIT

  • Optimal launch formula: Lead with the concept in title. "I built X that does Y." Mention "MIT licensed" in the selftext (not the title). Include a loop GIF. Reply quickly.
  • Expected score: 50-300 depending on archetype.
  • Key risk: Being just another entry in a saturated category (Markdown editors, CRMs, rate limiters). Differentiate in the first sentence or expect ~30.

Scenario B: Your project is source-available (BSL, Elastic, etc.)

  • Optimal launch formula: Disclose licensing upfront — "BSL 1.1, free to self-host and modify, can't resell as hosted service." Don't bury this. Explain the economic reason briefly.
  • Expected score: 30-150. certctl (74 and 63 on two follow-ups) is your reference.
  • Key risk: Getting caught trying to pass as open source. The downvote spiral is fast.

Scenario C: Your project uses subscription/paid pricing

  • Optimal launch formula: Don't. This sub isn't for you. Go to r/sideproject, r/saas, or r/startups.
  • Expected score: <30.
  • Key risk: The sidebar culture rejects subscription pricing implicitly. You'll look out of place.

Scenario D: Your project was built with AI assistance

  • Optimal launch formula: Disclose in the first sentence of the selftext. Specify what was AI-assisted ("architecture + error handling was hand-written, UI state was Claude-generated"). DO NOT hide it. DO NOT over-explain it. One line, move on.
  • Expected score: Normal — the community has no rule against this. What fails is sounding AI-written in the post itself. Write your Reddit post in your own voice, not in Claude's voice.
  • Key risk: Em-dashes, bullet-point overuse, "Let me know what you think!" sign-offs — any of these will spike the AI-detection radar and tank your ratio.

Scenario E: Your project is genuinely novel/weird/absurdist

  • Optimal launch formula: Title IS the joke. LINK format directly to github.com. No selftext explanation needed. Let the audience discover the absurdity.
  • Expected score: 100-300 if it lands. 5 if it doesn't. High variance.
  • Key risk: Trying to be weird. If it's not genuinely funny to you first, it won't be funny to the sub.

Cross-posting guidance

This is the same project, reframed for different subs:

  • r/coolgithubprojects: "I built [cool thing] — [specific novelty]. GitHub: [link]." (GIF-led)
  • r/sideproject: "Shipped my first [thing] after [months]. Here's what I learned." (Journey-led)
  • r/opensource: DO NOT cross-post here unless your project is genuinely FOSS-aligned AND you can frame it as solving a FOSS-specific problem. Raw launches score 10-30 on r/opensource.
  • r/selfhosted: "Self-hosted alternative to [SaaS tool]. Docker Compose, [privacy features]." (Infrastructure-led)
  • r/somethingimade: "Made this [thing] — [story of why]." (Personal story led)
  • r/programming: DO NOT cross-post unless your project has genuine technical depth (new algorithm, novel language feature, benchmark-worthy performance). Me-too launches die there.
  • r/[language] e.g. r/rust, r/golang, r/python: Frame as "Rust/Go/Python learning project" with technical details. These subs reward tech stack storytelling more than concept novelty.

For the same project, your r/coolgithubprojects title should emphasize the WEIRD or the VISUAL. Your r/sideproject title should emphasize the JOURNEY. Your r/selfhosted title should emphasize the INFRASTRUCTURE. Never re-post the exact same title across subs — the algorithm penalizes it and the audience notices.