Commit graph

29 commits

Author SHA1 Message Date
Shekhar Vaidya
1c54c36d03 feat: expiry countdown, refresh links, CLI tabs, recently viewed, file size support
- Backend: ?force=true on /proxy bypasses cache for fresh link fetch
- Frontend: parse `se` param for live expiry countdown on download links
- Frontend: show Refresh button when link expires in <6h, force-fetches fresh URL
- Frontend: CliCommand component replaces Aria2Tip — wget/curl/aria2 tabs, persists selection in localStorage
- Frontend: RecentlyViewed component — localStorage, shows active countdown or expired state
- Frontend: FileSize shown alongside arch if returned by Microsoft CDN

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 21:06:17 +05:30
Shekhar Vaidya
ddc657e0a7 fix(seo): audit and fix SEO across all pages
- ProductsPage: align <title> with og:title ("All Windows ISO Releases")
- Disclaimer + PrivacyPolicy: add noindex (legal/thin pages shouldn't rank)
- ProductDetailPage: improve auto-generated meta description wording;
  add SoftwareApplication JSON-LD to match EvalDetailPage
- HomePage: update JSON-LD description to include Windows Server

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 22:14:52 +05:30
Shekhar Vaidya
fe1191b07f fix(ui): mention Server & Enterprise in HowItWorks step 1
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 22:10:37 +05:30
Shekhar Vaidya
4ad8cfbfcc feat: update ComparisonTable and FAQAccordion to reflect eval ISOs
Add "Server & Enterprise ISOs" row to the Why MSDL comparison table
and a new FAQ entry explaining eval editions, the 180-day trial, and
where to find them. Closes #eval-polish.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 22:08:55 +05:30
Shekhar Vaidya
b1458934c3 fix(ui): standardise page widths to two-tier system
Listing pages (home, products, eval): max-w-4xl
Content pages (product detail, eval detail, about, privacy, disclaimer): max-w-2xl

Previously four different widths were in use across the app.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-05-18 22:04:09 +05:30
Shekhar Vaidya
fdf4d7258d fix(seo): improve meta tags and JSON-LD for eval product pages
- Add unique seoDesc field to each eval product (≤155 chars)
- EvalDetailPage: use seoDesc for description, add Evaluation to
  title, add SoftwareApplication JSON-LD alongside breadcrumb
- EvalPage: add ItemList JSON-LD for the listing page

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-05-18 22:01:55 +05:30
Shekhar Vaidya
a78059187f feat: add Enterprise & Server eval ISOs via Microsoft evalcenter
Adds /eval listing page and /product/<slug> detail pages for Windows
Server 2025/2022/2019/2016 and Windows 11 Enterprise evaluation ISOs,
sourced from Microsoft evalcenter without any session flow.

Backend: new /evallinks endpoint fetches evalcenter page, extracts
fwlinks, follows all redirects in parallel, detects arch + locale.
24h cache per product with startup warming so first hit is instant.

Frontend: EvalPage listing at /eval, EvalDetailPage at /product/<slug>
matching consumer structure with downloads, aria2 template, system
requirements, and also-available section. Smart ProductRouter in
App.tsx dispatches slug vs numeric productId. Dock highlights Products
tab for /product/* and /eval routes. CTA banner on home page and
footer link added. sitemap.xml updated with 6 new URLs.

Closes #13

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-05-18 21:56:57 +05:30
Shekhar Vaidya
58d66fe06d docs: update README, About, Privacy and Disclaimer for CF Worker
- README: add cloudflare-worker/ to project structure, update How It
  Works diagram to show CF Worker hop, add CF Worker setup instructions
  under Running Locally, and fix Deployment section (Worker is an
  outbound proxy, not the backend host)
- About: mention CF Worker distributes requests across Cloudflare edge
- Privacy: add Cloudflare as a third-party service, update date
- Disclaimer: update date

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 12:58:07 +05:30
Shekhar Vaidya
e7b0fea94b fix(frontend): fix TypeScript error in Back button navigate call
Split ternary into two separate navigate() calls to satisfy TypeScript
overload resolution — navigate(delta: number) and navigate(to: To)
are distinct overloads that cannot share a ternary return type.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 12:11:35 +05:30
Shekhar Vaidya
8b036e94ba feat: route Microsoft API calls through Cloudflare Worker to avoid IP blocks
- Add cloudflare-worker/worker.js: edge proxy forwarding requests to allowed
  Microsoft hosts from Cloudflare distributed IPs. Set CF_WORKER_URL env var
  to activate; omit to keep direct-to-Microsoft behaviour (self-hosters unaffected).
- Wrap all outbound Microsoft URLs in proxyURL() in main.go so the Worker
  sits transparently in front of every session and download-link request.
- Fix Back button navigating to external referrer when user lands directly
  on a product URL (#5) — use window.history.state?.idx to detect whether
  there is prior in-app history before calling navigate(-1).

Closes #5, Closes #6

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-18 12:01:03 +05:30
Shekhar Vaidya
a8f9ba1da1 feat(frontend): add Google Search Console verification meta tag
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-12 20:51:28 +05:30
Shekhar Vaidya
86da27cb8c feat(frontend): add per-page SEO, 404 page, OG tags, and sitemap updates
- Replace react-helmet-async (React 19 incompatible) with native React 19
  document metadata hoisting across all pages
- Add per-page <title>, <meta name="description">, <link rel="canonical">,
  og:title, og:description, og:url to HomePage, ProductsPage, ProductDetailPage,
  AboutPage, DisclaimerPage, PrivacyPolicyPage
- Add JSON-LD SoftwareApplication schema to HomePage and BreadcrumbList to
  ProductDetailPage
- Add 404 NotFoundPage with noindex meta and canonical to home
- Add og:site_name, og:image, og:type, twitter:card/title/description/image
  to index.html as static fallback; remove duplicate static canonical
- Update sitemap.xml with product IDs 3321, 3324 and lastmod dates
- Add product screenshots to README and update description
- Add og-image.png placeholder

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-12 20:35:48 +05:30
Shekhar Vaidya
79e21bb487 fix(frontend): add --disable-ipv6=true to generated aria2 command
IPv6 failures (broken routing, disabled IPv6, VPN/Pi-hole setups) cause
aria2 to abort instead of falling back to IPv4. The flag is a safe
default on all network configurations.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-12 19:37:17 +05:30
google-labs-jules[bot]
fc60a9f37b fix: prevent inactive products from triggering backend requests
- Update ProductDetailPage.tsx to only set isValidated(true) for active products.
- Add regex validation to ensure productId is numeric.
- Initialize meta.active to false.
- Add loading state for catalog fetch.
- Fix minor lint issue in ProductsPage.tsx.

Co-authored-by: starkSV <21262426+starkSV@users.noreply.github.com>
2026-05-12 09:47:48 +00:00
Shekhar Vaidya
79450e4b35 Prevent skuinfo API calls when product is marked inactive 2026-04-11 13:11:01 +05:30
Shekhar Vaidya
2d688ae7e8 Implement inactive product state, restore backend tracker limits, and add dedicated catalog error UI panel 2026-04-11 13:01:56 +05:30
Shekhar Vaidya
aac8f5d990 Modernize UI, unify product catalog, and backend optimization
- Migrated products.json to structured metadata format.

- Refactored ProductDetailPage to eagerly reset state and validate product IDs against local catalog.

- Dynamic data fetching in HomePage and StatsBar for total release counts.

- Adjusted UI layout in App.tsx and UX states (404/Loading) for missing dependencies.

- Shortened backend tracking HTTP timeouts to prevent local Pi-Hole hangs.
2026-04-11 11:17:54 +05:30
Shekhar
f43a0e2dfa perf: replace heavy blur-3xl filter with css radial gradient to maximize mobile lighthouse score 2026-04-10 23:18:22 +05:30
Shekhar
4c0539517c fix: remove unused useNavigate hook causing TS6133 build error 2026-04-10 23:04:29 +05:30
Shekhar
a1ef9a6baa feat: improve accessibility and structural SEO logic 2026-04-10 22:59:16 +05:30
Shekhar
1e63d3e5ff feat: implement dynamic SEO metadata for static pages 2026-04-10 22:58:27 +05:30
Shekhar
089662d1f3 feat: setup dynamic document metadata bindings for SEO SPA crawling 2026-04-10 22:56:34 +05:30
Shekhar
f7052ee539 feat: add robots.txt and sitemap.xml for SEO 2026-04-10 22:47:31 +05:30
Shekhar
41bee3b7d1 chore: remove incorrect business product IDs and patch referer proxy logic 2026-04-10 22:38:48 +05:30
Shekhar Vaidya
ed87d0cb0e feat: add 404 fallback and update products 2026-04-10 21:58:57 +05:30
Shekhar Vaidya
9c5cb88f19 feat: add Windows 10 Business Edition ID 2026-04-10 21:39:59 +05:30
Shekhar Vaidya
bd99cd777e Added Windows 10 Multi-Edition (Includes Business/Enterprise) 2026-04-10 21:36:54 +05:30
Shekhar Vaidya
56a43b2ff0 feat: v3 release with Coolify support and UI polish 2026-04-10 20:23:59 +05:30
Shekhar Vaidya
7d847f8dd1 feat: initial release — Windows ISO Downloader v3 2026-04-10 20:15:46 +05:30