for daring to submit Python/Java/Rust/literally anything else.
Features include:
- A fake "analysis" progress bar with fake terminal logs that say things like "Cross-referencing ECMAScript spec..."
- A confidence meter that always hits 99.99% NOT JAVASCRIPT for non-JS code
- A "Convert to JavaScript" button that redirects you to Google Translate
- A toast that just says "Just learn JavaScript bro."
Built on the core belief that JavaScript is the only language that matters.
Demo
π Live Demo
JavaScript submitted: 200 OK β JavaScript Detected Successfully. Excellent choice. Superior language.
Submitted some other language: 418 I'm a Teapot β Cannot process non-JavaScript input
Code
JS code recogniser - Build something completely useless
NotJS π«
If it's not JavaScript, it's a teapot.
A dead-serious code analyzer that does exactly one thing β detect whether your code is JavaScript or not.
image
Features
- Fake terminal analysis with fake logs
- Scoring engine based on JS keywords, APIs, and vibes
-
418 I'm a Teapot for Python, Java, Rust, and all other inferior languages
- "Convert to JavaScript" button (opens Google Translate)
- Toast message: "Just learn JavaScript bro."
- 99.99% confidence. Always.
Stack
- React 18 (no build step)
- Vanilla CSS
- IBM Plex Mono
- Zero backend. Maximum bias.
Built for
DEV April Fools Challenge 2026
License
MIT β but morally, only JavaScript projects should use this.
How I Built It
Built with React 18 (via Babel standalone, no build step), vanilla CSS, and a deep personal vendetta against other programming languages.
The "analysis engine" (computeScore) is a scoring function that awards points for JS keywords (const, let, =>, async/await), built-in APIs (console.log, fetch, localStorage), and syntax patterns (template literals, optional chaining, spread). It deducts points for anti-patterns from Python, Java, C++, PHP, and Rust. Score β₯ 3 = JavaScript. Score < 3 = teapot.
The UI is a fake terminal β yellow/black JS branding, typewriter headings, animated progress bar, scrolling fake logs. Every screen has an entry animation. The error screen has two buttons: one that shames you before letting you retry, and one that pretends to "convert" your code while opening Google Translate.
Stack:
- React 18 (UMD + Babel standalone)
- IBM Plex Mono, Space Grotesk, Syne (Google Fonts)
- Vanilla CSS (no Tailwind, no UI libs)
- Zero backend. Zero actual analysis. Maximum confidence.
Prize Category
Community Favorite β because nothing brings developers together like the shared delusion that their language is the best one. NotJS is a love letter to JavaScript supremacy, a participation trophy for JS devs, and a gentle (aggressive) nudge for everyone else.
Best Ode to Larry Masinter β Larry Masinter authored RFC 2324, the original 418 I'm a Teapot joke RFC from 1998. NotJS is essentially a shrine to that bit. The entire error screen is built around 418, complete with a fake HTTP response payload, a confidence meter, and a redirect to Google Translate as the "conversion engine." Larry planted the seed. NotJS watered it with JavaScript bias.