Don't paste the ai response at me, please
See the codeAlso responds if you use https://dontquotetheai.com | I was very rushy when getting the domain

A website you send to that one person who answers every question with eight hundred words of ChatGPT they clearly didn't read.
This is satire. Nobody is being attacked, nobody is being cancelled, nobody hates AI, have some humor. Use the tools. Just, you know, read them first.
Spiritual cousin of nohello.net and dontasktoask.com. Static HTML, like the aztecs used to do back in the day. PRs welcome (especially translations).
Don't see your language? Translations are how this page helps people. The whole process is in TRANSLATING.md, you don't need to touch hreflang or render PNGs, CI handles both. Just translate the text and open a PR.
Want to suggest a language? Open an issue or just send the PR (even a half-finished one). We can iterate. Huge thanks to everyone in the Maintainer column above who took the time to make this page work in their language.
A teacher-facing page at /student/ for students who hand in AI-generated work they never read. Registered under pages.student in assets/translations.json.
| Language | Student page | Maintainer |
|---|---|---|
Deutsch (de) | ✅ /student/de | Machine Translated |
English (en) | ✅ /student/ | @ymaldor1 |
Español (es) | ✅ /student/es | Machine Translated |
فارسی (fa) | ✅ /student/fa | Machine Translated |
Français (fr) | ✅ /student/fr | @ymaldor1 |
Magyar (hu) | ✅ /student/hu | Machine Translated |
Հայերեն (hy) | ✅ /student/hy | @vvahans |
Bahasa Indonesia (id) | ✅ /student/id | Machine Translated |
Italiano (it) | ✅ /student/it | Machine Translated |
日本語 (ja) | ✅ /student/ja | Machine Translated |
한국어 (ko) | ✅ /student/ko | Machine Translated |
नेपाली (ne) | ✅ /student/ne | Machine Translated |
Polski (pl) | ✅ /student/pl | Machine Translated |
Português (BR) (pt-br) | ✅ /student/pt-br | Machine Translated |
Română (ro) | ✅ /student/ro | @dorneanu |
Русский (ru) | ✅ /student/ru | Machine Translated |
Српски (sr) | ✅ /student/sr | Machine Translated |
Srpski (lat.) (sr-latn) | ✅ /student/sr-latn | Machine Translated |
Türkçe (tr) | ✅ /student/tr | Machine Translated |
Українська (uk) | ✅ /student/uk | Machine Translated |
简体中文 (zh-cn) | ✅ /student/zh-cn | Machine Translated |
繁體中文 (台灣) (zh-tw) | ✅ /student/zh-tw | Machine Translated |
Apparently my writing was deemed a little too AI-ish, so I am opening this new section to address that.
This website was built using the help of AI, sure, especially because I suck at frontend, and I would never spend hours doing a satirical website to mock AI.
However, I manually checked everything, and I also review and approve every PR here and test every code to make sure things are ok, there are no things like automatic approval or copilot running stuff. Or do you REALLY think Claude suggested something as simple as a bunch of HTML pages?
The text of the website is actually mine, believe it or not. I ran that through an AI reviewer and iterated over it, yes, because I think it writes better than me (especially punctuations, etc) but the original text is fully mine.
People over HN got a bit mad at me because I used AI and said I was being "hypocritical", which doesn't really make sense because the whole point of the website is to not paste things blindly, I never said you cannot use AI. So I decided to do a quick revamp of the text in the original language and English, even though it's not my native language.
If you think the text is bad or still looks like AI, please send me a PR :heart: And if you want to complain about it, I have a place dedicated for your rants.
The site comes in two parts:
/), friendly, work-safe, nohello.net-ish. Safe to send to a coworker, a manager, or basically anyone you don't want to surprise with feelings./angry/), the original, but angrier. Send to people who can handle a joke at volume. Not safe for your manager. Probably.They cross-link to each other (red button on smooth → angry, green button on angry → smooth). Each has its own translations at the same path:
/ → smooth EN
/pt-br.html → smooth PT-BR
/angry/ → angry EN
/angry/pt-br.html → angry PT-BR
/student/ → student EN
/student/fr.html → student FR
CSS and assets are at the root (/styles.css, /assets/). Angry pages reference them with ../.
Static HTML only. A few things worth knowing:
assets/translations.json is the single source of truth for languages. The language dropdown is built at runtime by assets/translations.js from it (each HTML file has a single matching <option> as a no-JS fallback). The same script also rewrites the smooth↔angry cross-link href on any element marked data-variant-toggle, so translated files don't have to hardcode their counterpart's path. A GitHub Action on push to main runs scripts/sync-hreflang.mjs that regenerates the <link rel="alternate" hreflang> block between the <!-- hreflang:start --> / <!-- hreflang:end --> markers in the HTML file, scripts/build-og-images.mjs renders any missing PNGs from their SVG sources, and scripts/sync-seo.mjs regenerates sitemap.xml, robots.txt and the og:locale tag on every page, then commits the result, which triggers Cloudflare to redeploy. This is simpler for translators.html files at clean URLs (/it resolves to it.html). assets/translations.js normalizes the last path segment so the dropdown still highlights the current page when the extension is missing.<link rel="alternate" hreflang="..."> tags stay static in each <head> on purpose (Googlebot renders JS but Bing / Yandex / Baidu are flaky about it).location.hostname so the same code works on both domains (dontpastetheai.com or dontquotetheai.com), it copies whichever one the visitor visited. The inline <script> that used to live in every HTML file got deduped into assets/copy.js; translatable strings come from data-copy-aria and data-copied-text attributes on the button itself.There are two GitHub Actions workflows in .github/workflows/ that basically
sync everything:
validate.yml, runs on every PR and on push to main. Executes scripts/check-translations.mjs (blocking) to verify each language registered in assets/translations.json has its smooth + angry files, correct canonical/og:url, and an OG SVG. It also runs scripts/sync-hreflang.mjs --check, scripts/sync-seo.mjs --check and scripts/build-og-images.mjs --check as informational steps (continue-on-error: true), any differences there are reported but doesn't block the merge, because the sync workflow fixes it on push.sync.yml, runs on push to main. Installs the libs to render image and
the fonts, then sorts translations.json, runs the hreflang, OG image and
SEO scripts, and commits everything.Open index.html in a browser, or run python3 -m http.server from the repo root if you want a local server. Angry pages are at /angry/index.html and friends.
Cloudflare Workers Assets via wrangler.jsonc. Pushes to main go live automatically. Served at both dontpastetheai.com (canonical) and dontquotetheai.com (redirect/mirror), the copy button shows whichever domain the visitor is on.
See TRANSLATING.md.
See LICENSE. Free to share, remix, translate.
HTML
94.1%
JavaScript
4.6%
CSS
1.3%
Don't paste the ai response at me, please
See the codeAlso responds if you use https://dontquotetheai.com | I was very rushy when getting the domain

