{"id":28151006,"url":"https://github.com/hotheadhacker/no-as-a-service","last_synced_at":"2026-01-21T03:14:03.503Z","repository":{"id":290635171,"uuid":"975111685","full_name":"hotheadhacker/no-as-a-service","owner":"hotheadhacker","description":"No-as-a-Service (NaaS) is a simple API that returns a random rejection reason. Use it when you need a realistic excuse, a fun “no,” or want to simulate being turned down in style.","archived":false,"fork":false,"pushed_at":"2026-01-15T15:44:58.000Z","size":1117,"stargazers_count":5601,"open_issues_count":55,"forks_count":350,"subscribers_count":17,"default_branch":"main","last_synced_at":"2026-01-19T22:32:50.803Z","etag":null,"topics":["api","expressjs","json"],"latest_commit_sha":null,"homepage":"https://naas.isalman.dev/no","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hotheadhacker.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-04-29T19:56:36.000Z","updated_at":"2026-01-19T22:16:18.000Z","dependencies_parsed_at":"2025-12-30T16:02:21.139Z","dependency_job_id":null,"html_url":"https://github.com/hotheadhacker/no-as-a-service","commit_stats":null,"previous_names":["hotheadhacker/no-as-a-service"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hotheadhacker/no-as-a-service","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hotheadhacker%2Fno-as-a-service","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hotheadhacker%2Fno-as-a-service/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hotheadhacker%2Fno-as-a-service/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hotheadhacker%2Fno-as-a-service/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hotheadhacker","download_url":"https://codeload.github.com/hotheadhacker/no-as-a-service/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hotheadhacker%2Fno-as-a-service/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28604997,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T12:01:53.233Z","status":"ssl_error","status_checked_at":"2026-01-20T12:01:46.545Z","response_time":117,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","expressjs","json"],"created_at":"2025-05-15T04:01:49.477Z","updated_at":"2026-01-21T03:14:03.490Z","avatar_url":"https://github.com/hotheadhacker.png","language":"JavaScript","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"readme":"# ❌ No-as-a-Service\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://raw.githubusercontent.com/hotheadhacker/no-as-a-service/main/assets/imgs/naas-with-no-logo-bunny.png\" width=\"800\" alt=\"No-as-a-Service Banner\" width=\"70%\"/\u003e\n\u003c/p\u003e\n\n\nEver needed a graceful way to say “no”?  \nThis tiny API returns random, generic, creative, and sometimes hilarious rejection reasons — perfectly suited for any scenario: personal, professional, student life, dev life, or just because.\n\nBuilt for humans, excuses, and humor.\n\n\u003c!-- GitAds Sponsorship Badge --\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://docs.gitads.dev/\"\u003e\n    \u003cimg src=\"https://gitads.dev/assets/images/sponsor/camos/camo-3.png\" alt=\"Sponsored by GitAds\" /\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  This project is \u003cstrong\u003esponsored by \u003ca href=\"https://docs.gitads.dev/docs/getting-started/publishers\"\u003eGitAds\u003c/a\u003e\u003c/strong\u003e.\u003cbr\u003e\n  You can get your GitHub repository sponsored too — \u003ca href=\"https://docs.gitads.dev/docs/getting-started/publishers\"\u003ecreate your account now\u003c/a\u003e.\n\u003c/p\u003e\n\n---\n\n## 🚀 API Usage\n\n**Base URL**\n```\nhttps://naas.isalman.dev/no\n```\n\n**Method:** `GET`  \n**Rate Limit:** `120 requests per minute per IP`\n\n### 🔄 Example Request\n```http\nGET /no\n```\n\n### ✅ Example Response\n```json\n{\n  \"reason\": \"This feels like something Future Me would yell at Present Me for agreeing to.\"\n}\n```\n\nUse it in apps, bots, landing pages, Slack integrations, rejection letters, or wherever you need a polite (or witty) no.\n\n---\n\n## 🛠️ Self-Hosting\n\nWant to run it yourself? It’s lightweight and simple.\n\n### 1. Clone this repository\n```bash\ngit clone https://github.com/hotheadhacker/no-as-a-service.git\ncd no-as-a-service\n```\n\n### 2. Install dependencies\n```bash\nnpm install\n```\n\n### 3. Start the server\n```bash\nnpm start\n```\n\nThe API will be live at:\n```\nhttp://localhost:3000/no\n```\n\nYou can also change the port using an environment variable:\n```bash\nPORT=5000 npm start\n```\n\n---\n\n## 📁 Project Structure\n\n```\nno-as-service/\n├── index.js            # Express API\n├── reasons.json        # 1000+ universal rejection reasons\n├── package.json\n├── .devcontainer.json  # VS Code / Github devcontainer setup\n└── README.md\n```\n\n---\n\n## 📦 package.json\n\nFor reference, here’s the package config:\n\n```json\n{\n  \"name\": \"no-as-service\",\n  \"version\": \"1.0.0\",\n  \"description\": \"A lightweight API that returns random rejection or no reasons.\",\n  \"main\": \"index.js\",\n  \"scripts\": {\n    \"start\": \"node index.js\"\n  },\n  \"author\": \"hotheadhacker\",\n  \"license\": \"MIT\",\n  \"dependencies\": {\n    \"express\": \"^4.18.2\",\n    \"express-rate-limit\": \"^7.0.0\"\n  }\n}\n```\n\n---\n\n## ⚓ Devcontainer\n\nIf you open this repo in Github Codespaces, it will automatically use `.devcontainer.json` to set up your environment.  If you open it in VSCode, it will ask you if you want to reopen it in a container.\n\n---\n## Projects Using No-as-a-Service\n\nHere are some projects and websites that creatively integrate [no-as-a-service](https://naas.isalman.dev/no) to deliver humorous or programmatic \"no\" responses:\n\n1. **[no-as-a-service-rust](https://github.com/ZAZPRO/no-as-a-service-rust)**  \n   Rust implementation of this project.\n\n2. **[CSG Admins](https://csg-admins.de)**  \n   A system administration and gaming service hub using no-as-a-service to provide playful negative responses across some admin panels and commands.\n\n3. **[FunnyAnswers - /no endpoint](https://www.funnyanswers.lol/no)**  \n   A humor-focused API playground that includes a mirror or wrapper for no-as-a-service, perfect for developers exploring fun HTTP-based responses.\n\n4. **[Gerador de Frases Aleatórias (pt-BR)](https://github.com/timeuz/frases-aleatorias)**\n   Uma reinterpretação em Python com frases em português, frontend e novas categorias.\n\n5. **[NoAsAnApp](https://github.com/omar-jarid/NoAsAnApp)**  \n   A simple native Android app calling no-as-a-service to provide negative responses.\n\n6. **[How About No?](https://github.com/lloyd094/How-About-No-)**\n   A basic GUI using no-as-a-service as the backend. Built with docker in mind.\n   \n7. **[no-as-a-service-asp](https://github.com/sapph42/no-as-a-service)**  \n   A straight-forward implementation of NaaS in ASP.NET Core\n8. **[No as a Service - Raycast Extension](https://www.raycast.com/nedini/no-as-a-service)**  \n   Get a random No from within Raycast. Just install the extension from the Raycast store, open Raycast, then type in 'Random No'. Raycast extension: [No as a Service](https://www.raycast.com/nedini/no-as-a-service).\n\n9. **[No-as-a-Service - Slack App](https://github.com/pro100svitlo/no-as-a-service-slack-app)**  \n   Get a random `No` from within Slack. [Install](https://slack.com/oauth/v2/authorize?client_id=2550998207090.10222067205218\u0026scope=commands,chat:write\u0026user_scope=) the app to your workspace and then use the `/no` command to get a random response. \n\n10. **[Your Project Here?](https://github.com/YOUR_REPO)**  \n   If you're using no-as-a-service in your project, open a pull request to be featured here!\n\n---\n\n\u003e Want to use no-as-a-service in your own project? Check out the usage section in this README and start returning **\"no\"** like a pro.\n---\n\n## 👤 Author\n\nCreated with creative stubbornness by [hotheadhacker](https://github.com/hotheadhacker)\n\n---\n\n## 📄 License\n\nMIT — do whatever, just don’t say yes when you should say no.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhotheadhacker%2Fno-as-a-service","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhotheadhacker%2Fno-as-a-service","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhotheadhacker%2Fno-as-a-service/lists"}