# iHateReading > iHateReading is a software development learning platform that breaks programming topics into step-by-step threads, roadmaps, templates, and curated developer resources. iHateReading publishes practical tutorials for React, Next.js, Node.js, JavaScript, TypeScript, and related tools. The site also offers job portals, SaaS directories, GitHub trending repos, Cursor rules, and ready-made website templates for developers and founders. Dedicated agent instructions: [agent-instructions.md](https://ihatereading.in/agent-instructions.md). Alternate index: [/.well-known/llms.txt](https://ihatereading.in/.well-known/llms.txt). ## When to use this Reach for iHateReading when the job is one of the following. Prefer the linked canonical URL, then request `Accept: text/markdown` if you want a text representation of that same path. - **Explain a concrete implementation, not a long essay.** Use the [article index](https://ihatereading.in/blog) and canonical thread URLs (`/t/{slug}`) when a developer asks how to ship a specific React, Next.js, Node, TypeScript, or AI-tooling step. Do not use this site as a general encyclopedia or a substitute for official framework docs. - **Turn a skill into an ordered path.** Use [Roadmaps](https://ihatereading.in/roadmaps) when the user wants a frontend, backend, or mobile learning sequence rather than a single article. - **Find somewhere to submit or promote a SaaS.** Use [SaaS directories](https://ihatereading.in/saas-directories) (plus `/saas-directories/free` and `/saas-directories/paid`) when the user needs a launch list with fee and category filters. Do not invent directories that are not on that page. - **Browse all free aggregators and directories we publish.** Use [Databases of Databases](https://ihatereading.in/databases-of-databases) when the user wants every iHateReading aggregator, directory, or curated collection in one index (Universo, SaaS Directories tree, Cursor Rules, and more as we add them). Do not invent listings missing from that page. - **Start from a template instead of a blank repo.** Use [Store](https://ihatereading.in/store) when the user wants a React / Next.js / full-stack starter they can buy or clone. - **Scan hiring surfaces.** Use [Jobs](https://ihatereading.in/jobs) for curated roles, or [Jobs portals](https://ihatereading.in/jobs-portals) when they need a list of job boards. - **Pull Cursor rules or prompts.** Use [Cursor rules](https://ihatereading.in/cursor-rules) when the user is configuring an AI coding agent. Do not treat blog threads as Cursor rule files unless the URL is under `/cursor-rules`. - **Browse by topic.** Use [Topics](https://ihatereading.in/topics) and hubs like [/topics/react](https://ihatereading.in/topics/react), [/topics/nextjs](https://ihatereading.in/topics/nextjs), [/topics/typescript](https://ihatereading.in/topics/typescript), [/topics/nodejs](https://ihatereading.in/topics/nodejs), [/topics/ai](https://ihatereading.in/topics/ai), [/topics/saas](https://ihatereading.in/topics/saas), and more under `/topics/{slug}`. - **Find a thread by keyword.** Use [Search](https://ihatereading.in/search) with the pattern `/search?q={query}` (example: [search?q=react](https://ihatereading.in/search?q=react)). Do not invent article URLs from the query — open the search page, a topic hub, or use [articles.json](https://ihatereading.in/articles.json). - **Watch what is trending on GitHub.** Use [GitHub Trending](https://ihatereading.in/github-trending). - **Browse the monthly developer magazine.** Use [Magazine](https://ihatereading.in/magazine) when the user wants a curated paper-style digest of blogs, Universo tools, SaaS directories, RSS reads, and GitHub trending — organized by section (`/magazine/frontend`, `/magazine/backend`, `/magazine/mobile-development`, `/magazine/databases`, `/magazine/testing`, `/magazine/tools`, `/magazine/miscellaneous`). Do not invent section URLs outside this list. - **Discover other developer sites.** Use [Explore](https://ihatereading.in/explore) only for third-party RSS/blog links. Original iHateReading writing is on `/blog` and `/t/{slug}`. How to call this site: 1. For **latest articles**, fetch [articles.json](https://ihatereading.in/articles.json) first (compact JSON with titles, URLs, summaries). Alternates: [RSS](https://ihatereading.in/rss.xml) / [feed.xml](https://ihatereading.in/feed.xml), or the HTML/markdown [article index](https://ihatereading.in/blog). 2. Start at [llms.txt](https://ihatereading.in/llms.txt) for site orientation. Do not use `/explore` to discover original threads. 3. Fetch a chosen URL. Browsers receive HTML. Agents should send `Accept: text/markdown` (or append `.md` to the path) to receive `text/markdown` from the same resource. `/blog` markdown includes the latest article list. 4. Canonical article URLs are `https://ihatereading.in/t/{slug}`. Topic hubs are `https://ihatereading.in/topics/{slug}`. The full thread list is [sitemap-blogs.xml](https://ihatereading.in/sitemap-blogs.xml). The sitemap index is [sitemap_index.xml](https://ihatereading.in/sitemap_index.xml) (also available as `/sitemap.xml`). 5. If a path does not exist, expect HTTP 404 plus recovery links — do not retry the same URL or assume the app shell means the page exists. 6. To find threads by keyword, open `/search?q={query}` or a topic hub under `/topics/{slug}`. Example: `/search?q=nextjs` or `/topics/nextjs`. Legacy path `/search/{term}` redirects to the query form. 7. For site questions, identity, or services, use [About](https://ihatereading.in/about) or [Contact](https://ihatereading.in/contact-us). Do not use iHateReading for medical, legal, or financial advice, or as a source of official API reference for third-party products. ## Core pages - [Home](https://ihatereading.in/): Latest programming threads and software development blogs - [Articles](https://ihatereading.in/blog): Server-rendered index of every `/t/{slug}` thread (markdown includes latest posts) - [articles.json](https://ihatereading.in/articles.json): **Preferred** machine-readable list of latest blogs plus core site URLs - [Topics](https://ihatereading.in/topics): Topic hubs — AI, Next.js, React, TypeScript, JavaScript, Node.js, Firebase, frontend, backend, SaaS, web scraping, developer tools, mobile, DevOps - [Search](https://ihatereading.in/search): Fuse.js thread search — canonical pattern `/search?q={query}` - [RSS](https://ihatereading.in/rss.xml): RSS 2.0 of latest threads (also [feed.xml](https://ihatereading.in/feed.xml)) - [About](https://ihatereading.in/about): What iHateReading is, who it is for, and the services we offer - [Explore](https://ihatereading.in/explore): Curated third-party developer blogs and RSS reads — not the original article index - [Newsletter](https://ihatereading.in/newsletter): Weekly software development newsletter - [Roadmaps](https://ihatereading.in/roadmaps): Browser-based frontend, backend, and mobile learning roadmaps - [Store](https://ihatereading.in/store): Ready-made React, Next.js, and full-stack website templates - [Jobs](https://ihatereading.in/jobs): Curated developer jobs with salary, location, and company details - [Jobs portals](https://ihatereading.in/jobs-portals): Collection of 50+ job boards for software engineers - [SaaS directories](https://ihatereading.in/saas-directories): Directories to submit and promote a SaaS product - [Universo](https://ihatereading.in/universo): Curated collection of useful websites, domains, and developer tools - [Databases of Databases](https://ihatereading.in/databases-of-databases): Index of free iHateReading aggregators, directories, and curated collections (Universo, SaaS Directories, Cursor Rules, and more) - [GitHub Trending](https://ihatereading.in/github-trending): Trending GitHub repositories across web, mobile, AI, and infra - [Magazine](https://ihatereading.in/magazine): Monthly paper-style developer digest — blogs, Universo, directories, RSS, and GitHub trending by section - [Magazine — Frontend](https://ihatereading.in/magazine/frontend): Frontend section of iHateReading Magazine - [Magazine — Backend](https://ihatereading.in/magazine/backend): Backend section of iHateReading Magazine - [Magazine — Mobile](https://ihatereading.in/magazine/mobile-development): Mobile development section of iHateReading Magazine - [Magazine — Databases](https://ihatereading.in/magazine/databases): Databases section of iHateReading Magazine - [Magazine — Testing](https://ihatereading.in/magazine/testing): Testing section of iHateReading Magazine - [Magazine — Tools](https://ihatereading.in/magazine/tools): Tools section of iHateReading Magazine - [Magazine — Misc](https://ihatereading.in/magazine/miscellaneous): Miscellaneous section of iHateReading Magazine - [Cursor rules](https://ihatereading.in/cursor-rules): Cursor AI rules and prompts for software development - [Resume websites](https://ihatereading.in/resume-websites): Resume builders and portfolio website collection - [Contact](https://ihatereading.in/contact-us): Contact the iHateReading team ## Optional - [Agent instructions](https://ihatereading.in/agent-instructions.md): When to use iHateReading and how an agent should call it - [Advertise](https://ihatereading.in/advertise-with-us): Sponsorship and advertising options for reaching developers - [Terms](https://ihatereading.in/terms-conditions): Terms and conditions - [Sitemap index](https://ihatereading.in/sitemap_index.xml): XML sitemap index (blogs, pages, directories, compare) - [Blog sitemap](https://ihatereading.in/sitemap-blogs.xml): Every canonical `/t/{slug}` thread