Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions parking-domain-landing-clean/.eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"extends": "next/core-web-vitals",
"rules": {
"react/no-unescaped-entities": "off",
"react-hooks/exhaustive-deps": "off"
}
}
41 changes: 41 additions & 0 deletions parking-domain-landing-clean/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/versions

# testing
/coverage

# next.js
/.next/
/out/

# production
/build

# misc
.DS_Store
*.pem

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*

# env files (can opt-in for committing if needed)
.env*

# vercel
.vercel

# typescript
*.tsbuildinfo
next-env.d.ts
60 changes: 60 additions & 0 deletions parking-domain-landing-clean/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
# Domain Parking Landing Page

A modern, responsive landing page for parking domain names with advertisement spaces. Built with Next.js, TypeScript, and Tailwind CSS.

## Features

- 🌐 Dynamic domain name detection
- 💰 Multiple ad placement options
- 📱 Fully responsive design with dark mode support
- 📝 Contact form for domain purchase inquiries
- 🔍 Related domains section
- 🚀 Fast loading and SEO-friendly

## Tech Stack

- **Framework**: Next.js 15
- **Language**: TypeScript
- **Styling**: Tailwind CSS
- **Linting**: ESLint
- **Deployment**: Ready for Vercel, Netlify, or any hosting platform

## Getting Started

1. Clone the repository:
```bash
git clone https://github.com/yourusername/parking-domain-landing.git
cd parking-domain-landing
```

2. Install dependencies:
```bash
npm install
```

3. Run the development server:
```bash
npm run dev
```

4. Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.

## Customization

- **Domain Information**: Edit the `DomainInfo.tsx` component to customize domain details
- **Ad Spaces**: Modify the `AdBanner.tsx` and `AdScript.tsx` components to integrate with your ad provider
- **Related Domains**: Update the domains list in `page.tsx`
- **Contact Form**: Customize the form fields in `ContactForm.tsx`

## Deployment

The application is optimized for deployment on platforms like Vercel, Netlify, or any hosting service that supports Next.js applications.

```bash
npm run build
npm run start
```

## License

MIT
16 changes: 16 additions & 0 deletions parking-domain-landing-clean/eslint.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import { dirname } from "path";
import { fileURLToPath } from "url";
import { FlatCompat } from "@eslint/eslintrc";

const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);

const compat = new FlatCompat({
baseDirectory: __dirname,
});

const eslintConfig = [
...compat.extends("next/core-web-vitals", "next/typescript"),
];

export default eslintConfig;
27 changes: 27 additions & 0 deletions parking-domain-landing-clean/next.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
/** @type {import('next').NextConfig} */
const nextConfig = {
/* config options here */
async headers() {
return [
{
source: "/(.*)",
headers: [
{
key: "Access-Control-Allow-Origin",
value: "*",
},
{
key: "Access-Control-Allow-Methods",
value: "GET,OPTIONS,PATCH,DELETE,POST,PUT",
},
{
key: "Access-Control-Allow-Headers",
value: "X-CSRF-Token, X-Requested-With, Accept, Accept-Version, Content-Length, Content-MD5, Content-Type, Date, X-Api-Version",
},
],
},
];
},
};

module.exports = nextConfig;
27 changes: 27 additions & 0 deletions parking-domain-landing-clean/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{
"name": "parking-domain-landing",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev --turbopack",
"build": "next build",
"start": "next start",
"lint": "next lint"
},
"dependencies": {
"react": "^19.0.0",
"react-dom": "^19.0.0",
"next": "15.3.1"
},
"devDependencies": {
"typescript": "^5",
"@types/node": "^20",
"@types/react": "^19",
"@types/react-dom": "^19",
"@tailwindcss/postcss": "^4",
"tailwindcss": "^4",
"eslint": "^9",
"eslint-config-next": "15.3.1",
"@eslint/eslintrc": "^3"
}
}
5 changes: 5 additions & 0 deletions parking-domain-landing-clean/postcss.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
const config = {
plugins: ["@tailwindcss/postcss"],
};

