Reddit Community Analysis: r/javascript
1. Data Sources & Methodology
- 309 unique posts after deduplication across 4 time periods (all-time, year, month, week), 14 source JSON files (top_all x4, top_year x4, top_month x4, top_week x2).
- Date collected: April 10, 2026
- Subreddit subscribers: 2,431,139
- Score range: 0 to 3,332
- Median score (dataset): ~90 (estimated from ~154th ranked post; the long tail of the month/week slice is clustered at 0-30)
- Top 25 threshold: ~612
- Top 50 threshold: ~105
- Top 100 threshold: ~70
| Period | Posts | Score Range | Notes |
|---|---|---|---|
| All-time | ~100 | 563 - 3,332 | Historical canon; mostly 2015-2021 legacy posts, news, and the Oracle/JavaScript trademark saga |
| Year | ~130 | 64 - 1,014 | TypeScript releases, Vite/Oxc momentum, npm supply chain attacks, "Free JavaScript" campaign |
| Month | ~70 | 5 - 228 | Axios compromise dominance, i18next drama, minor library launches |
| Week | ~30 | 0 - 51 | Fresh tutorials, small tool launches, many at 0-3 with ratios below 0.5 (downvoted) |
This is a content strategy guide for distributing through r/javascript, not a sociological study. The dataset draws from "top" sorting and skews toward high performers, but the week/month tail captures what the community is actively downvoting in 2026.
Cross-subreddit calibration: r/javascript is a low-ceiling sub compared to its peers. The all-time #1 at 3,332 is less than 1/5 of r/webdev's top post (18,701) and less than 1/13 of r/programming's top (45,079). It is closer to r/macapps (~2,000 ceiling) than to r/webdev or r/learnprogramming in terms of raw score. Yet it has 2.4M subscribers. Why? Two reasons: (1) aggressive moderation against self-promotion, memes, listicles, and help posts strips out 90% of the content that generates viral engagement elsewhere; (2) content is channeled to r/LearnJavascript, r/reactjs, r/webdev, r/node, and r/typescript, leaving r/javascript as a narrow "pure JS news + libraries" aggregator. Realistic score expectations: 200+ is a strong post, 500+ is top-50 territory, 1,000+ is a once-a-year viral moment, and 2,000+ requires a cultural/news event (Oracle, a major acquisition, a famous security breach). Most successful library launches land in the 70-200 range.
2. Subreddit Character
r/javascript is a narrow, moderated news wire and library directory for 2.4 million JavaScript developers — the quiet, rules-heavy professional channel that everyone subscribes to but few actually browse. It's the library's reference desk, not the student union. Unlike r/webdev (where craft identity and rage drive engagement) or r/programming (where outrage and news dominate), r/javascript is deliberately sanitized: no help requests, no memes, no beginner content, no paid product promotion, no beta invites. What remains is a feed of library releases, security advisories, TC39 proposal updates, browser news, TypeScript announcements, and occasional "I built X" posts that meet the bar.
Product launches are TOLERATED but hostile to anything that looks commercial. The wiki is explicit: "It's not okay to be a website with a reddit account." Rule 7 ("Advertising") bans paid products and services outright. Rule 1 requires that self-promotion not constitute the majority of your contributions. Rule 2 ("Where's the Javascript?") demands source code or a write-up with any project post — demos alone get removed. The subreddit has a dedicated Showoff Saturday weekly thread, and posting your project outside of that thread on any other day is risky unless the content is deeply technical. Successful project posts in the dataset (like Deskreen at 1,001 and 33-js-concepts at 674) all link to open-source GitHub repos with real code.
Humor mostly falls flat. Rule 6 prohibits "low-effort content such as listicles, memes, clickbait, etc." The closest humor-adjacent top post is "Coming from Python to JS" (608, a one-line code joke) and "I'm harvesting credit card numbers" (1,277, a satirical essay that happens to be technically rigorous). The "JavaScript also known as Java for short" image post (877) is a legacy post from 2015 that would likely be removed today. Sarcasm works only when wrapped in technical substance.
The technical audience is senior-biased. The sidebar links to ES specs, ECMAScript compatibility tables, and TC39. The wiki explicitly routes beginners to r/LearnJavascript. Posts that assume deep knowledge of the event loop, Promise semantics, V8 internals, or bundler internals routinely outperform posts pitched at intermediates.
Key cultural values, ranked by intensity:
- Open-source purity and anti-commercialism — The sub's identity is built around the belief that JavaScript is (and should be) a community-owned language. The Oracle trademark saga dominates the year's top posts ("Deno: Help Us Raise $200k to Free JavaScript from Oracle" 504, "In 1995, a Netscape employee wrote a hack" 1,014, "Good news: JavaScript is 30 years old... Sad news: Its own name still doesn't belong to it" 256, "Node.js creator Ryan Dahl urges Oracle to release JavaScript trademark" 585). Campaigns to "free the name" reliably upvote.
- Supply chain security paranoia (2025-2026 era) — This is the single biggest recent shift. "axios 1.14.1 and 0.30.4 on npm are compromised" (228), "The Axios supply chain attack used individually targeted social engineering" (199), "NPM package error-ex just got published with malware" (97), "Minimum Release Age is an Underrated Supply Chain Defense" (115), "If you have an npm package, read this before November 2025" (74), "pnpm v10.16 introduces delayed dependency updates" (108). Any npm-related security post clears 100+ effortlessly in 2026.
- Anti-framework-bloat, pro-performance — "A 10x Faster TypeScript" (614), "es-toolkit, a drop-in replacement for Lodash" (112), "49 string utilities in 8.84KB" (130), "The many, many, many JavaScript runtimes" (110), Oxlint/Vite/Rolldown momentum posts (125-158). "Rust for JS tooling" is a dog whistle the community answers.
- TypeScript as the default — TypeScript releases dominate the year's top posts (5.9, 6.0 Beta, 6.0 RC, 6.0, Native Port, Native Previews, Progress on TS 7). The rejection post "[AskJS] Rejected by ATS for 'no JavaScript experience' despite 10+ years in TypeScript" (130) captures the sub's attitude: TypeScript is JavaScript here, not a separate thing.
- Anti-AI-generated-code (in critical infra) — "Petition: No AI code in Node.js Core" (210) is the flagship example. The community tolerates AI as a tool but pushes back when it threatens to destabilize foundational libraries.
- News & meta events — React relicensing (664, 681), Github/npm/Microsoft acquisition news (728, 1,113, 1,130), browser deprecation (IE retirement 891, 978), Moment.js retiring (1,193). News about the ecosystem reliably hits the top quartile.
Enforcement mechanisms: Unlike r/webdev or r/macapps, r/javascript's mods are "easy-going" per the wiki but enforce posting rules strictly through auto-removal:
- New user submissions are automatically removed (from
submit_text) — this is an explicit anti-spam measure that forces new accounts to build karma on other subs first. This is why you see very few first-time posters in the dataset. - Self-posts require "[AskJS]" prefix — any text post without this prefix is removed. Every text post in the dataset that's NOT an [AskJS] is either a mod post or a cross-sub special case (e.g., "Oracle Owns JavaScript" which is a complaint framed as a question).
- Medium.com membership paywall blacklist (Rule, see the 2018 mod post at 693 score) — the mods publicly blacklist authors who post paywalled Medium content.
- "Where's the Javascript?" rule — project posts must include code or a write-up. Demo-only posts get removed.
- Rule 7 on advertising is aggressively enforced. "Beta invites," "PM for access," "free for first N users" are explicit bans.
Mandatory posting formats:
- Link posts must be actual link posts, not self-posts with a link in them (per wiki).
- Text (self) posts require [AskJS] prefix.
- Project posts require one of: (a) link to unbuilt/unminified source, (b) write-up about development, or (c) working codepen/jsfiddle.
How this sub differs from similar subs:
- vs. r/webdev: r/webdev welcomes memes, career rants, design work, and CSS/HTML content. r/javascript bans all of it. r/webdev peaks at 18,701; r/javascript peaks at 3,332.
- vs. r/programming: r/programming is a 6.8M news aggregator where outrage news hits 30k+. r/javascript has similar content (news) but much less reach because it's JS-only.
- vs. r/reactjs/r/node/r/typescript: These are the siblings that absorb framework-specific content. Anything about React Hooks goes to r/reactjs; anything about Express/Node APIs goes to r/node. r/javascript is for language-level, cross-runtime, cross-framework content.
- vs. r/LearnJavascript: All beginner content is routed here. The
submit_textis explicit: "For help with your javascript, please post to /r/LearnJavascript instead."
3. The All-Time Leaderboard
Context: dataset median is ~90; top-25 threshold is ~612.
| Rank | Score | Flair | Ratio | Comments | Format | Title (summarized) |
|---|---|---|---|---|---|---|
| 1 | 3,332 | (none) | 0.90 | 272 | LINK | Pass by reference !== pass by value (Giphy gif) |
| 2 | 2,847 | (none) | 0.98 | 237 | VIDEO | After learning JS a year ago... drag-drop trip planner |
| 3 | 2,690 | (none) | 0.97 | 816 | TEXT | Nobody talks about the real reason to use Tabs over Spaces (accessibility) |
| 4 | 2,381 | solved! | 0.97 | 277 | TEXT | Can you help me allow my router to accept 💩 as the SSID? |
| 5 | 1,368 | (none) | 0.96 | 107 | VIDEO | I built Apple Music using ReactJS, Redux, and Styled Components |
| 6 | 1,277 | (none) | 0.96 | 77 | LINK | I'm harvesting credit card numbers and passwords from your site |
| 7 | 1,272 | (none) | 0.93 | 109 | LINK | Statistics for this post are updated real time in the comments |
| 8 | 1,241 | help | 0.98 | 596 | TEXT | Oracle Owns "Javascript", so Apple is taking down my app! |
| 9 | 1,193 | (none) | 0.99 | 219 | LINK | Moment.js Throws in the Towel |
| 10 | 1,176 | (none) | 0.99 | 62 | LINK | Google, Microsoft pitch in to keep MDN alive |
| 11 | 1,130 | (none) | 0.98 | 179 | LINK | Github private repositories are free now |
| 12 | 1,113 | (none) | 0.98 | 240 | LINK | GitHub acquires NPM |
| 13 | 1,111 | (none) | 0.99 | 77 | LINK | Pseudo desktop UI self-challenge |
| 14 | 1,060 | (none) | 0.94 | 92 | LINK | Discord bot for coronavirus cases (gif) |
| 15 | 1,034 | (none) | 0.99 | 110 | LINK | I launched iHateRegex.io - A Regex cheatsheet for the haters |
| 16 | 1,014 | (none) | 0.96 | 102 | LINK | In 1995, a Netscape employee wrote a hack in 10 days |
| 17 | 1,001 | (none) | 0.98 | 111 | LINK | I created Deskreen (Electron second-screen app) |
| 18 | 1,000 | Showoff Saturday | 0.97 | 126 | LINK | Teacher sick of bell schedules — I built classclock.app |
| 19 | 978 | (none) | 0.92 | 186 | LINK | Microsoft won't support IE8/9/10 after Jan 12 2016 |
| 20 | 958 | help | 0.96 | 130 | TEXT | Just got my first job as a programmer — thank you |
| 21 | 955 | (none) | 0.98 | 51 | VIDEO | Water dynamics in my evolution simulator (TypeScript/WebGL2) |
| 22 | 953 | (none) | 0.97 | 167 | LINK | NASA's next-gen mission control system is written in JavaScript |
| 23 | 952 | (none) | 0.97 | 31 | TEXT | Fellow humans, it is 2021-01-01T00:00:00+00:00 (AutoModerator) |
| 24 | 933 | (none) | 0.91 | 254 | LINK | How it feels to learn Javascript in 2016 |
| 25 | 921 | (none) | 0.98 | 186 | LINK | core-js maintainer: "So, what's next?" |
Observations:
- Legacy skew: 24 of the top 25 are from 2015-2021. The only recent entry is "In 1995, a Netscape employee wrote a hack" (Dec 2025). Nothing from 2022-2024 made the top 25 all-time. This is a community where the canon is frozen.
- Ironic flair usage: The "help" flair on "Oracle Owns Javascript" (#8) and "Just got my first job" (#20) is used for non-help content — a commiseration post and a thank-you note. The "solved!" flair on the poop emoji router post is used retrospectively after the community helped solve it.
- No flair dominates: 22 of top-25 have empty flair. Flair is not required and not a correlator of success.
- AutoModerator in top 25: A pinned New Year's announcement post at #23. Ignore for analysis purposes.
4. Content Type Dominance at Scale
| Flair | Count in Top 25 | Count in Top 50 | Count in All 309 | Avg Score (All) | Avg Ratio (All) | Best Post |
|---|---|---|---|---|---|---|
| (none / empty) | 22 | 45 | ~285 | ~280 | ~0.92 | Pass by reference !== pass by value (3,332) |
| AskJS | 0 | 0 | ~12 | ~90 | ~0.87 | [AskJS] Should r/javascript join the Reddit API protest (837) |
| Showoff Saturday | 1 | 1 | ~5 | ~210 | ~0.96 | Bell schedule app (1,000) |
| help | 2 | 2 | ~3 | ~720 | ~0.97 | Oracle Owns Javascript (1,241) |
| solved! | 1 | 2 | ~3 | ~500 | ~0.96 | Poop emoji SSID (2,381) |
| Subreddit Stats | 0 | 0 | ~2 | ~5 | ~0.80 | Weekly recap (bot post) |
Surprising findings:
- Flair barely matters. 95% of top posts use empty flair. The community does not use flair as a filter mechanism the way r/macapps or r/ClaudeAI do.
- AskJS is a distribution dead zone for visibility — no AskJS post is in the top 50, and most land at 80-160 score. BUT AskJS posts have high comment counts relative to score (see Section 9) — they are discussion posts, not visibility posts.
- The "help" and "solved!" flairs are legacy — they were used before the 2018 ban on help content. They exist in top-25 only because those posts are from 2015-2018.
- Showoff Saturday is underrepresented in the top 25 — only "bell schedule app" at 1,000. Most Showoff Saturday posts land at 2-30 score because they're in a weekly mega-thread.
5. Content Archetypes That Work
Ranked by score ceiling. Each archetype is derived from actual posts in the data.
Archetype 1: The "JS Trivia Bombshell" — Score range: 600-3,332
The single highest-performing category. A short, provocative fact or demonstration about how JavaScript actually works under the hood.
Examples:
- "Pass by reference !== pass by value" (3,332) — a gif demonstrating a value-vs-reference distinction
- "Nobody talks about the real reason to use Tabs over Spaces" (2,690, 816 comments) — an accessibility essay
- "TIL you can graphically show tables in the console" (821)
- "TIL about Math.hypot()" (127)
- "Why NaN !== NaN in JavaScript" (71)
- "Why is
typeof null === 'object'" (138) - "new Date('wtf') - How well do you know JavaScript's Date class?" (163)
The pattern: A surprising or counter-intuitive fact about the JS language itself, presented as a revelation. The post doesn't need to be original research — it just needs to make people think "wait, really?" The language's historical quirks (null, NaN, Date, typeof) are evergreen topics.
Why it matters for distribution: If you're launching a developer-focused product, lead with a weird JS fact your product helps with. "TIL about X" and "Why X in JavaScript" are high-performing title formulas even in 2026.
Archetype 2: The Ecosystem Earthquake — Score range: 500-1,277
Major news about a library, platform, company, or language that affects every JS dev.
Examples:
- "I'm harvesting credit card numbers and passwords from your site" (1,277) — security essay
- "Moment.js Throws in the Towel" (1,193)
- "GitHub acquires NPM" (1,113)
- "Microsoft won't support IE8/9/10" (978) and "Microsoft finally retiring Internet Explorer" (891)
- "core-js maintainer: 'So, what's next?'" (921)
- "Node.js creator Ryan Dahl urges Oracle to release JavaScript trademark" (585)
- "Deno 1.0 released!" (604)
- "A 10x Faster TypeScript" (614) — Microsoft's Rust port announcement
The pattern: Breaking news that every JS developer will discuss at standup tomorrow. Links to official announcements (github.blog, devblogs.microsoft.com, github.com/release) do better than blog takes. The community rewards being the first to surface big news.
Why it matters for distribution: You cannot manufacture an earthquake, but you CAN time your product launch to piggyback off one. If Oracle releases the JavaScript trademark, launch your JS-adjacent product that same week.
Archetype 3: The Polished Open-Source Project — Score range: 500-1,100
A project launch that hits the bar: legitimate open source, real code link, and a solves-a-real-problem framing.
Examples:
- "I created Deskreen. Free open source desktop app... second screen... Electron, React" (1,001)
- "I built Apple Music using ReactJS, Redux, and Styled Components" (1,368)
- "A teacher at my school was sick of remembering bell schedules" (1,000, Showoff Saturday)
- "I launched iHateRegex.io - A Regex cheatsheet for the haters" (1,034)
- "I created an Open Source Google Drive Clone - MyDrive" (739)
- "I built the worlds fastest VIN decoder" (Corgi, 182) and followups
- "I built a zero-dependency TypeScript library for reading, writing, and converting media files" (mediabunny, 127)
- "49 string utilities in 8.84KB with zero dependencies" (130)
- "Built a caffeine cutoff calculator in vanilla JS" (98)
The pattern: Must be open source. Must have a real GitHub repo. Must solve a problem (not just be a demo). Must disclose the stack in the title. Videos of the app in action outperform static images, but static posts with strong writeups also work.
Why it matters for distribution: This is THE archetype for launching a library or tool on r/javascript. The ceiling is ~1,000-1,500. Expect 70-200 if your project is solid but not viral.
Archetype 4: The Historical / Cultural Deep Dive — Score range: 250-1,014
Long-form content about JavaScript's history, quirks, or cultural moments.
Examples:
- "In 1995, a Netscape employee wrote a hack in 10 days" (1,014)
- "Temporal: The 9-Year Journey to Fix Time in JavaScript" (123)
- "JavaScript's upcoming Temporal API and what problems it will solve" (119)
- "The many, many, many JavaScript runtimes of the last decade" (110)
- "Good news: JavaScript is 30 years old today!" (256)
- "how actually JavaScript works behind the scenes" (77)
- "Why ARM has a JavaScript Instruction" (71)
The pattern: Reflects on the language's evolution or internals. arstechnica, bloomberg.github.io, and long personal blog posts all perform in this archetype. Bonus points if it ties into the Oracle trademark narrative.
Why it matters for distribution: Write a "behind-the-scenes" or "history of X" piece about whatever infrastructure your product depends on. The community rewards lore.
Archetype 5: Security & Supply Chain Alert — Score range: 70-720
Supply chain compromises, CVEs, vulnerability disclosures, and defensive tooling.
Examples:
- "axios 1.14.1 and 0.30.4 on npm are compromised" (228)
- "Backdoors can be hidden in JS code using 'invisible' variables" (720)
- "The Axios supply chain attack used individually targeted social engineering" (199)
- "NPM package 'error-ex' just got published with malware (47m downloads)" (97)
- "JSON-formatter chrome extension has gone closed source and now begs for donations" (113)
- "Better-Auth Critical Account Takeover" (69)
- "If you have an npm package, read this before November 2025" (74)
- "Minimum Release Age is an Underrated Supply Chain Defense" (115)
- "ESLint compromised" (615, legacy)
- "A CSS Keylogger" (692, legacy)
The pattern: Security content is the dominant "trending" archetype in 2025-2026. Post a CVE, a compromised package, or a defensive technique. The community rewards BOTH the alert AND the defensive response. The title should include the package name or CVE number.
Why it matters for distribution: If your product touches security, linter, sandbox, supply chain, or deps — this is your archetype. Lead with the attack, position your tool as the defense.
Archetype 6: The Tooling Benchmark / "X is Nx faster" — Score range: 70-614
A rewrite or new tool claiming significant speed improvements, usually Rust-based.
Examples:
- "A 10x Faster TypeScript" (614) — Microsoft's Go-based rewrite
- "TypeScript has native support in all major JavaScript runtimes" (506)
- "VoidZero announces Oxlint 1.0" (158) and followups
- "Announcing Vite+ Alpha" (145)
- "Vite 8 has been released" (203)
- "VoidZero announces Rolldown-Vite" (125)
- "es-toolkit, a drop-in replacement for Lodash, achieves 100% compatibility" (112)
- "Towards a faster 'deep equal' function in javaScript" (115)
- "49 string utilities in 8.84KB" (130)
The pattern: Benchmark post with a clear "Nx faster than X" claim, typically backed by a Rust rewrite or clever algorithm. The community loves quantified performance claims. Include a comparison table in the post body.
Why it matters for distribution: If your library is faster than the incumbent, say so in the title with a concrete number. "Nano-string-utils: 49 string utilities in 8.84KB (8x smaller than lodash, faster too)" is a near-ideal title.
Archetype 7: The Browser/Runtime Standards Win — Score range: 90-728
Positive news about browser APIs, ECMAScript proposals, or runtime improvements.
Examples:
- "Bootstrap 5 is dropping IE 10 & 11 browser support" (728)
- "Bootstrap 5 will remove jQuery" (690)
- "Node.js will include support for
fetch" (568) - "Priority Hints" (591)
- "VS Code can now auto-update import paths" (675)
- "Temporal API Ships in Chrome 144" (183)
- "TIL the Web Speech API exists" (118)
- "React Native has been relicensed to MIT" (681)
The pattern: "X is finally here" or "Y is finally gone." Progress narratives perform reliably. Deprecation of old tech (IE, jQuery, callbacks) is especially strong.
6. Format Analysis
| Format | Top 25 (%) | Top 50 (%) | All 309 (%) |
|---|---|---|---|
| LINK | 17 (68%) | 38 (76%) | ~235 (76%) |
| TEXT | 5 (20%) | 9 (18%) | ~60 (19%) |
| VIDEO | 3 (12%) | 3 (6%) | ~5 (2%) |
| IMAGE | 0 (0%) | 0 (0%) | ~3 (1%) |
| GALLERY | 0 (0%) | 0 (0%) | 0 (0%) |
| GIF | 0 (0%) | 0 (0%) | ~1 (1%) |
This is overwhelmingly a link-sharing community. Image and gallery posts are essentially banned by culture and Rule 6 (low-effort content). The ~3 image posts in the dataset are either legacy (2015-2019) or technical diagrams like "Priority Hints" (591).
Text posts are viable but restricted to:
- [AskJS] discussion posts
- Mod announcements (distinguished)
- Long-form essays with substantial technical content and embedded code blocks (the "Tabs over Spaces accessibility" essay at 2,690 is the canonical example)
- Breaking news with context the poster wants to add
Video is only successful for project demos that show the app in action. Even then, only 3 videos made the top 50 and none were posted after 2019.
What Format to Use For What
- Library / tool launches → LINK to github.com with a detailed write-up in the selftext (if link is allowed) or in a pinned comment. NEVER post as a TEXT self-post with a link embedded — the mods auto-remove.
- News / releases → LINK to the official source (github.blog, devblogs.microsoft.com, nodejs.org). Direct official sources outperform third-party coverage.
- Essays / deep dives → LINK to your blog post. Personal blog posts on pzarycki.com, waspdev.com, bloomberg.github.io all landed in the top 100.
- Discussion / questions → TEXT with
[AskJS]prefix. Never try to get visibility this way; use it for community conversation only. - Humor / memes → Do not post. Rule 6 and community enforcement will remove or downvote it. Post to r/ProgrammerHumor instead (explicit instruction in the wiki).
- Tutorials for beginners → Do not post. Route to r/LearnJavascript (explicit instruction in submit_text).
What Makes a Good Linked Article
Because LINK dominates, title engineering is 80% of success. Production quality of the linked article matters less than:
- A clickable title — see Section 8
- An authoritative or technical domain — github.com, github.blog, devblogs.microsoft.com, developer.mozilla.org, and personal dev blogs all work. Medium.com is explicitly penalized if it's behind the membership paywall (see mod post at 693).
- The article itself must have actual code or a write-up — Rule 2 is enforced by the community, not just mods. Posts that link to a marketing page get called out in comments and lose ratio fast.
7. Flair/Category Strategy
r/javascript's flair system is thin and mostly unused. Unlike r/macapps or r/ClaudeAI where flair is a core signal, here the empty flair is the default and the best performer.
| Flair | Raw Performance | Distribution Utility |
|---|---|---|
| (none) | Highest (avg ~280, ceiling 3,332) | Default; use for all project launches, news, essays |
| AskJS | Low (avg ~90, ceiling 837) | HIGH for discussion; drives comments even when score is meh |
| Showoff Saturday | Medium (avg ~210, ceiling 1,000) | The ONLY safe flair for "here's my project" on Saturdays |
| help / solved! | Historical only | Don't use; routed to r/LearnJavascript |
Title-prefix tags are the real "flair" here:
- [AskJS] — Mandatory for self-posts (text posts without a link). Use this prefix for every discussion/question post. Examples: "[AskJS] What's a small coding tip that saved you HOURS?" (161), "[AskJS] Rejected by ATS for 'no JavaScript experience'" (130), "[AskJS] JSDoc Reality Check" (22). Score ceiling: ~830.
- [OS], [FREE], [Giveaway] — Not used. Do not invent tags the community doesn't use.
- TIL — Not a formal tag but a high-performing title prefix. "TIL you can graphically show tables in the console" (821), "TIL about Math.hypot()" (127), "TIL the Web Speech API exists" (118).
- Announcing — Standard prefix for official releases. "Announcing TypeScript 6.0 Beta" (253), "Announcing TypeScript 5.9" (66), "Announcing Vite+ Alpha" (145).
Pricing model hierarchy (most to least community-friendly):
- Free and open source (MIT/Apache) — the default expectation. Anything else is suspect.
- Freemium with free tier that's actually useful — tolerated, expect pushback in comments asking "what's the catch?"
- Source-available (e.g., BSL) — viewed skeptically; the JSON-formatter hijack post (113) and styled-components fork drama (103) show the community actively polices when OSS libraries go commercial.
- Paid SaaS — Rule 7 effectively prohibits this. The "i18next added a controversial console notice" post (43) documents exactly what happens when a library nudges users toward paid services: the community revolts.
- Subscription with lockout — Will get removed under Rule 7 or downvoted below 30.
The "100% free, forever" framing in the ittysockets post (53) is a direct response to this hierarchy.
8. Title Engineering
Top 10 titles deconstructed
- "Pass by reference !== pass by value" (3,332) — Technique: code-operator syntax ("!==") in a title. Signals technical substance, zero fluff.
- "After learning JS more than a year ago and falling in love with React Native, this is my first project, Tour, a drag-drop trip planner" (2,847) — Technique: personal journey + concrete product + stack disclosure.
- "Nobody talks about the real reason to use Tabs over Spaces" (2,690) — Technique: contrarian framing on a canonical debate.
- "Can you help me allow my router to accept 💩 as the SSID?" (2,381) — Technique: oddly specific + emoji + help framing (legacy, pre-2018 help ban).
- "I built Apple Music using ReactJS, Redux, and Styled Components" (1,368) — Technique: clone-of-famous-product + explicit stack.
- "I'm harvesting credit card numbers and passwords from your site. Here's how." (1,277) — Technique: first-person villain framing + promise of technique.
- "Statistics for this post are updated real time in the comments" (1,272) — Technique: meta self-reference.
- "Oracle Owns 'Javascript', so Apple is taking down my app!" (1,241) — Technique: news hook + outrage narrative.
- "Moment.js Throws in the Towel: 'It is not dead, but it is indeed done.'" (1,193) — Technique: quote-in-title + personification.
- "Google, Microsoft pitch in some spare change to keep Mozilla's Web Docs online bible alive" (1,176) — Technique: journalistic voice + institution name-dropping.
Title Formulas That Work
-
The "I built X with [stack]" formula — "I built the worlds fastest VIN decoder" (182), "I built a zero-dependency TypeScript library for reading... media files" (127), "I built a real-time ASCII camera in the browser (60 FPS, Canvas, TypeScript)" (127), "I built the fastest way to render rich text on canvas 5x faster than SVG foreignObject" (44). Include stack and concrete claim.
-
The "Announcing X [version]" formula — "Announcing TypeScript 6.0 Beta" (253), "Announcing Vite+ Alpha" (145), "Announcing TypeScript Native Previews" (133), "Announcing npmx" (71). Standard for official releases. Works best from a known maintainer account.
-
The "X with N [metric]" formula — "49 string utilities in 8.84KB" (130), "A 10x Faster TypeScript" (614), "bonsai - a safe expression language for JS that does 30M ops/sec with zero dependencies" (100), "How we cut CKEditor's bundle size by 40%" (71). Concrete numbers drive clicks.
-
The "Why X in JavaScript" / "TIL X" formula — "Why is
typeof null === 'object'" (138), "Why NaN !== NaN in JavaScript" (71), "Why Next.js Falls Short on Software Engineering" (112), "TIL about Math.hypot()" (127), "TIL the Web Speech API exists" (118). Evergreen deep-dive prompt. -
The "X package is compromised" formula — "axios 1.14.1 and 0.30.4 on npm are compromised" (228), "NPM package 'error-ex' just got published with malware" (97), "ESLint compromised, may have stolen your credentials" (615). Include package name + version + "compromised/malware" keyword.
-
The "Zero dependencies / pure JS" formula — "Zero-dependency TypeScript library..." (127), "Basic physics engine in about 100 lines of pure JavaScript" (67), "I implemented an ARMv4 CPU emulator in pure JavaScript — no WASM" (70). "No dependencies" and "pure JS" are positive signals this community rewards.
Title Anti-Patterns (community-specific)
- Framework-specific titles — "React Hooks tutorial", "Vue 3 guide" get routed to r/reactjs or r/vuejs. Stay language-level.
- Beginner positioning — "My first JavaScript project" without substantial technical depth lands below 50. The audience is senior.
- Clickbait metrics — "My package got 10k downloads" or "I reached 1000 stars" posts don't work unless tied to a technical story. "We just hit 1400+ stars on Github" inside the ForesightJS post body is fine; putting it in the title would tank the post.
- Marketing speak — "Revolutionary new framework", "Game-changing library", "Modern solution" all signal AI-generated or commercial content. "A 10x Faster TypeScript" works because Microsoft backs it; "The fastest JavaScript framework" from an unknown account does not.
- Listicle titles — "10 JavaScript tricks", "5 reasons to use X" are auto-removed by Rule 6 (listicles are explicitly banned). The one exception in the dataset is "50+ JavaScript quiz questions" (612) which survives because it links to an interactive quiz, not an article.
- Medium.com links — The community actively reports Medium posts behind the membership paywall. If your write-up is on Medium with the membership badge, don't post it here.
- "Which is better?" framing — "React vs Vue 2026" type comparisons get routed to other subs or ignored.
9. Engagement Patterns
Comments-to-upvote (C/U) ratios by archetype (approximate, based on dataset averages):
| Content Type | Avg Score | Avg C/U Ratio | Interpretation |
|---|---|---|---|
| AskJS discussions | ~130 | 0.40-0.60 | HIGH discussion, low visibility |
| Debate/contrarian posts | ~400 | 0.30-0.50 | Tabs-vs-spaces (0.30), Crockford (0.46) |
| Breaking news (acquisitions) | ~900 | 0.15-0.25 | NPM/GitHub/Oracle news |
| Library launches | ~200 | 0.15-0.30 | Depends on controversy |
| TIL / deep-dive essays | ~200 | 0.15-0.30 | Reward for good content |
| Official release announcements | ~200 | 0.08-0.20 | Passive upvotes, low comments |
| TypeScript releases | ~200 | 0.05-0.15 | Very passive |
| Security advisories | ~150 | 0.10-0.20 | Upvoted fast, commented less |
Highest discussion topics (most comments regardless of score):
- Tabs vs spaces — "Nobody talks about the real reason..." (2,690 score, 816 comments)
- Gender/inclusion drama — "ElectronConf postponed..." (858 score, 818 comments)
- Corporate acquisitions — "Microsoft to Acquire GitHub" (728 score, 296 comments)
- "Coming from X to JS" — "Coming from Python to JS" (608, 157 comments)
- "Oracle Owns Javascript" — (1,241, 596 comments)
- Career struggles — "Just got my first job" (958, 130 comments)
- Trademark/politics — Multiple Oracle/Deno posts
- "[AskJS] What's hardest to learn" (11 score but 61 comments — 5.5x C/U)
Conditional recommendation:
- If your goal is VISIBILITY → use the "Polished Open-Source Project" archetype or the "Ecosystem Earthquake" archetype. News links outperform discussion posts on score.
- If your goal is RELATIONSHIPS and discussion → use [AskJS] discussion posts or contrarian essays. You'll get 10x the C/U ratio even though the score is lower.
- If your goal is distribution (get people to try your tool) → the "I built X with [stack]" archetype is optimal. Include the GitHub link in the title, the stack, and a concrete differentiator (bundle size, speed, zero deps).
10. What Gets Downvoted
Posts with ratios below 0.85 in the dataset:
| Title (summarized) | Score | Ratio | Anti-pattern |
|---|---|---|---|
| TypeScript has native support in all major JavaScript runtimes (announcement tone from non-maintainer) | 506 | 0.85 | Possibly seen as hype |
| Safari/WebKit is the new Internet Explorer. Change my mind. | 105 | 0.72 | Change-my-mind framing, reused content |
| Petition: No AI code in Node.js Core | 210 | 0.75 | Polarizing even among allies |
| 5 years ago I started to work on the next-gen fetcher | 78 | 0.80 | "Next-gen" marketing word |
| fetch() still can't resume a failed download so i built that | 75 | 0.78 | Tone: complains about platform |
| I built the fetch() integrity check that browsers have refused... | 105 | 0.77 | "Refused to ship for 10 years" framing |
| Replacing JS with just HTML | 72 | 0.77 | Anti-JS content in r/JAVASCRIPT |
| Elysia JIT "Compiler", why it's one of the fastest | 81 | 0.79 | Scare quotes + "fastest" claim |
| I needed a tiny frontend framework with no bloat, so I built a 1.7kb one | 14 | 0.61 | "I built my own framework" |
| Gea – The fastest compiled UI framework | 9 | 0.60 | "The fastest" superlative |
| Crockford (essay) | 567 | 0.87 | Personal attack territory |
| Dear JavaScript | 810 | 0.89 | Rant without code |
| Why was Records & Tuples proposal withdrawn | 82 | 0.87 | Negative framing on ecosystem |
| ESM vs CJS — Why Your import Still Breaks... | 5 | 0.56 | AI-generated content vibes |
any caused a production bug... | 0 | 0.35 | stackdevlife.com (low-credibility blog, repetitive posting) |
| Environment Variables You're Leaking... | 0 | 0.25 | Same blog, same poster, clickbait |
| ORM Comparison (2026) | 8 | 0.61 | Commercial comparison |
| Reading online is exhausting... I built Yumi Reader | 0 | 0.46 | Rule 2 (where's the JS?) |
Ratio tier interpretation:
- Above 0.94: Universally well-received. The bar for "good" posts.
- 0.85-0.94: Net positive but with friction. Usually means the post has merit but something (tone, claim, framing) rubs people wrong.
- Below 0.85: Controversial or community-hostile. Expect active downvoting and critical comments.
- Below 0.60: Dead on arrival. Usually means the post was seen as spam, AI-generated, or rule-violating.
Named Anti-Patterns (community-specific)
- The "I built my own framework" trap — "sigwork" (14, 0.61), "Gea: The fastest compiled UI framework" (9, 0.60), "Ostov" (31, 0.73). New frameworks from unknown authors tank. The community is fatigued. Only exception: the framework is from a known maintainer (Tanner Linsley, manniL, sindresorhus).
- The "fastest / Nx faster" superlative without a benchmark link — Claims of "the fastest X" without immediate benchmark links get downvoted. Contrast "A 10x Faster TypeScript" (614, has official benchmarks) with "Gea: The fastest compiled UI framework" (9).
- The repetitive blog poster — stackdevlife.com, everythingfrontend.com, danfry1.github.io, cardog-ai appear in the data 3-5 times each with decreasing scores. The community tracks repeat self-promoters. If you post more than once from the same domain within a month, your scores fall.
- The "browsers refused to fix this for N years" complaint — "I built the fetch() integrity check that browsers have refused to ship for 10 years" (105, 0.77). Entitled framing gets punished.
- The "change my mind" title — "Safari/WebKit is the new Internet Explorer. Change my mind." (105, 0.72). Lazy framing.
- Generic listicle blog posts — "ESM vs CJS — Why Your import Still Breaks in 2026" (5, 0.56), "Your Throttling Is Lying to You" (4, 0.61). Content-marketing blogs with SEO titles tank.
- Projects that violate Rule 2 — "Yumi Reader" (0, 0.46) and similar link-only project posts with no code disclosure fall below 0.5 ratio immediately.
Blacklist / Hall of Shame
The subreddit does NOT operate a public blacklist the way r/macapps does, but it maintains informal enforcement:
- Medium.com membership paywall authors are explicitly spammed (mod post at 693).
- New user auto-removal prevents brand-new accounts from posting at all.
- The community has a long memory for repeat low-quality self-promoters — the same accounts show up with declining scores (see Careful-Falcon-36's stackdevlife posts, and the OtherwisePush6424 ffetch/fetch-kit series).
11. The Distribution Playbook
Phase 1: Pre-launch (2-4 weeks)
- Subscribe and lurk — Browse "top of week" and "new" daily for 2 weeks. Note which link domains dominate (github.com/blog, devblogs.microsoft.com, nodejs.org). Note who the recurring commenters are.
- Build karma on adjacent subs — r/javascript auto-removes new user submissions. Post comments and links on r/node, r/reactjs, r/typescript, r/webdev first. Aim for >100 comment karma and a 30-day account minimum before your first post here.
- Read the wiki — Specifically the "Posting: Showing off a Project" section. Your project needs one of: unbuilt source link, write-up, or working codepen.
- Contribute in comments — Help people in [AskJS] threads. The community notices repeat helpful accounts.
- Don't post on Medium if you want to post here — Write your launch article on github.io, your own blog, or dev.to. Medium with paywall is blacklisted.
Phase 2: Launch day
- Pick the right day — Saturdays are for Showoff Saturday (weekly mega-thread). Post standalone project launches Tuesday-Thursday during US afternoon (the legacy data shows highest activity 14:00-20:00 UTC).
- Use the right format — LINK post to your GitHub repo OR to a blog post with embedded code. Never post a TEXT self-post with a marketing link inside it.
- Title formula — "I built X [concrete metric] with [stack]" or "Announcing X [version]" if you're a known maintainer. Include the stack and the differentiator.
- Flair — Leave empty. Do not use [AskJS] for project posts.
- Write a strong selftext (if LINK post supports it) — Describe the problem, the solution, the tradeoffs, and the alternatives you compared against. The community rewards technical honesty over marketing.
- Include the GitHub link prominently — Comments will demand it if it's not in the OP.
Phase 3: First 24-48 hours
- Respond to every technical comment within 2 hours — The community is fast and unforgiving. Unanswered "what about X alternative?" comments tank the ratio.
- Engage with criticism directly — If someone says "why not just use es-toolkit?", answer with a concrete differentiator, not marketing language. "es-toolkit doesn't handle X edge case, and here's why that matters for Y use case."
- Don't upvote-brigade — Don't mention the post on Discord or Twitter asking for upvotes. The community has a good nose for brigading and will downvote on discovery.
- Measure success at 4-hour checkpoints:
- Hour 4 score <10: Post is dead. Don't repost. Wait 2+ months before trying a different angle.
- Hour 4 score 10-30 with ratio >0.85: Normal. Continue engagement.
- Hour 4 score 30-80: Strong start. You're headed for 100-300.
- Hour 4 score >80: Unusual. Likely caught the algorithm. Could hit 500+.
- Watch your ratio — If ratio drops below 0.85, read the critical comments and respond. Ratio below 0.75 usually means the post will be removed or die.
Phase 4: Ongoing presence
- One project post per month max — The community tracks repeat posters. See the cardog-ai, everythingfrontend, stackdevlife pattern: first post does OK, subsequent posts tank.
- Post updates as news, not re-launches — "v2.0 adds X" is acceptable. "I built Y!" when Y is the same project as last month is not.
- Participate in [AskJS] threads — Build relationships by answering questions in your area of expertise.
- Cross-post to r/node, r/typescript, r/reactjs when appropriate — These are the siblings. The same content can score differently in each.
Community-specific comment strategy (pre-written replies)
"Why not just use [existing tool]?"
"Good question. [existing tool] is great for [scenario A]. I built this because I needed [specific constraint] that [existing tool] doesn't handle — specifically [technical detail]. Here's a comparison: [benchmark or table]."
"Is this a paid product?"
"Nope, 100% free and open source under [MIT/Apache]. No subscription, no telemetry, no upsell. Repo: [github link]."
"Where's the code?" / "Where's the JavaScript?"
"Repo link is in the post body, but here it is again for visibility: [github link]. The main entry point is in [src/index.ts] and the [interesting subsystem] is in [path]."
"Is this AI-generated?"
"I wrote this by hand over [time period]. [Specific detail about the hardest problem you solved, which AI wouldn't know.]"
"How does this handle [edge case]?"
"Currently it [behavior]. I'm aware of the edge case around [X], and it's tracked in [issue link]. PRs welcome."
Stealth distribution tactics
- Answer [AskJS] threads with your library as an example — If someone asks "what's a good state management library for X", mentioning your library with context (not a drive-by link) is accepted.
- Post Temporal API / Date-fns / supply chain defense articles that tangentially showcase your expertise — Write about a topic you know well; your product gets mentioned naturally.
- Comment on "Ecosystem Earthquake" posts — When Oracle trademark news or axios compromise hits the top, comment with technical insight. Build rep without posting.
- Contribute to official npm security / TC39 / Node.js discussions linked from the sub — becoming a named contributor to a discussion that's posted here gets you comment-level visibility.
Score-tier calibration
- Typical library launch: 70-200. Plan your expectations around this.
- Strong library launch with hot topic tie-in (supply chain, TypeScript, Rust tooling): 200-500.
- Viral library launch (rare): 500-1,000. Requires either a famous maintainer account OR an extremely novel demo.
- News/release from known maintainer: 100-400 for TypeScript point releases; 500-650 for major version bumps.
- Security advisory for widely-used package: 100-300 within 24 hours.
- Deep-dive essay on language internals: 70-200.
- [AskJS] post: 10-150 for typical; 800+ possible for hot topics. Low visibility, high discussion.
- TIL post: 70-150, with ceiling around 820 for genuine discoveries.
Post-publication measurement
| Metric | Signal |
|---|---|
| Hour 2 score <5 | Post is shadow-dead or auto-removed. Check if it's visible to logged-out users. |
| Hour 4 ratio <0.75 | Post is being actively downvoted. Read comments; you may need to clarify or withdraw. |
| Comments with "what about X?" and no reply | Ratio will drop. Respond immediately. |
| Mod-distinguished comment | Rules were likely violated. Read carefully and comply. |
| "Where's the JS?" in comments | You violated Rule 2. Add a code link to the post body ASAP. |
| Comments like "spam" or "promotion" | You violated the 9:1 rule or Rule 7. Expect removal. |
12. Applying This to Any Project
Quick-Reference Checklist (before you hit Publish)
- Account is >30 days old and has >100 karma on other subs
- Post is a LINK (not a TEXT self-post with a link inside)
- Title follows one of the 6 formulas in Section 8
- Title includes the stack or a concrete metric
- Linked destination contains actual code or a real write-up (Rule 2)
- Project is open-source with a visible GitHub link in the OP or selftext
- No "fastest X" or "next-gen" superlative without a benchmark link
- No Medium.com paywall
- Flair is empty (or Showoff Saturday if posting on Saturday)
- You've written replies to the 4-5 predictable comments in advance
- You can be online for the first 4 hours to respond
Scenario-based launch guides
Scenario 1: Your project is free / open source
- Optimal launch formula: "I built [X] with [stack] — [concrete differentiator + metric]. [github link]"
- Archetype: Polished Open-Source Project (Arch 3) + Tooling Benchmark (Arch 6) if applicable
- Key risk: Rule 2 violation. Make sure your repo is unminified and has a real README.
- Expected score: 70-300.
Scenario 2: Your project uses one-time / lifetime pricing
- Optimal launch formula: Don't. Rule 7 prohibits paid product promotion.
- Workaround: Open-source a meaningful part of your product (the core engine, a CLI, a library) and post THAT. Mention the paid product in the repo README, not in the post.
- Key risk: Mods remove as advertising.
Scenario 3: Your project is a subscription SaaS
- Optimal launch formula: Don't post directly. r/javascript bans subscription promotion outright.
- Workaround: Write a technical deep dive on a problem your SaaS solves (e.g., "How we handle multi-tenant row-level security in Node.js"). Link to your blog, not your pricing page.
- Key risk: Ban + permanent domain blacklist.
Scenario 4: Your project was built with AI
- Optimal launch formula: Don't advertise it. The community is explicitly hostile to "vibe-coded" posts. If asked directly, acknowledge the AI assistance but describe what YOU engineered on top.
- Key risk: Ratio tanking if you brag about the AI use. See "Petition: No AI code in Node.js Core" (210) and the general anti-AI-code sentiment.
Scenario 5: Your project is a security / supply chain tool
- Optimal launch formula: Lead with a recent named attack (axios compromise, error-ex, left-pad, etc.) and explain how your tool defends against it.
- Archetype: Security Alert (Arch 5).
- Key risk: Nothing significant. This is the most welcoming archetype in 2026.
- Expected score: 100-300.
Cross-posting guidance (vs. other analyses)
- On r/webdev: Frame as "I got tired of fighting [framework pain point] so I built this." r/webdev rewards craft-identity language. Include visuals/screenshots.
- On r/programming: Frame as news/announcement. Lead with the technical hook, not the personal story. No images.
- On r/node: Frame server-specific. Highlight Node.js version, runtime perf, native modules.
- On r/reactjs: Frame as React-specific with hooks/API code. r/javascript will remove it; r/reactjs will welcome it.
- On r/typescript: Frame as "written in TypeScript" with type examples. r/typescript has a much higher ceiling for TS-specific content than r/javascript.
- On r/javascript: Frame as language-level, runtime-agnostic, with a concrete metric. Strip framework-specific language. Lead with the stack and the differentiator.
The reframing rule: A post that says "I built a React component library" belongs on r/reactjs. To post the same project on r/javascript, reframe as "I built a component library using [technical primitive] — here's how I made it bundle-size efficient and framework-agnostic." r/javascript rewards the language-level framing.