diff --git a/app/(landing)/_components/trusted-by-logos.tsx b/app/(landing)/_components/trusted-by-logos.tsx index acb623e..d05262e 100644 --- a/app/(landing)/_components/trusted-by-logos.tsx +++ b/app/(landing)/_components/trusted-by-logos.tsx @@ -1,9 +1,18 @@ import Link from 'next/link'; import type { FC } from 'react'; -export const TrustedByLogos: FC = () => ( +type TrustedByLogoProps = { + subpage?: string; +}; + +const formatHref = (domain: string, subpage?: string) => { + const suffix = subpage ? `/${subpage}` : ''; + return `/lookup/${domain}${suffix}`; +}; + +export const TrustedByLogos: FC = ({ subpage }) => (
- + Cloudflare ( - + Atlassian ( - + Heroku ( - + Webflow ( - + SAP ; +type TrustedBySectionProps = HTMLAttributes & { + subpage?: string; +}; export const TrustedBySection: FC = (props) => (
@@ -11,7 +13,7 @@ export const TrustedBySection: FC = (props) => ( Trusted by experts at - + { + return ( +
+
+

+ Find certificate history for any domain +

+
+ +
+
+ + + + +
+ ); +}; + +export default CertsLandingPage; diff --git a/app/(landing)/map/page.tsx b/app/(landing)/map/page.tsx new file mode 100644 index 0000000..1be0f4f --- /dev/null +++ b/app/(landing)/map/page.tsx @@ -0,0 +1,36 @@ +import type { FC } from 'react'; + +import { SearchForm } from '../../_components/search-form'; +import { SponsorsSection } from '../_components/sponsors-section'; +import { AuthorSection } from './../_components/author-section'; +import { TrustedBySection } from './../_components/trusted-by-section'; + +export const metadata = { + openGraph: { + url: '/map', + }, + alternates: { + canonical: '/map', + }, +}; + +const MapLandingPage: FC = () => { + return ( +
+
+

+ Run DNS lookups across multiple regions +

+
+ +
+
+ + + + +
+ ); +}; + +export default MapLandingPage; diff --git a/app/(landing)/page.tsx b/app/(landing)/page.tsx index ab97149..3b39352 100644 --- a/app/(landing)/page.tsx +++ b/app/(landing)/page.tsx @@ -15,7 +15,7 @@ export const metadata = { }, }; -const Home: FC = () => { +const MainLandingPage: FC = () => { return (
@@ -23,7 +23,7 @@ const Home: FC = () => { Get details about any Domain
- +
@@ -35,4 +35,4 @@ const Home: FC = () => { ); }; -export default Home; +export default MainLandingPage; diff --git a/app/(landing)/subdomains/page.tsx b/app/(landing)/subdomains/page.tsx new file mode 100644 index 0000000..ca87800 --- /dev/null +++ b/app/(landing)/subdomains/page.tsx @@ -0,0 +1,36 @@ +import type { FC } from 'react'; + +import { SearchForm } from '../../_components/search-form'; +import { SponsorsSection } from '../_components/sponsors-section'; +import { AuthorSection } from './../_components/author-section'; +import { TrustedBySection } from './../_components/trusted-by-section'; + +export const metadata = { + openGraph: { + url: '/subdomains', + }, + alternates: { + canonical: '/subdomains', + }, +}; + +const SubdomainsLandingPage: FC = () => { + return ( +
+
+

+ Find hidden subdomains for any domain +

+
+ +
+
+ + + + +
+ ); +}; + +export default SubdomainsLandingPage; diff --git a/app/(landing)/whois/page.tsx b/app/(landing)/whois/page.tsx new file mode 100644 index 0000000..eba2a87 --- /dev/null +++ b/app/(landing)/whois/page.tsx @@ -0,0 +1,36 @@ +import type { FC } from 'react'; + +import { SearchForm } from '../../_components/search-form'; +import { SponsorsSection } from '../_components/sponsors-section'; +import { AuthorSection } from './../_components/author-section'; +import { TrustedBySection } from './../_components/trusted-by-section'; + +export const metadata = { + openGraph: { + url: '/whois', + }, + alternates: { + canonical: '/whois', + }, +}; + +const WhoisLandingPage: FC = () => { + return ( +
+
+

+ Find WHOIS information for any domain +

+
+ +
+
+ + + + +
+ ); +}; + +export default WhoisLandingPage; diff --git a/app/_components/footer.tsx b/app/_components/footer.tsx index 75f486b..3920f4d 100644 --- a/app/_components/footer.tsx +++ b/app/_components/footer.tsx @@ -49,9 +49,13 @@ export const Footer: FC = () => (
-

Free Tools

+

Free Tools

DNS Lookup + Global DNS Lookup + WHOIS Lookup + Certificate Logs + Subdomains Finder
diff --git a/app/_components/search-form.tsx b/app/_components/search-form.tsx index 989a6bc..e891426 100644 --- a/app/_components/search-form.tsx +++ b/app/_components/search-form.tsx @@ -104,6 +104,7 @@ enum FormStates { type SearchFormProps = { initialValue?: string; autofocus?: boolean; + subpage?: string; }; export const SearchForm: FC = (props) => { @@ -135,7 +136,10 @@ export const SearchForm: FC = (props) => { (domain: string) => { setState(FormStates.Submitting); - const target = `/lookup/${domain}`; + let target = `/lookup/${domain}`; + if (props.subpage) { + target += `/${props.subpage}`; + } if (pathname === target) { router.refresh(); @@ -147,7 +151,7 @@ export const SearchForm: FC = (props) => { router.push(target); }, - [setState, router, pathname] + [setState, router, pathname, props.subpage] ); const handleSubmit = useCallback(