Change Log

Date-stamped record of what changed, when it changed, and what was affected.

Update Rule

Every SEO, indexing, sitemap, configuration, or content change must include a new entry before merge/deploy using this format:date, summary, scope, status.

2026-06-27

deployed

Drafted all masterclasses except 'Masterclass on Answer Writing' (Ethics, PSIR, Essay) by adding an isDraft property in masterclasses data and updating routes to exclude draft sessions from the listing page (/masterclass) and un-publish their dedicated detail landing pages until needed again.

Scope

  • src/data/masterclasses.ts
  • src/app/masterclass/[slug]/page.tsx

2026-06-26

deployed

Added 4 new PDF study materials ('The Carbon Books Are Wrong', 'NFHS-6 Analysis', 'Green Colonialism or Sustainable Progress', and 'The Indian Monsoon') to the study materials library.

Scope

  • src/data/study-materials.ts
  • public/docs/study-materials/THE CARBON BOOKS ARE WRONG, AND INDIAN FARMERS ARE PAYING THE PRICE (final pdf).pdf
  • public/docs/study-materials/NATIONAL FAMILY HEALTH SURVEY -6 (NFHS-6)final pdf.pdf
  • public/docs/study-materials/Green Colonialism or Sustainable Progress (final pdf).pdf
  • public/docs/study-materials/indian monsoon watermark final pdf.pdf

2026-06-26

deployed

Added 'The Delimitation Debate: Federalism, Representation & Constitutional Challenges' PDF study material to the study materials library.

Scope

  • src/data/study-materials.ts
  • public/docs/study-materials/the delimitation watermark final pdf.pdf

2026-06-25

deployed

Added 'The Feminization of Climate Vulnerability' PDF study material to the study materials library.

Scope

  • src/data/study-materials.ts
  • public/docs/study-materials/The_Feminization_of_Climate_Vulnerability_branded.pdf

2026-06-25

deployed

Added 'Energy Subsidies, Fiscal Stress and India's Development Challenge' PDF study material to the study materials library.

Scope

  • src/data/study-materials.ts
  • public/docs/study-materials/Energy_Subsidies__Fiscal_Stress_and_India_s_Development_Challenge_branded.pdf

2026-06-24

deployed

Added strict cache-bypass directives to .htaccess files to prevent Hostinger LiteSpeed server and browser from caching HTML pages, resolving the 'broken layout' deployment issue caused by stale HTML referencing missing hashed CSS/JS chunks. Added [E=Cache-Control:no-cache] for dynamic routes and standard no-store headers for HTML, while preserving immutable caching for static assets.

Scope

  • .htaccess
  • public/.htaccess

2026-06-23

deployed

Implemented a secure inline email OTP verification flow on lead capture forms (resource download modal, course registration popup, and program enrollment page). Swaps the email input inline to a 6-digit OTP code entry field on submit to prevent invalid entries while keeping other form fields visible. Includes inline resend controls, a 'Change email' option that preserves the typed email via React key reconciliation, and backend session validation APIs (send-otp.php, verify-otp-php) with rate limits and failure thresholds. Also created local OTP log files for testing and updated next.config.ts local dev rewrites.

Scope

  • src/app/enroll/EnrollForm.tsx
  • src/components/LeadCaptureModal.tsx
  • src/components/RegisterInterest.tsx
  • src/components/ui/FormInput.tsx
  • public/api/send-otp.php
  • public/api/verify-otp.php
  • public/api/templates/otp_verification.html
  • src/lib/otp.ts
  • next.config.ts
  • .gitignore

2026-06-23

deployed

Reduced the subject grid below the hero to the two visible courses. It previously showed seven subject tiles linking to now-hidden course pages (and its PSIR tile pointed at the hidden /courses/international-relations) — now it shows just PSIR 2027 and Essay Mentorship, with the PSIR tile repointed to /courses/psir-mains-2027 and the grid adapted for two cards. Also repointed the homepage intro paragraph's course links from the hidden GS Foundation / Answer Writing Program to PSIR 2027 / Essay Mentorship, so the homepage now links only to the two visible courses.

Scope

  • src/components/sections/SubjectCategories.tsx
  • src/app/page.tsx

2026-06-23

deployed

Added a 'Free Resources for Every Aspirant' section to the homepage so resources are easily reachable without opening the nav dropdown — a 6-card grid linking to Masterclasses, Notifications, Blog, Syllabus, Previous Year Papers, and Study Material, plus an 'Explore All Resources' button to /resources. Placed between the founder spotlight and events sections, reusing the existing resource-card style.