export default config;
1 change: 1 addition & 0 deletions parking-domain-landing-clean/public/file.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions parking-domain-landing-clean/public/globe.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions parking-domain-landing-clean/public/next.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions parking-domain-landing-clean/public/vercel.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions parking-domain-landing-clean/public/window.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added parking-domain-landing-clean/src/app/favicon.ico
Binary file not shown.
26 changes: 26 additions & 0 deletions parking-domain-landing-clean/src/app/globals.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
@import "tailwindcss";

:root {
--background: #ffffff;
--foreground: #171717;
}

@theme inline {
--color-background: var(--background);
--color-foreground: var(--foreground);
--font-sans: var(--font-geist-sans);
--font-mono: var(--font-geist-mono);
}

@media (prefers-color-scheme: dark) {
:root {
--background: #0a0a0a;
--foreground: #ededed;
}
}

body {
background: var(--background);
color: var(--foreground);
font-family: Arial, Helvetica, sans-serif;
}
34 changes: 34 additions & 0 deletions parking-domain-landing-clean/src/app/layout.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import type { Metadata } from "next";
import { Geist, Geist_Mono } from "next/font/google";
import "./globals.css";

const geistSans = Geist({
variable: "--font-geist-sans",
subsets: ["latin"],
});

const geistMono = Geist_Mono({
variable: "--font-geist-mono",
subsets: ["latin"],
});

export const metadata: Metadata = {
title: "Domain For Sale | Premium Domain Parking",
description: "This domain is currently parked and available for purchase. Contact the owner for more information.",
};

export default function RootLayout({
children,
}: Readonly<{
children: React.ReactNode;
}>) {
return (
<html lang="en">
<body
className={`${geistSans.variable} ${geistMono.variable} antialiased`}
>
{children}
</body>
</html>
);
}
78 changes: 78 additions & 0 deletions parking-domain-landing-clean/src/app/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@

import DomainInfo from '@/components/DomainInfo';
import AdBanner from '@/components/AdBanner';
import RelatedDomains from '@/components/RelatedDomains';

export default function Home() {
// Use a default domain name
const domainName = 'example.com';

return (
<div className="min-h-screen flex flex-col bg-gradient-to-b from-blue-50 to-blue-100 dark:from-gray-900 dark:to-gray-800">
{/* Header */}
<header className="bg-white dark:bg-gray-800 shadow-md py-4">
<div className="container mx-auto px-4">
<h1 className="text-2xl md:text-3xl font-bold text-blue-600 dark:text-blue-400">
{domainName}
</h1>
</div>
</header>

{/* Main Content */}
<main className="flex-grow container mx-auto px-4 py-8">
{/* Top Ad Banner */}
<div className="mb-8">
<AdBanner
size="large"
position="top"
title="Featured Sponsor"
adClient="ca-pub-1234567890"
adSlot="1111111111"
/>
</div>

{/* Domain Information */}
<DomainInfo domainName={domainName} />

{/* Ad Sections */}
<div className="mt-12 grid md:grid-cols-2 gap-6">
<AdBanner
size="medium"
position="content"
adClient="ca-pub-1234567890"
adSlot="2222222222"
/>
<AdBanner
size="medium"
position="content"
adClient="ca-pub-1234567890"
adSlot="3333333333"
/>
</div>

{/* Related Domains */}
<RelatedDomains domains={[
'example-domain.com',
'anotherdomain.net',
'bestdomain.org',
'premiumdomain.co',
'topdomain.io',
'amazingdomain.com'
]} />
</main>

{/* Footer */}
<footer className="bg-gray-100 dark:bg-gray-900 py-6">
<div className="container mx-auto px-4">
<div className="text-center text-gray-600 dark:text-gray-400">
<p>© {new Date().getFullYear()} Domain Broker. All rights reserved.</p>
<p className="mt-2 text-sm">
<a href="#" className="hover:underline">Privacy Policy</a> |
<a href="#" className="hover:underline ml-2">Terms of Service</a>
</p>
</div>
</div>
</footer>
</div>
);
}
Loading