A website you send to that one person who answers every question with eight hundred words of ChatGPT they clearly didn't read.
This is satire. Nobody is being attacked, nobody is being cancelled, nobody hates AI, have some humor. Use the tools. Just, you know, read them first.
Spiritual cousin of nohello.net and dontasktoask.com. Static HTML, like the aztecs used to do back in the day. PRs welcome (especially translations).
Don't see your language? Translations are how this page helps people. The whole process is in TRANSLATING.md, you don't need to touch hreflang or render PNGs, CI handles both. Just translate the text and open a PR.
Want to suggest a language? Open an issue or just send the PR (even a half-finished one). We can iterate. Huge thanks to everyone in the Maintainer column above who took the time to make this page work in their language.
A teacher-facing page at /student/ for students who hand in AI-generated work they never read. Registered under pages.student in assets/translations.json.
| Language | Student page | Maintainer |
|---|---|---|
Deutsch (de) | ✅ /student/de | Machine Translated |
English (en) | ✅ /student/ | @ymaldor1 |
Español (es) | ✅ /student/es | Machine Translated |
فارسی (fa) | ✅ /student/fa | Machine Translated |
Français (fr) | ✅ /student/fr | @ymaldor1 |
Magyar (hu) | ✅ /student/hu | Machine Translated |
Հայերեն (hy) | ✅ /student/hy | @vvahans |
Bahasa Indonesia (id) | ✅ /student/id | Machine Translated |
Italiano (it) | ✅ /student/it | Machine Translated |
日本語 (ja) | ✅ /student/ja | Machine Translated |
한국어 (ko) | ✅ /student/ko | Machine Translated |
नेपाली (ne) | ✅ /student/ne | Machine Translated |
Polski (pl) | ✅ /student/pl | Machine Translated |
Português (BR) (pt-br) | ✅ /student/pt-br | Machine Translated |
Română (ro) | ✅ /student/ro | @dorneanu |
Русский (ru) | ✅ /student/ru | Machine Translated |
Српски (sr) | ✅ /student/sr | Machine Translated |
Srpski (lat.) (sr-latn) | ✅ /student/sr-latn | Machine Translated |
Türkçe (tr) | ✅ /student/tr | Machine Translated |
Українська (uk) | ✅ /student/uk | Machine Translated |
简体中文 (zh-cn) | ✅ /student/zh-cn | Machine Translated |
繁體中文 (台灣) (zh-tw) | ✅ /student/zh-tw | Machine Translated |
Apparently my writing was deemed a little too AI-ish, so I am opening this new section to address that.
This website was built using the help of AI, sure, especially because I suck at frontend, and I would never spend hours doing a satirical website to mock AI.
However, I manually checked everything, and I also review and approve every PR here and test every code to make sure things are ok, there are no things like automatic approval or copilot running stuff. Or do you REALLY think Claude suggested something as simple as a bunch of HTML pages?
The text of the website is actually mine, believe it or not. I ran that through an AI reviewer and iterated over it, yes, because I think it writes better than me (especially punctuations, etc) but the original text is fully mine.
People over HN got a bit mad at me because I used AI and said I was being "hypocritical", which doesn't really make sense because the whole point of the website is to not paste things blindly, I never said you cannot use AI. So I decided to do a quick revamp of the text in the original language and English, even though it's not my native language.
If you think the text is bad or still looks like AI, please send me a PR :heart: And if you want to complain about it, I have a place dedicated for your rants.
The site comes in two parts:
/), friendly, work-safe, nohello.net-ish. Safe to send to a coworker, a manager, or basically anyone you don't want to surprise with feelings./angry/), the original, but angrier. Send to people who can handle a joke at volume. Not safe for your manager. Probably.They cross-link to each other (red button on smooth → angry, green button on angry → smooth). Each has its own translations at the same path:
/ → smooth EN
/pt-br.html → smooth PT-BR
/angry/ → angry EN
/angry/pt-br.html → angry PT-BR
/student/ → student EN
/student/fr.html → student FR
CSS and assets are at the root (/styles.css, /assets/). Angry pages reference them with ../.
Static HTML only. A few things worth knowing:
assets/translations.json is the single source of truth for languages. The language dropdown is built at runtime by assets/translations.js from it (each HTML file has a single matching <option> as a no-JS fallback). The same script also rewrites the smooth↔angry cross-link href on any element marked data-variant-toggle, so translated files don't have to hardcode their counterpart's path. A GitHub Action on push to main runs scripts/sync-hreflang.mjs that regenerates the <link rel="alternate" hreflang> block between the <!-- hreflang:start --> / <!-- hreflang:end --> markers in the HTML file, scripts/build-og-images.mjs renders any missing PNGs from their SVG sources, and scripts/sync-seo.mjs regenerates sitemap.xml, robots.txt and the og:locale tag on every page, then commits the result, which triggers Cloudflare to redeploy. This is simpler for translators.html files at clean URLs (/it resolves to it.html). assets/translations.js normalizes the last path segment so the dropdown still highlights the current page when the extension is missing.<link rel="alternate" hreflang="..."> tags stay static in each <head> on purpose (Googlebot renders JS but Bing / Yandex / Baidu are flaky about it).location.hostname so the same code works on both domains (dontpastetheai.com or dontquotetheai.com), it copies whichever one the visitor visited. The inline <script> that used to live in every HTML file got deduped into assets/copy.js; translatable strings come from data-copy-aria and data-copied-text attributes on the button itself.There are two GitHub Actions workflows in .github/workflows/ that basically
sync everything:
validate.yml, runs on every PR and on push to main. Executes scripts/check-translations.mjs (blocking) to verify each language registered in assets/translations.json has its smooth + angry files, correct canonical/og:url, and an OG SVG. It also runs scripts/sync-hreflang.mjs --check, scripts/sync-seo.mjs --check and scripts/build-og-images.mjs --check as informational steps (continue-on-error: true), any differences there are reported but doesn't block the merge, because the sync workflow fixes it on push.sync.yml, runs on push to main. Installs the libs to render image and
the fonts, then sorts translations.json, runs the hreflang, OG image and
SEO scripts, and commits everything.Open index.html in a browser, or run python3 -m http.server from the repo root if you want a local server. Angry pages are at /angry/index.html and friends.
Cloudflare Workers Assets via wrangler.jsonc. Pushes to main go live automatically. Served at both dontpastetheai.com (canonical) and dontquotetheai.com (redirect/mirror), the copy button shows whichever domain the visitor is on.
See TRANSLATING.md.
See LICENSE. Free to share, remix, translate.
HTML
94.1%
JavaScript
4.6%
CSS
1.3%