Scope

  • src/components/sections/ResourcesHighlight.tsx
  • src/app/page.tsx

2026-06-23

deployed

Fixed the broken logo on the live site. The Hostinger CDN was returning 502 Bad Gateway for the logo asset; the source was also heavily oversized (1600×626, 558 KB, displayed at ~48px tall). Resized it to 600×234 (76 KB) — which also changes its content hash, so the next deploy serves a fresh asset that bypasses the broken cached file. (apple-touch-icon.png is also 502 on the CDN; it's a fixed, unhashed path, so it needs a redeploy / CDN cache purge rather than a code change.)

Scope

  • public/logo.png

2026-06-23

deployed

Adapted the Courses mega-menu for the now-2-course offering: narrowed the panel and switched to a 2-column grid (from a full-width 4-column layout), and removed the 'View all courses' link in both the desktop mega-menu and the mobile Courses accordion.

Scope

  • src/components/layout/MegaMenu.tsx
  • src/components/layout/Navbar.tsx

2026-06-23

deployed

Social links: updated YouTube to youtube.com/@theroundtableias and Instagram to instagram.com/theroundtableias, removed the X (Twitter) and LinkedIn footer icons, kept Telegram, and updated the Organization schema sameAs to match. Courses: reduced the visible course offering to PSIR 2027 and Essay Mentorship only — added a VISIBLE_COURSE_SLUGS / visibleCourses helper and routed the mega-menu, mobile menu, homepage grid, /courses listing, enroll dropdown, and IAS-coaching featured section through it. The other course pages stay live at their URLs (and in the sitemap) but are unlinked from navigation and listings.

Scope

  • src/lib/constants.ts
  • src/components/layout/Footer.tsx
  • src/components/seo/StructuredData.tsx
  • src/data/courses.ts
  • src/components/sections/CoursesGrid.tsx
  • src/app/courses/page.tsx
  • src/app/enroll/page.tsx
  • src/app/ias-coaching-classes/page.tsx

2026-06-23

deployed

Made the blog/article system production-ready for SEO articles. Added an optional structured `faqs` field and an `authorCredential` to BlogPost; the article page now renders a styled FAQ section, emits FAQPage JSON-LD alongside the existing Article schema, and shows the author's one-line credential in the byline. Fully backward-compatible — existing posts render unchanged.

Scope

  • src/lib/types.ts
  • src/app/resources/[slug]/page.tsx

2026-06-23

deployed

SEO basics pass on the homepage and all course pages. Rewrote every <title> to under 60 characters with the page's main keyword and every meta description to 140–160 characters (homepage, the 3 dedicated course pages, and the 7 dynamic [slug] course pages — adding SEO meta for gs-foundation and interview-guidance). Confirmed exactly one H1 per page. Added Course JSON-LD to the dynamic course pages (the dedicated pages already had it) so all 10 course pages carry Course schema. Corrected the sitewide Organization (EducationalOrganization) sameAs to instagram.com/theroundtableias and youtube.com/@RoundtableIAS. Verified sitemap.xml is current (41 URLs) and robots.txt allows crawling. Metadata and schema only — no visual changes.

Scope

  • src/app/page.tsx
  • src/app/layout.tsx
  • src/app/courses/[slug]/page.tsx
  • src/app/courses/essay/page.tsx
  • src/app/courses/psir-mains-2027/page.tsx
  • src/app/courses/international-relations/page.tsx
  • src/components/seo/StructuredData.tsx

2026-06-23

deployed

Extended 'Rohan Dange Sir' site-wide — homepage, About, FAQ, Resources, the courses index, Roundtable Dialogue, enroll, the pedagogy/events/blog-preview sections, the organisation description (SITE.description), SEO keyword data, and in-article blog mentions. Deliberately kept the canonical 'Rohan Dange' in JSON-LD Person entities, blog author bylines, the SITE.founder field, image alt text, and the legal Terms page. Build, sitemap, and lead routing verified unaffected.

Scope

  • src/lib/constants.ts
  • src/app/page.tsx
  • src/app/about/page.tsx
  • src/data/faq.ts
  • src/data/blog-posts.ts
  • src/components/sections/PedagogyHighlight.tsx
  • src/components/sections/EventsCarousel.tsx
  • src/components/sections/BlogPreview.tsx
  • src/app/resources/page.tsx
  • src/app/courses/page.tsx
  • src/app/roundtable-dialogue/page.tsx
  • src/app/ias-coaching-classes/page.tsx
  • src/app/enroll/EnrollForm.tsx
  • src/app/blog/page.tsx
  • src/data/ias-coaching-seo-keywords.ts

2026-06-23

deployed

Across the course and masterclass landing pages (and the data and mentor block that feed them), refer to the founder as 'Rohan Dange Sir' in all visible and SEO copy — how aspirants search for and refer to him. Kept the canonical 'Rohan Dange' in JSON-LD Person entities and image alt text for correct knowledge-graph/entity matching. Lead routing verified unaffected.

Scope

  • src/data/masterclasses.ts
  • src/data/courses.ts
  • src/app/courses/essay/page.tsx
  • src/app/courses/psir-mains-2027/page.tsx
  • src/app/courses/international-relations/page.tsx
  • src/app/masterclass/[slug]/page.tsx
  • src/app/masterclass/page.tsx
  • src/components/sections/FounderSpotlight.tsx

2026-06-23

deployed

Replaced the Ethics, PSIR, and Essay masterclass cover images with hyper-realistic, on-brand photographs (a contemplative aspirant with the scales of justice for Ethics; a globe-and-world-map study desk for PSIR; a fountain pen on a writing desk for Essay). Optimised each to WebP — Ethics went from a 10 MB PNG to 102 KB — and pointed both the listing cards and the detail-page heroes at them.

Scope

  • src/data/masterclasses.ts
  • src/lib/images.ts
  • public/images/masterclass/ethics-masterclass.webp
  • public/images/masterclass/psir-masterclass.webp
  • public/images/masterclass/essay-masterclass.webp

2026-06-23

deployed

Added three masterclasses to the series from the June–July schedule — Ethics (GS-IV, 30 June), PSIR Optional (7 July), and Essay (8 July), all free and live at 10:00 AM IST. Each got its own landing page automatically via the data-driven /masterclass/[slug] template, with subject cover images on the listing cards. Wired the Resend email automation for them: added dedicated CLASS_SCHEDULES entries (welcome email on registration + reminder 1 hour before) and routed /masterclass/* registrations to those schedules in getCourseSlug, fixing a collision where Essay/PSIR masterclass leads would otherwise have matched the long-form course schedules. Zoom links are placeholders pending the real per-class links.

Scope

  • src/data/masterclasses.ts
  • public/api/config.php
  • public/api/resend.php

2026-06-23

deployed

Masterclass listing cards now lead with the masterclass's featured image (with the Free/price badge overlaid) instead of a plain date strip.

Scope

  • src/app/masterclass/MasterclassList.tsx
  • src/app/masterclass/page.tsx

2026-06-22

deployed

Turned masterclasses into a data-driven series. Added a listing page at /masterclass/ that always shows only upcoming sessions (filtered by the visitor's current time, so past ones drop off without a redeploy) plus a dynamic detail page at /masterclass/[slug] generated from src/data/masterclasses.ts — each masterclass now gets its own landing page (hero, live countdown, what-you'll-learn, mentor, FAQ, and a free register popup). Migrated the Answer Writing masterclass into the data and removed the hand-built static page. Linked Masterclasses in the Resources menu, footer, and resources hub, and added /masterclass to the sitemap.

Scope

  • src/data/masterclasses.ts
  • src/app/masterclass/page.tsx
  • src/app/masterclass/MasterclassList.tsx
  • src/app/masterclass/[slug]/page.tsx
  • src/lib/constants.ts
  • src/components/layout/Footer.tsx
  • src/app/resources/page.tsx
  • public/sitemap.xml

2026-06-22

deployed

Updated Google Apps Script to dynamically route campaign registration leads into distinct, sanitized course-specific tabs (e.g. Reg - psir-mains-2027, Reg - essay) instead of a single Campaign Registration sheet, keeping leads separated for each dedicated course page.

Scope

  • scripts/google-apps-script-lead-capture.js

2026-06-22

deployed

Built a webinar landing page at /masterclass/answer-writing/ for the free live 'Masterclass on Answer Writing' (UPSC Mains, 29 June 2026). Hero with a live countdown, 7 'what you'll learn' cards, mentor section, who-should-attend, FAQ, a free register-interest popup, and Event/FAQ JSON-LD. Not added to the sitemap (it's a paid-ads landing page).

Scope

  • src/app/masterclass/answer-writing/page.tsx

2026-06-22

deployed

Added pricing to the PSIR 2027 page: ₹21,999 with a 15% early-bird discount to ₹18,699 (all-inclusive, no taxes), an offer deadline of 30 June 2026, and a live countdown timer in the hero, offer strip, pricing card, and final CTA — mirroring the Essay page. Updated the fee FAQ and added Offer schema to the JSON-LD.

Scope

  • src/app/courses/psir-mains-2027/page.tsx

2026-06-22

deployed

Tablet navigation: show the full desktop nav and Courses/Resources mega-menus from the md breakpoint (768px) instead of lg (1024px), so tablets get the complete navigation and mega-menus rather than a phone-style hamburger. Verified the nav fits and the mega-menu renders at ~889px tablet width.

Scope

  • src/components/layout/Navbar.tsx

2026-06-21

deployed

Linked the two flagship campaign pages across navigation: added PSIR 2027 to the Courses mega-menu and mobile menu, relabelled Essay as 'Essay Mentorship', and added both to the footer Quick Links.

Scope

  • src/lib/constants.ts
  • src/components/layout/Footer.tsx

2026-06-21

deployed

Launched the PSIR 2027 campaign landing page at /courses/psir-mains-2027/ ('Ace PSIR, Ace Mains — Target 280') — India's first PSIR optional with think-tank certifications. Hero, insurance-policy framing, 12-feature grid, 5 certification tracks, Paper 1 & 2 structure, outcomes, FAQ, and an in-page register-interest popup. Generalised the popup into a reusable RegisterInterest component (now shared with the Essay page). Added the course to courses.ts, excluded it from the dynamic route, and added it to the sitemap.

Scope

  • src/app/courses/psir-mains-2027/page.tsx
  • src/components/RegisterInterest.tsx
  • src/data/courses.ts
  • src/app/courses/[slug]/page.tsx
  • public/sitemap.xml

2026-06-21

deployed

Added a live early-bird countdown timer (hero, offer strip, pricing card, final CTA) and an on-page popup registration form to the Essay Mentorship page so users can submit interest without leaving. All fields are mandatory; submissions post through the existing lead pipeline (with auto-reply intent) and redirect to a new /thank-you page.

Scope

  • src/app/courses/essay/page.tsx
  • src/app/courses/essay/EssayEnroll.tsx
  • src/components/CountdownTimer.tsx
  • src/app/thank-you/page.tsx

2026-06-21

deployed

Built a dedicated landing page at /courses/essay/ for the 'Target 140+: Essay Mentorship by Rohan Dange' programme — hero with early-bird offer, pricing (15% off until 30 June 2026, starts 7 July 2026), 13-feature grid, test-series highlight, outcomes, FAQ, and Course/Offer/FAQ JSON-LD schema. Excluded the essay slug from the dynamic course route to avoid a collision.

Scope

  • src/app/courses/essay/page.tsx
  • src/app/courses/[slug]/page.tsx
  • public/sitemap.xml

2026-06-21

deployed

Published four current-affairs blog posts with branded cover images and SEO keywords: UPSC Mains 2026 DAF guide, the 2026 Strait of Hormuz/Iran war and energy security, the India-EU FTA and India-UK CETA, and India's near-elimination of Left-Wing Extremism. Added the new routes to the sitemap.

Scope

  • src/data/blog-posts.ts
  • src/lib/images.ts
  • public/images/blog/upsc-daf-2026.webp
  • public/images/blog/iran-hormuz-2026.webp
  • public/images/blog/india-trade-deals-2026.webp
  • public/images/blog/lwe-naxalism-2026.webp
  • public/sitemap.xml

2026-06-16

deployed

Bypassed the lead capture download form for the UPSC CSE 2026 Preliminary Results PDF, allowing students to download it directly.

Scope

  • src/data/upsc-results.ts
  • src/app/notifications/page.tsx
  • src/components/sections/HeroSection.tsx
  • src/components/sections/ResultsAnnouncementBanner.tsx

2026-06-16

deployed

Rebuilt the PSIR optional coaching landing page at /courses/international-relations/ with SEO metadata, FAQ/Course schema, mentor section, and commercial landing-page structure.

Scope

  • src/app/courses/international-relations/page.tsx
  • src/data/courses.ts
  • public/sitemap.xml

2026-06-16

deployed

Rewrote UPSC Prelims Result 2026 blog using Vajiram-style SEO structure: overview, PDF download steps, roll-number check guide, post-result action plan, and 7 FAQs.

Scope

  • src/data/blog-posts.ts
  • src/app/resources/[slug]/page.tsx
  • src/lib/submitLead.ts
  • public/docs/upsc-results/CSE_2026_Preliminary_Results.pdf
  • public/images/blog/upsc-prelims-2026-result.webp
  • public/sitemap.xml

2026-05-27

deployed

Published the PSIR optional booklist blog post with SEO metadata, optimized hero image, and sitemap entry.

Scope

  • src/data/blog-posts.ts
  • public/images/blog/psir-booklist.webp
  • src/lib/images.ts
  • public/sitemap.xml

2026-06-16

deployed

Published UPSC CSE 2026 Preliminary Results on the notifications page and home page notification banner.

Scope

  • src/data/upsc-results.ts
  • public/docs/upsc-results/CSE_2026_Preliminary_Results.pdf
  • /notifications
  • /

2026-06-12

deployed

Added the 'Notes for PSIR Masterclass 102' PDF study material to the study materials list.

Scope

  • src/data/study-materials.ts
  • public/docs/study-materials/PSIR Masterclass Class1 Branded.pdf

2026-06-09

deployed

Uploaded the PSIR Masterclass 101 Notes PDF study material and surfaced it on the study material page.

Scope

  • src/data/study-materials.ts
  • public/docs/study-materials/PSIR Masterclass Concept Note Branded.pdf
  • public/docs/study-materials/PSIR Masterclass Class1 Branded.pdf

2026-06-08

deployed

Added the Roundtable IAS Essay Handbook PDF to the study materials page.

Scope

  • src/data/study-materials.ts
  • public/docs/study-materials/Roundtable IAS Essay Handbook Final.pdf

2026-04-19

deployed

Replaced the Day 14 answer-writing PDF with a revised version (Day - 14 (2)) while keeping the same public link on the answer-writing programme page.

Scope

  • assets/documents/Day - 14 (2).pdf
  • public/docs/subject-categories/mains-answer-writing/Day - 14.pdf
  • /courses/answer-writing-program

2026-04-19

deployed

Added Day 14 (GS-III coral reefs) to the answer-writing programme resources and published the PDF in the mains-answer-writing documents folder.

Scope

  • src/data/courses.ts
  • public/docs/subject-categories/mains-answer-writing/Day - 14.pdf
  • assets/documents/Day - 14.pdf

2026-04-18

deployed

Added the UNESCO World Heritage Sites in India PDF to the public study-materials library and surfaced it on the study material page.

Scope

  • src/data/study-materials.ts
  • public/docs/study-materials/unesco-world-heritage-sites.pdf
  • assets/documents/UNESCO World Heritage Sites.pdf

2026-04-18

deployed

Published Day 13 of the answer-writing programme (GS-III agriculture and nitrogen pollution) and linked it on the answer-writing course resources list.

Scope

  • src/data/courses.ts
  • public/docs/subject-categories/mains-answer-writing/Day - 13.pdf

2026-04-17

deployed

Ashutosh Choudhary refined subject category naming in course resource metadata so programme labels read more clearly on the site.

Scope

  • src/data/courses.ts

2026-04-17

deployed

Ashutosh Choudhary added Day 12 mains answer-writing material (model PDF) and linked it from the answer-writing programme resources list.

Scope

  • /courses/answer-writing-program
  • public/docs/subject-categories/mains-answer-writing/Day - 12 (1).pdf
  • src/data/courses.ts

2026-04-15

deployed

Executed keyword-focused on-page SEO updates: added faculty guidance page, aligned course/home/mentorship content to target intents, expanded footer/navigation discoverability, and updated sitemap coverage.

Scope

  • src/app/faculty-guidance/page.tsx
  • src/app/courses/[slug]/page.tsx
  • src/app/ias-coaching-classes/page.tsx
  • src/app/page.tsx
  • src/components/layout/Footer.tsx
  • src/lib/constants.ts
  • public/sitemap.xml

2026-04-15

deployed

Submitted the production sitemap to Google Search Console for indexing.

Scope

  • https://theroundtableias.com/sitemap.xml

2026-04-15

deployed

Updated UI and content details: international relations course title, navbar visibility/readability, fixed-content offset, blog breadcrumb hierarchy, and footer email placeholder text.

Scope

  • src/app/courses/[slug]/page.tsx
  • src/components/layout/Navbar.tsx
  • src/app/layout.tsx
  • src/app/resources/[slug]/page.tsx
  • src/components/layout/Footer.tsx

2026-04-15

deployed

Fixed canonical indexing signals, replaced stale static sitemap with generated route-aware sitemap, aligned robots and schema domain, and added automated sitemap drift validation.

Scope

  • src/app/layout.tsx
  • src/app/sitemap.ts
  • public/robots.txt
  • scripts/validate-sitemap.mjs
  • package.json
  • src/app/**/page.tsx metadata

2026-04-15

deployed

Created a dedicated change log page and documented the mandatory date-based logging rule for all SEO/config/content updates.

Scope

  • /log
  • README.md
  • src/lib/constants.ts
  • src/app/resources/page.tsx