# 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. For the static **AI Agent Developer** template, open the root at [/roadmap/ai-agent-development](https://ihatereading.in/roadmap/ai-agent-development) or a chapter such as [/roadmap/ai-agent-development/frameworks](https://ihatereading.in/roadmap/ai-agent-development/frameworks) and nested lessons under that chapter. Do not invent roadmap slugs — use `/roadmaps` or the sitemap. - **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, tags, topicSlugs). For **topic clusters** (hub + matched articles + query fan-out), fetch [topics.json](https://ihatereading.in/topics.json). 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}`. Static markdown **roadmap templates** use `https://ihatereading.in/roadmap/{roadmap-slug}` with nested chapters at `/roadmap/{roadmap-slug}/{chapter-slug}` and lessons at `/roadmap/{roadmap-slug}/{chapter-slug}/{lesson-slug}` (example: [AI Agent Developer](https://ihatereading.in/roadmap/ai-agent-development)). Legacy alias `/roadmap/ai-agent-developer` redirects to `ai-agent-development`. All markdown roadmap URLs are in [sitemap-pages.xml](https://ihatereading.in/sitemap-pages.xml). 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 - [AI Agent Developer Roadmap](https://ihatereading.in/roadmap/ai-agent-development): Static markdown roadmap — frameworks, MCP, memory, sandboxing, observability, and deployment for production AI agents (OG share image: `/og/ai-agent-development-roadmap-banner.png` on every nested URL) - [AI Agent Roadmap — Agent Frameworks](https://ihatereading.in/roadmap/ai-agent-development/frameworks): Chapter — OpenAI Agents SDK, LangGraph, CrewAI, and related stacks - [AI Agent Roadmap — LLM Providers (Direct)](https://ihatereading.in/roadmap/ai-agent-development/llm-providers/direct-providers): Nested lesson under LLM Providers - [JavaScript Developer Roadmap](https://ihatereading.in/roadmap/javascript-development): Language roadmap — syntax, event loop, modules, async, tooling, ecosystem, interview prep (OG `/og/javascript-development-roadmap-banner.svg`) - [Python Developer Roadmap](https://ihatereading.in/roadmap/python-development): Language roadmap — venv, typing, async, packages, FastAPI/agents, testing (OG `/og/python-development-roadmap-banner.svg`) - [Rust Developer Roadmap](https://ihatereading.in/roadmap/rust-development): Language roadmap — ownership, traits, async Tokio, Cargo, Axum ecosystem (OG `/og/rust-development-roadmap-banner.svg`) - [Vibe Coding Mobile App Roadmap](https://ihatereading.in/roadmap/vibe-coding-mobile-app-development): Build iOS and Android apps with Cursor, Claude Code and Codex — Expo, NativeWind (Tailwind), Expo Router, Zustand/TanStack Query, SQLite, Supabase/PostgreSQL/Firebase/Turso, auth, testing, EAS releases, with prompts, skills and Cursor rules per chapter (OG `/og/vibe-coding-mobile-app-roadmap-banner.svg`) - [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) - [Blog lists to Instagram carousels with Nano Banana and OpenRouter](https://ihatereading.in/blogs/how-to-convert-blog-lists-into-instagram-carousels-nano-banana-openrouter): Admin table of markdown blogs → Nano Banana / Gemini images via OpenRouter, AI HTML slides, or AI React carousel components — OG `/og/blog-lists-to-ig-carousels-nano-banana-banner.jpg` - [393 SaaS directories and the agent that has to use them](https://ihatereading.in/blogs/the-list-is-the-easy-part-393-saas-directories-and-the-agent-that-has-to-use-them): Why the directory list is not the product — playbooks, browser agents, free vs paid SaaS directory submission, backlinks, and the open-source launch kit we are building - [50 React interview questions for frontend developers (2026)](https://ihatereading.in/blogs/50-react-interview-questions-frontend-developers-2026): Fifty frontend interview questions with one-line answers — HTML, CSS, JavaScript, React, TypeScript, HTTP, and performance; links to the AI Agent roadmap and related iHateReading prep threads - [AI agents for recruiting and voice-first sourcing](https://ihatereading.in/blogs/ai-agents-for-recruiting-how-voice-first-sourcing-is-replacing-boolean-search): AI recruiting agents in 2026 — voice sourcing vs Boolean search, hiring-funnel use cases, LL144 compliance, and how to evaluate Juicebox, hireEZ, and SeekOut - [AI agent auditing and compliance in 2026](https://ihatereading.in/blogs/ai-agent-auditing-and-compliance-in-2026-the-new-soc-2-for-autonomous-systems): AI agent compliance auditing, the SOC 2 moment for autonomous systems, and what EU AI Act, NIST AI RMF, and ISO 42001 audits actually check - [AI agent system that researches 100 blogs a day](https://ihatereading.in/blogs/how-to-build-an-ai-agent-system-that-researches-100-blogs-a-day-rss-google-news-reddit-youtube): RSS, Google News, Reddit, YouTube transcripts, URL hashing, LLM idea classification, and a content-ideas dashboard SaaS — OG `/og/ai-blog-research-100-blogs-banner.png` - [OpenAI DevDay 2026 for builders](https://ihatereading.in/blogs/openai-devday-2026-dots-sign-in-chatgpt-builders): Dots agent distribution, Sign in with ChatGPT, Decisions API, and the trigger-action loop — developer news recap - [Agent harnessing — what is an agent harness](https://ihatereading.in/blogs/agent-harnessing-what-is-an-agent-harness): Model vs harness vs framework, the agent loop, tools, memory, sandbox, tracing, and why ARC-AGI scores jump with wrapper code not weights - [Why websites are slow — bundle size](https://ihatereading.in/blogs/why-websites-are-slow-bundle-size): JavaScript bundle size, parse/compile cost, bottom-to-top performance checklist, code splitting, and Lighthouse — before chasing images alone - [Hosting under $100/month at 10k visitors](https://ihatereading.in/blogs/how-were-keeping-ihatereading-in-under-100-month-at-10k-visitors): How to reduce website hosting costs in 2026 — Vercel Fluid Compute, Cloudflare Workers, Firebase reads, and Astro vs Next.js for a content site - [Python AI agent SDK comparison](https://ihatereading.in/blogs/python-ai-agent-sdks-in-2026-openai-agents-sdk-vs-pydantic-ai-vs-smolagents-vs-strands): OpenAI Agents SDK vs Pydantic-AI vs smolagents vs Strands — same three-tool agent in code, execution models, testing, and when to pick each framework - [AI voice agents for SMB receptionists](https://ihatereading.in/blogs/ai-voice-agents-for-smb-receptionists-vapi-vs-retell-vs-elevenlabs): Vapi vs Retell vs ElevenLabs compared for an AI voice agent for business in 2026 — latency, disclosure laws, pricing, and AI receptionist software for appointment booking - [100+ SEO blogs a day for under $10](https://ihatereading.in/blogs/how-we-write-100-seo-blogs-a-day-for-under-10-without-getting-hit-by-googles-scaled-content-penalty): CRM-table AI content pipeline for researched SEO blogs, Claude Skills, and a human review step - [Jev AI model launch-week guide](https://ihatereading.in/blogs/jev-one-week-in-typesafe-ai-system-one-model-use-cases-laya): TypeSafe AI's System One model, pricing, API, real use cases, limitations, and Jev vs Laya - [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