first commit
This commit is contained in:
parent
a2467d10c9
commit
d64dc9a3f9
54
package-lock.json
generated
54
package-lock.json
generated
@ -8,6 +8,8 @@
|
||||
"name": "moj-hosting",
|
||||
"version": "0.1.0",
|
||||
"dependencies": {
|
||||
"framer-motion": "^12.29.2",
|
||||
"lucide-react": "^0.563.0",
|
||||
"next": "16.1.6",
|
||||
"react": "19.2.3",
|
||||
"react-dom": "19.2.3"
|
||||
@ -3217,6 +3219,7 @@
|
||||
"integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"peer": true,
|
||||
"dependencies": {
|
||||
"@rtsao/scc": "^1.1.0",
|
||||
"array-includes": "^3.1.9",
|
||||
@ -3591,6 +3594,33 @@
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/framer-motion": {
|
||||
"version": "12.29.2",
|
||||
"resolved": "https://registry.npmjs.org/framer-motion/-/framer-motion-12.29.2.tgz",
|
||||
"integrity": "sha512-lSNRzBJk4wuIy0emYQ/nfZ7eWhqud2umPKw2QAQki6uKhZPKm2hRQHeQoHTG9MIvfobb+A/LbEWPJU794ZUKrg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"motion-dom": "^12.29.2",
|
||||
"motion-utils": "^12.29.2",
|
||||
"tslib": "^2.4.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@emotion/is-prop-valid": "*",
|
||||
"react": "^18.0.0 || ^19.0.0",
|
||||
"react-dom": "^18.0.0 || ^19.0.0"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@emotion/is-prop-valid": {
|
||||
"optional": true
|
||||
},
|
||||
"react": {
|
||||
"optional": true
|
||||
},
|
||||
"react-dom": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/function-bind": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
|
||||
@ -4839,6 +4869,15 @@
|
||||
"yallist": "^3.0.2"
|
||||
}
|
||||
},
|
||||
"node_modules/lucide-react": {
|
||||
"version": "0.563.0",
|
||||
"resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.563.0.tgz",
|
||||
"integrity": "sha512-8dXPB2GI4dI8jV4MgUDGBeLdGk8ekfqVZ0BdLcrRzocGgG75ltNEmWS+gE7uokKF/0oSUuczNDT+g9hFJ23FkA==",
|
||||
"license": "ISC",
|
||||
"peerDependencies": {
|
||||
"react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/magic-string": {
|
||||
"version": "0.30.21",
|
||||
"resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz",
|
||||
@ -4906,6 +4945,21 @@
|
||||
"url": "https://github.com/sponsors/ljharb"
|
||||
}
|
||||
},
|
||||
"node_modules/motion-dom": {
|
||||
"version": "12.29.2",
|
||||
"resolved": "https://registry.npmjs.org/motion-dom/-/motion-dom-12.29.2.tgz",
|
||||
"integrity": "sha512-/k+NuycVV8pykxyiTCoFzIVLA95Nb1BFIVvfSu9L50/6K6qNeAYtkxXILy/LRutt7AzaYDc2myj0wkCVVYAPPA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"motion-utils": "^12.29.2"
|
||||
}
|
||||
},
|
||||
"node_modules/motion-utils": {
|
||||
"version": "12.29.2",
|
||||
"resolved": "https://registry.npmjs.org/motion-utils/-/motion-utils-12.29.2.tgz",
|
||||
"integrity": "sha512-G3kc34H2cX2gI63RqU+cZq+zWRRPSsNIOjpdl9TN4AQwC4sgwYPl/Q/Obf/d53nOm569T0fYK+tcoSV50BWx8A==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/ms": {
|
||||
"version": "2.1.3",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
|
||||
|
||||
@ -9,6 +9,8 @@
|
||||
"lint": "eslint"
|
||||
},
|
||||
"dependencies": {
|
||||
"framer-motion": "^12.29.2",
|
||||
"lucide-react": "^0.563.0",
|
||||
"next": "16.1.6",
|
||||
"react": "19.2.3",
|
||||
"react-dom": "19.2.3"
|
||||
|
||||
BIN
public/image/banner.png
Normal file
BIN
public/image/banner.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 53 KiB |
BIN
public/image/character_bg.jpg
Normal file
BIN
public/image/character_bg.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 569 KiB |
91
src/app/contact/page.tsx
Normal file
91
src/app/contact/page.tsx
Normal file
@ -0,0 +1,91 @@
|
||||
"use client";
|
||||
|
||||
import Navbar from "@/components/Navbar";
|
||||
import Footer from "@/components/Footer";
|
||||
|
||||
export default function ContactPage() {
|
||||
return (
|
||||
<div className="min-h-screen bg-[#060606] text-white selection:bg-[#6c63ff]/30 font-inter">
|
||||
<Navbar />
|
||||
|
||||
{/* HEADER */}
|
||||
<section className="relative pt-48 pb-12 px-6 max-w-7xl mx-auto text-center">
|
||||
<div className="inline-flex items-center gap-2 px-4 py-1.5 rounded-full bg-[#6c63ff]/10 border border-[#6c63ff]/20 text-[#6c63ff] text-[10px] font-black uppercase tracking-widest mb-8">
|
||||
💬 Get in Touch
|
||||
</div>
|
||||
<h1 className="text-5xl lg:text-7xl font-black mb-6 uppercase tracking-tighter">
|
||||
Contact <span className="text-[#6c63ff]">Support</span>
|
||||
</h1>
|
||||
<p className="text-gray-400 max-w-2xl mx-auto text-lg leading-relaxed">
|
||||
Have a question or need technical assistance? Our team is ready to help you 24/7.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
{/* CONTACT OPTIONS GRID */}
|
||||
<section className="pb-32 px-6 max-w-7xl mx-auto">
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 gap-8">
|
||||
|
||||
{/* Ticket System Card - PRIMARY ACTION */}
|
||||
<div className="bg-[#0e0e0e] border-2 border-[#6c63ff]/30 p-12 rounded-[3.5rem] flex flex-col justify-between hover:border-[#6c63ff] transition-all group shadow-2xl shadow-[#6c63ff]/5">
|
||||
<div>
|
||||
<div className="w-16 h-16 bg-[#6c63ff]/10 rounded-2xl flex items-center justify-center mb-8">
|
||||
<i className="fas fa-ticket-alt text-3xl text-[#6c63ff]"></i>
|
||||
</div>
|
||||
<h3 className="text-3xl font-black uppercase tracking-tighter mb-4">Open a Ticket</h3>
|
||||
<p className="text-gray-500 mb-8 leading-relaxed">
|
||||
This is the fastest way to get help. Log in to our client portal to manage your services and track your inquiries.
|
||||
</p>
|
||||
<ul className="space-y-3 mb-10 text-sm text-gray-400 font-medium">
|
||||
<li className="flex items-center gap-3"><i className="fas fa-check text-[#6c63ff]"></i> Average response time: 30m</li>
|
||||
<li className="flex items-center gap-3"><i className="fas fa-check text-[#6c63ff]"></i> Technical & Billing support</li>
|
||||
<li className="flex items-center gap-3"><i className="fas fa-check text-[#6c63ff]"></i> 24/7/365 availability</li>
|
||||
</ul>
|
||||
</div>
|
||||
<a
|
||||
href="https://zone.hothost.org/tickets"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="block w-full text-center bg-[#6c63ff] hover:bg-[#5a52d5] text-white py-5 rounded-2xl font-black uppercase tracking-widest text-xs transition-all shadow-lg shadow-[#6c63ff]/10"
|
||||
>
|
||||
Go to Tickets <i className="fas fa-external-link-alt ml-2 opacity-50"></i>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
{/* Email / Social Card */}
|
||||
<div className="bg-[#0e0e0e] border border-white/5 p-12 rounded-[3.5rem] flex flex-col justify-between hover:border-white/20 transition-all group">
|
||||
<div>
|
||||
<div className="w-16 h-16 bg-white/5 rounded-2xl flex items-center justify-center mb-8">
|
||||
<i className="fas fa-envelope text-3xl text-gray-400"></i>
|
||||
</div>
|
||||
<h3 className="text-3xl font-black uppercase tracking-tighter mb-4">Direct Email</h3>
|
||||
<p className="text-gray-500 mb-8 leading-relaxed">
|
||||
For partnerships, business inquiries, or if you can't access your account, feel free to send us an email.
|
||||
</p>
|
||||
|
||||
<div className="space-y-6">
|
||||
<div className="p-6 bg-white/[0.02] border border-white/5 rounded-3xl">
|
||||
<span className="text-[10px] text-gray-500 font-bold uppercase tracking-widest block mb-2">General Inquiry</span>
|
||||
<a href="mailto:info@hothost.org" className="text-xl font-bold text-white hover:text-[#6c63ff] transition-colors">
|
||||
info@hothost.org
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div className="flex gap-4">
|
||||
<a href="https://discord.gg/gpRAgrYxP2" target="_blank" className="flex-1 p-4 bg-[#5865F2]/10 border border-[#5865F2]/20 rounded-2xl text-center group hover:bg-[#5865F2] transition-all">
|
||||
<i className="fab fa-discord text-[#5865F2] group-hover:text-white text-xl"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<p className="mt-10 text-[10px] text-center text-gray-600 uppercase font-bold tracking-[0.2em]">
|
||||
Slovak & English support available
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<Footer />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
85
src/app/discord/page.tsx
Normal file
85
src/app/discord/page.tsx
Normal file
@ -0,0 +1,85 @@
|
||||
"use client";
|
||||
|
||||
import Navbar from "@/components/Navbar";
|
||||
import Footer from "@/components/Footer";
|
||||
import discordData from "@/components/jsons/discord.json";
|
||||
|
||||
export default function DiscordPage() {
|
||||
return (
|
||||
<div className="min-h-screen bg-[#060606] text-white selection:bg-[#6c63ff]/30 font-inter">
|
||||
<Navbar />
|
||||
|
||||
{/* HEADER SECTION */}
|
||||
<section className="relative pt-48 pb-12 px-6 max-w-7xl mx-auto text-center">
|
||||
<div className="inline-flex items-center gap-2 px-4 py-1.5 rounded-full bg-[#6c63ff]/10 border border-[#6c63ff]/20 text-[#6c63ff] text-[10px] font-black uppercase tracking-widest mb-8">
|
||||
🤖 Bot Infrastructure
|
||||
</div>
|
||||
<h1 className="text-5xl lg:text-7xl font-black mb-6 uppercase tracking-tighter">
|
||||
Discord <span className="text-[#6c63ff]">Hosting</span>
|
||||
</h1>
|
||||
<p className="text-gray-400 max-w-2xl mx-auto text-lg leading-relaxed">
|
||||
{discordData.description}
|
||||
</p>
|
||||
</section>
|
||||
|
||||
{/* LANGUAGES & PACKAGES */}
|
||||
<section className="pb-32 px-6 max-w-7xl mx-auto">
|
||||
{discordData.languages.map((lang) => (
|
||||
<div key={lang.name} className="mb-24">
|
||||
<div className="flex items-center gap-4 mb-12">
|
||||
<h2 className="text-3xl font-black uppercase tracking-tight">{lang.name} Plans</h2>
|
||||
<div className="h-[2px] flex-grow bg-gradient-to-r from-[#6c63ff]/50 to-transparent"></div>
|
||||
</div>
|
||||
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
|
||||
{lang.packages.map((pkg) => (
|
||||
<div
|
||||
key={pkg.name}
|
||||
className="bg-[#0e0e0e] border border-white/5 p-10 rounded-[3rem] flex flex-col justify-between hover:border-[#6c63ff]/50 transition-all group"
|
||||
>
|
||||
<div>
|
||||
<div className="flex justify-between items-start mb-8">
|
||||
<h3 className="text-3xl font-black uppercase tracking-tighter">{pkg.name}</h3>
|
||||
<div className="text-right">
|
||||
<div className="text-3xl font-black text-[#6c63ff]">
|
||||
{pkg.price}{pkg.price !== "Custom" ? "€" : ""}
|
||||
</div>
|
||||
{pkg.price !== "Custom" && (
|
||||
<div className="text-[10px] text-gray-500 uppercase font-bold tracking-widest">/ Month</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ul className="space-y-4 mb-10 text-gray-400 text-sm font-medium">
|
||||
<li className="flex items-center gap-3">
|
||||
<i className="fas fa-memory text-[#6c63ff] w-5"></i> RAM: {pkg.memory}
|
||||
</li>
|
||||
<li className="flex items-center gap-3">
|
||||
<i className="fas fa-hdd text-[#6c63ff] w-5"></i> Storage: {pkg.disk}
|
||||
</li>
|
||||
<li className="flex items-center gap-3">
|
||||
<i className="fas fa-database text-[#6c63ff] w-5"></i> DBs: {pkg.databases}
|
||||
</li>
|
||||
<li className="flex items-center gap-3">
|
||||
<i className="fas fa-microchip text-[#6c63ff] w-5"></i> Ryzen 7 Performance
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<a
|
||||
href={pkg.url}
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
className="block w-full text-center bg-[#6c63ff] hover:bg-[#5a52d5] text-white py-4 rounded-2xl font-black uppercase tracking-widest text-[11px] transition-all shadow-lg shadow-[#6c63ff]/10"
|
||||
>
|
||||
{pkg.price === "Custom" ? "Contact Support" : `Order ${lang.name} ${pkg.name}`}
|
||||
</a>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
))}
|
||||
</section>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@ -1,26 +1,47 @@
|
||||
@import "tailwindcss";
|
||||
|
||||
:root {
|
||||
--background: #ffffff;
|
||||
--foreground: #171717;
|
||||
@theme {
|
||||
--color-primary: #6c63ff;
|
||||
--color-primary-dark: #5a52d5;
|
||||
--color-accent: #f3ba2f; /* Yellow from Hexado */
|
||||
--color-bg-light: #060606;
|
||||
--color-card-bg: #0e0e0e;
|
||||
--color-border: #222;
|
||||
}
|
||||
|
||||
@theme inline {
|
||||
--color-background: var(--background);
|
||||
--color-foreground: var(--foreground);
|
||||
--font-sans: var(--font-geist-sans);
|
||||
--font-mono: var(--font-geist-mono);
|
||||
}
|
||||
@layer base {
|
||||
body {
|
||||
@apply bg-[#060606] text-white antialiased;
|
||||
/* Custom Scrollbar pre Chrome, Edge, Safari */
|
||||
&::-webkit-scrollbar {
|
||||
width: 8px;
|
||||
}
|
||||
&::-webkit-scrollbar-track {
|
||||
background: #060606;
|
||||
}
|
||||
&::-webkit-scrollbar-thumb {
|
||||
background: #1a1a1a;
|
||||
border-radius: 20px;
|
||||
border: 2px solid #060606;
|
||||
}
|
||||
&::-webkit-scrollbar-thumb:hover {
|
||||
background: #6c63ff;
|
||||
}
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
--background: #0a0a0a;
|
||||
--foreground: #ededed;
|
||||
/* Firefox support pre scrollbar */
|
||||
* {
|
||||
scrollbar-width: thin;
|
||||
scrollbar-color: #1a1a1a #060606;
|
||||
}
|
||||
}
|
||||
|
||||
body {
|
||||
background: var(--background);
|
||||
color: var(--foreground);
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
/* Specific styling for the rounded bento-style stats */
|
||||
.rounded-sidebar-stats div {
|
||||
@apply rounded-3xl border border-white/5 bg-[#0e0e0e] transition-all duration-300;
|
||||
}
|
||||
|
||||
/* Zaoblený pricing bento card z tvojho Redesignu */
|
||||
.pricing-card {
|
||||
@apply bg-[#0e0e0e] border border-white/5 rounded-[3.5rem] p-12 transition-all duration-500 hover:border-[#6c63ff]/50;
|
||||
}
|
||||
77
src/app/hytale-beta/page.tsx
Normal file
77
src/app/hytale-beta/page.tsx
Normal file
@ -0,0 +1,77 @@
|
||||
"use client";
|
||||
|
||||
import Navbar from "@/components/Navbar";
|
||||
import Footer from "@/components/Footer";
|
||||
import hytaleData from "@/components/jsons/hytale.json";
|
||||
|
||||
export default function HytalePricing() {
|
||||
return (
|
||||
<div className="min-h-screen bg-[#060606] text-white selection:bg-[#6c63ff]/30 font-inter">
|
||||
<Navbar />
|
||||
|
||||
{/* HEADER */}
|
||||
<section className="relative pt-48 pb-12 px-6 max-w-7xl mx-auto text-center">
|
||||
<div className="inline-flex items-center gap-2 px-4 py-1.5 rounded-full bg-[#6c63ff]/10 border border-[#6c63ff]/20 text-[#6c63ff] text-[10px] font-black uppercase tracking-widest mb-8">
|
||||
⚔️ High Performance Nodes
|
||||
</div>
|
||||
<h1 className="text-5xl lg:text-7xl font-black mb-6 uppercase tracking-tighter">
|
||||
Hytale <span className="text-[#6c63ff]">Pricing</span>
|
||||
</h1>
|
||||
<p className="text-gray-400 max-w-2xl mx-auto text-lg leading-relaxed">
|
||||
{hytaleData.description}
|
||||
</p>
|
||||
</section>
|
||||
|
||||
{/* PACKAGES GRID */}
|
||||
<section className="pb-32 px-6 max-w-7xl mx-auto">
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
|
||||
{hytaleData.packages.map((pkg) => (
|
||||
<div
|
||||
key={pkg.name}
|
||||
className="bg-[#0e0e0e] border border-white/5 p-10 rounded-[3.5rem] flex flex-col justify-between hover:border-[#6c63ff]/50 transition-all group"
|
||||
>
|
||||
<div>
|
||||
<div className="flex justify-between items-start mb-8">
|
||||
<h3 className="text-3xl font-black uppercase tracking-tighter">{pkg.name}</h3>
|
||||
<div className="text-right">
|
||||
<div className="text-3xl font-black text-[#6c63ff]">
|
||||
{pkg.price}{pkg.price !== "Negotiable" ? "€" : ""}
|
||||
</div>
|
||||
{pkg.price !== "Negotiable" && (
|
||||
<div className="text-[10px] text-gray-500 uppercase font-bold tracking-widest">/ Month</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ul className="space-y-4 mb-10">
|
||||
<li className="flex items-center gap-3 text-sm text-gray-400 font-medium">
|
||||
<i className="fas fa-memory text-[#6c63ff] w-5 text-center"></i> RAM: {pkg.memory}
|
||||
</li>
|
||||
<li className="flex items-center gap-3 text-sm text-gray-400 font-medium">
|
||||
<i className="fas fa-hdd text-[#6c63ff] w-5 text-center"></i> Disk: {pkg.disk} NVMe
|
||||
</li>
|
||||
<li className="flex items-center gap-3 text-sm text-gray-400 font-medium">
|
||||
<i className="fas fa-database text-[#6c63ff] w-5 text-center"></i> Databases: {pkg.databases}
|
||||
</li>
|
||||
<li className="flex items-center gap-3 text-sm text-gray-400 font-medium">
|
||||
<i className="fas fa-shield-alt text-[#6c63ff] w-5 text-center"></i> Enterprise DDoS Shield
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
{/* DYNAMICKÝ REDIRECT Z JSONU */}
|
||||
<a
|
||||
href={pkg.url}
|
||||
target={pkg.url.startsWith('http') ? "_blank" : "_self"}
|
||||
rel="noopener noreferrer"
|
||||
className="block w-full text-center bg-[#6c63ff] hover:bg-[#5a52d5] text-white py-5 rounded-2xl font-black uppercase tracking-widest text-[11px] transition-all shadow-lg shadow-[#6c63ff]/10"
|
||||
>
|
||||
{pkg.name === "CUSTOM" ? "Contact Support" : `Order ${pkg.name}`}
|
||||
</a>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
82
src/app/hytale/page.tsx
Normal file
82
src/app/hytale/page.tsx
Normal file
@ -0,0 +1,82 @@
|
||||
"use client";
|
||||
|
||||
import Navbar from "@/components/Navbar";
|
||||
import Footer from "@/components/Footer";
|
||||
import hytaleData from "@/components/jsons/hytale.json";
|
||||
|
||||
export default function HytalePricing() {
|
||||
return (
|
||||
<div className="min-h-screen bg-[#060606] text-white selection:bg-[#6c63ff]/30 font-inter">
|
||||
<Navbar />
|
||||
|
||||
{/* HEADER */}
|
||||
<section className="relative pt-48 pb-12 px-6 max-w-7xl mx-auto text-center">
|
||||
<div className="inline-flex items-center gap-2 px-4 py-1.5 rounded-full bg-[#6c63ff]/10 border border-[#6c63ff]/20 text-[#6c63ff] text-[10px] font-black uppercase tracking-widest mb-8">
|
||||
⚔️ High Performance Nodes
|
||||
</div>
|
||||
<h1 className="text-5xl lg:text-7xl font-black mb-6 uppercase tracking-tighter">
|
||||
Hytale <span className="text-[#6c63ff]">Pricing</span>
|
||||
</h1>
|
||||
<p className="text-gray-400 max-w-2xl mx-auto text-lg leading-relaxed">
|
||||
{hytaleData.description}
|
||||
</p>
|
||||
</section>
|
||||
|
||||
{/* PACKAGES GRID */}
|
||||
<section className="pb-32 px-6 max-w-7xl mx-auto">
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
|
||||
{hytaleData.packages.map((pkg) => (
|
||||
<div
|
||||
key={pkg.name}
|
||||
className="bg-[#0e0e0e] border border-white/5 p-10 rounded-[3.5rem] flex flex-col justify-between transition-all group relative overflow-hidden"
|
||||
>
|
||||
{/* Coming Soon Overlay Effect (Optional) */}
|
||||
<div className="absolute top-4 right-6">
|
||||
<span className="text-[10px] font-black uppercase tracking-[0.2em] text-[#6c63ff] animate-pulse">
|
||||
Coming Soon
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div className="flex justify-between items-start mb-8">
|
||||
<h3 className="text-3xl font-black uppercase tracking-tighter">{pkg.name}</h3>
|
||||
<div className="text-right">
|
||||
<div className="text-3xl font-black text-[#6c63ff]">
|
||||
{pkg.price}{pkg.price !== "Negotiable" ? "€" : ""}
|
||||
</div>
|
||||
{pkg.price !== "Negotiable" && (
|
||||
<div className="text-[10px] text-gray-500 uppercase font-bold tracking-widest">/ Month</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ul className="space-y-4 mb-10 opacity-50 italic">
|
||||
<li className="flex items-center gap-3 text-sm text-gray-400 font-medium">
|
||||
<i className="fas fa-memory text-[#6c63ff] w-5 text-center"></i> RAM: {pkg.memory}
|
||||
</li>
|
||||
<li className="flex items-center gap-3 text-sm text-gray-400 font-medium">
|
||||
<i className="fas fa-hdd text-[#6c63ff] w-5 text-center"></i> Disk: {pkg.disk} NVMe
|
||||
</li>
|
||||
<li className="flex items-center gap-3 text-sm text-gray-400 font-medium">
|
||||
<i className="fas fa-database text-[#6c63ff] w-5 text-center"></i> Databases: {pkg.databases}
|
||||
</li>
|
||||
<li className="flex items-center gap-3 text-sm text-gray-400 font-medium">
|
||||
<i className="fas fa-shield-alt text-[#6c63ff] w-5 text-center"></i> Enterprise DDoS Shield
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
{/* DISABLED BUTTON WITH COMING SOON TEXT */}
|
||||
<button
|
||||
disabled
|
||||
className="block w-full text-center bg-white/5 border border-white/10 text-gray-500 py-5 rounded-2xl font-black uppercase tracking-widest text-[11px] cursor-not-allowed"
|
||||
>
|
||||
Coming Soon
|
||||
</button>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@ -1,33 +1,38 @@
|
||||
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"],
|
||||
});
|
||||
import Navbar from "@/components/Navbar";
|
||||
import Footer from "@/components/Footer";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "Create Next App",
|
||||
description: "Generated by create next app",
|
||||
title: "HotHost.org – Best Minecraft & Discord Hosting | Cheap & Fast SK/CZ",
|
||||
description: "Premium hosting for Minecraft, Discord Bots, and Hytale. Powered by Ryzen 7 CPUs and elite DDoS protection.",
|
||||
keywords: "hothost, minecraft hosting, discord hosting, ryzen 7, hytale hosting",
|
||||
openGraph: {
|
||||
title: "HotHost.org – Best Hosting (SK/CZ)",
|
||||
images: ["https://hothost.org/image/banner.png"],
|
||||
type: "website",
|
||||
},
|
||||
};
|
||||
|
||||
export default function RootLayout({
|
||||
children,
|
||||
}: Readonly<{
|
||||
}: {
|
||||
children: React.ReactNode;
|
||||
}>) {
|
||||
}) {
|
||||
return (
|
||||
<html lang="en">
|
||||
<body
|
||||
className={`${geistSans.variable} ${geistMono.variable} antialiased`}
|
||||
>
|
||||
{children}
|
||||
<html lang="en" className="scroll-smooth">
|
||||
<head>
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" />
|
||||
<link href='https://unpkg.com/boxicons@2.1.4/css/boxicons.min.css' rel='stylesheet' />
|
||||
</head>
|
||||
<body className="bg-[#060606] text-white antialiased selection:bg-[#6c63ff]/30 font-inter">
|
||||
{/* Navbar is global and floating */}
|
||||
<Navbar />
|
||||
|
||||
<main>{children}</main>
|
||||
|
||||
{/* Footer is global */}
|
||||
<Footer />
|
||||
</body>
|
||||
</html>
|
||||
);
|
||||
|
||||
77
src/app/minecraft/page.tsx
Normal file
77
src/app/minecraft/page.tsx
Normal file
@ -0,0 +1,77 @@
|
||||
"use client";
|
||||
|
||||
import Navbar from "@/components/Navbar";
|
||||
import Footer from "@/components/Footer";
|
||||
import mcData from "@/components/jsons/minecraft.json";
|
||||
|
||||
export default function MinecraftPricing() {
|
||||
return (
|
||||
<div className="min-h-screen bg-[#060606] text-white selection:bg-[#6c63ff]/30 font-inter">
|
||||
<Navbar />
|
||||
|
||||
{/* HEADER */}
|
||||
<section className="relative pt-48 pb-12 px-6 max-w-7xl mx-auto text-center">
|
||||
<div className="inline-flex items-center gap-2 px-4 py-1.5 rounded-full bg-[#6c63ff]/10 border border-[#6c63ff]/20 text-[#6c63ff] text-[10px] font-black uppercase tracking-widest mb-8">
|
||||
🎮 High Performance Nodes
|
||||
</div>
|
||||
<h1 className="text-5xl lg:text-7xl font-black mb-6 uppercase tracking-tighter">
|
||||
Minecraft <span className="text-[#6c63ff]">Pricing</span>
|
||||
</h1>
|
||||
<p className="text-gray-400 max-w-2xl mx-auto text-lg leading-relaxed">
|
||||
{mcData.description}
|
||||
</p>
|
||||
</section>
|
||||
|
||||
{/* PACKAGES GRID */}
|
||||
<section className="pb-32 px-6 max-w-7xl mx-auto">
|
||||
<div className="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8">
|
||||
{mcData.packages.map((pkg) => (
|
||||
<div
|
||||
key={pkg.name}
|
||||
className="bg-[#0e0e0e] border border-white/5 p-10 rounded-[3.5rem] flex flex-col justify-between hover:border-[#6c63ff]/50 transition-all group"
|
||||
>
|
||||
<div>
|
||||
<div className="flex justify-between items-start mb-8">
|
||||
<h3 className="text-3xl font-black uppercase tracking-tighter">{pkg.name}</h3>
|
||||
<div className="text-right">
|
||||
<div className="text-3xl font-black text-[#6c63ff]">
|
||||
{pkg.price}{pkg.price !== "Negotiable" ? "€" : ""}
|
||||
</div>
|
||||
{pkg.price !== "Negotiable" && (
|
||||
<div className="text-[10px] text-gray-500 uppercase font-bold tracking-widest">/ Month</div>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<ul className="space-y-4 mb-10">
|
||||
<li className="flex items-center gap-3 text-sm text-gray-400 font-medium">
|
||||
<i className="fas fa-memory text-[#6c63ff] w-5 text-center"></i> RAM: {pkg.memory}
|
||||
</li>
|
||||
<li className="flex items-center gap-3 text-sm text-gray-400 font-medium">
|
||||
<i className="fas fa-hdd text-[#6c63ff] w-5 text-center"></i> Disk: {pkg.disk} NVMe
|
||||
</li>
|
||||
<li className="flex items-center gap-3 text-sm text-gray-400 font-medium">
|
||||
<i className="fas fa-database text-[#6c63ff] w-5 text-center"></i> Databases: {pkg.databases}
|
||||
</li>
|
||||
<li className="flex items-center gap-3 text-sm text-gray-400 font-medium">
|
||||
<i className="fas fa-shield-alt text-[#6c63ff] w-5 text-center"></i> Enterprise DDoS Shield
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
{/* DYNAMICKÝ REDIRECT Z JSONU */}
|
||||
<a
|
||||
href={pkg.url}
|
||||
target={pkg.url.startsWith('http') ? "_blank" : "_self"}
|
||||
rel="noopener noreferrer"
|
||||
className="block w-full text-center bg-[#6c63ff] hover:bg-[#5a52d5] text-white py-5 rounded-2xl font-black uppercase tracking-widest text-[11px] transition-all shadow-lg shadow-[#6c63ff]/10"
|
||||
>
|
||||
{pkg.name === "CUSTOM" ? "Contact Support" : `Order ${pkg.name}`}
|
||||
</a>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
42
src/app/not-found.tsx
Normal file
42
src/app/not-found.tsx
Normal file
@ -0,0 +1,42 @@
|
||||
"use client";
|
||||
|
||||
import Link from "next/link";
|
||||
|
||||
export default function NotFound() {
|
||||
return (
|
||||
<div className="min-h-screen bg-[#060606] text-white selection:bg-[#6c63ff]/30 font-inter flex flex-col">
|
||||
|
||||
<main className="flex-grow flex flex-col justify-center items-center px-6 pt-32 relative">
|
||||
{/* Glow background */}
|
||||
<div className="absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[300px] h-[300px] bg-[#6c63ff]/10 rounded-full blur-[100px] pointer-events-none"></div>
|
||||
|
||||
<div className="z-10 text-center">
|
||||
<h1 className="text-[120px] md:text-[180px] font-black leading-none tracking-tighter text-white opacity-20">
|
||||
404
|
||||
</h1>
|
||||
|
||||
<div className="inline-flex items-center gap-2 px-4 py-1.5 rounded-full bg-red-500/10 border border-red-500/20 text-red-500 text-[10px] font-black uppercase tracking-widest mb-8">
|
||||
⚠️ Node Disconnected
|
||||
</div>
|
||||
|
||||
<h2 className="text-3xl md:text-4xl font-black uppercase tracking-tight mb-6">
|
||||
Page <span className="text-[#6c63ff]">Not Found</span>
|
||||
</h2>
|
||||
|
||||
<p className="text-gray-500 text-lg leading-relaxed mb-12 max-w-md mx-auto">
|
||||
The service you are looking for is offline or moved to another node.
|
||||
</p>
|
||||
|
||||
<div className="flex flex-col sm:flex-row gap-4 justify-center">
|
||||
<Link
|
||||
href="/"
|
||||
className="bg-[#6c63ff] hover:scale-105 px-10 py-5 rounded-2xl font-black uppercase tracking-widest text-xs transition-all shadow-xl shadow-[#6c63ff]/20"
|
||||
>
|
||||
Return Home
|
||||
</Link>
|
||||
</div>
|
||||
</div>
|
||||
</main>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
196
src/app/page.tsx
196
src/app/page.tsx
@ -1,107 +1,127 @@
|
||||
import React from 'react';
|
||||
import { ShoppingCart, Server, Shield, Zap, Cpu } from 'lucide-react';
|
||||
"use client";
|
||||
|
||||
import { useState, useEffect } from "react";
|
||||
import Navbar from "@/components/Navbar";
|
||||
import Footer from "@/components/Footer";
|
||||
import Link from "next/link";
|
||||
|
||||
export default function RedesignedHome() {
|
||||
const [latency, setLatency] = useState<number | null>(null);
|
||||
|
||||
useEffect(() => {
|
||||
const pingNode = async () => {
|
||||
const start = Date.now();
|
||||
try {
|
||||
// Ping functionality for node.hothost.org
|
||||
await fetch("http://node.hothost.org", { mode: 'no-cors', cache: 'no-cache' });
|
||||
setLatency(Date.now() - start);
|
||||
} catch (e) { setLatency(null); }
|
||||
};
|
||||
pingNode();
|
||||
const interval = setInterval(pingNode, 10000);
|
||||
return () => clearInterval(interval);
|
||||
}, []);
|
||||
|
||||
export default function Home() {
|
||||
return (
|
||||
<div className="min-h-screen bg-bg-light text-text font-sans selection:bg-primary/30">
|
||||
<div className="min-h-screen bg-[#060606] text-white selection:bg-[#6c63ff]/30 font-inter">
|
||||
<Navbar />
|
||||
|
||||
{/* Header */}
|
||||
<header className="fixed top-0 left-0 w-full z-[1500] bg-bg-light/80 backdrop-blur-md border-b border-border">
|
||||
<div className="max-w-[1800px] mx-auto px-8 flex justify-between items-center h-20">
|
||||
<a href="#" className="flex items-center text-2xl font-bold">
|
||||
<Server className="text-primary mr-2" size={32} />
|
||||
<span>CLOUD<span className="text-primary">HOST</span></span>
|
||||
</a>
|
||||
|
||||
<nav className="hidden lg:block">
|
||||
<ul className="flex space-x-4">
|
||||
{['Domov', 'Servery', 'Cloud', 'O nás', 'Kontakt'].map((item) => (
|
||||
<li key={item}>
|
||||
<a href="#" className="px-5 py-2 rounded-full hover:bg-primary/10 hover:text-primary transition-all">
|
||||
{item}
|
||||
</a>
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
<div className="flex items-center gap-6">
|
||||
<div className="relative cursor-pointer group">
|
||||
<ShoppingCart className="group-hover:text-primary transition-colors" size={24} />
|
||||
<span className="absolute -top-2 -right-2 bg-secondary text-white text-[10px] font-bold w-5 h-5 flex items-center justify-center rounded-full">0</span>
|
||||
{/* HERO SECTION - Ryzen 7 focus */}
|
||||
<section className="relative pt-48 pb-20 px-6 max-w-7xl mx-auto min-h-screen flex items-center">
|
||||
<div className="grid lg:grid-cols-2 gap-16 items-center w-full">
|
||||
<div className="z-10 text-left">
|
||||
<div className="inline-flex items-center gap-2 px-4 py-1.5 rounded-full bg-[#6c63ff]/10 border border-[#6c63ff]/20 text-[#6c63ff] text-[10px] font-black uppercase tracking-widest mb-8">
|
||||
🚀 Enterprise Ryzen 7 Infrastructure
|
||||
</div>
|
||||
<h1 className="text-6xl lg:text-8xl font-black leading-[0.9] mb-8 tracking-tighter uppercase text-white">
|
||||
Limitless <br /> <span className="text-[#6c63ff]">Hosting.</span>
|
||||
</h1>
|
||||
<p className="text-lg text-gray-400 mb-10 max-w-md leading-relaxed">
|
||||
Premium hosting for Minecraft, Discord Bots, and Hytale. Powered by overclocked Ryzen 7 CPUs and elite DDoS protection.
|
||||
</p>
|
||||
<div className="flex gap-4">
|
||||
<a href="#pricing" className="bg-[#6c63ff] hover:scale-105 px-10 py-4 rounded-2xl font-black uppercase tracking-widest text-xs transition-all shadow-xl shadow-[#6c63ff]/20">Pricing</a>
|
||||
<a href="/contact" className="bg-white/5 border border-white/10 hover:bg-white/10 px-10 py-4 rounded-2xl font-black uppercase tracking-widest text-xs transition-all">Contact</a>
|
||||
</div>
|
||||
<button className="bg-primary hover:bg-primary-dark text-white px-6 py-2 rounded-full font-semibold transition-all">
|
||||
Klientska zóna
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
{/* Hero Section */}
|
||||
<section className="relative h-screen flex items-center justify-center overflow-hidden px-8">
|
||||
<div className="absolute inset-0 z-0">
|
||||
<div className="absolute inset-0 bg-hero-gradient z-10" />
|
||||
{/* Tu môžeš pridať video tag ako v tvojom CSS */}
|
||||
<div className="w-full h-full bg-[radial-gradient(circle_at_center,_var(--tw-gradient-stops))] from-primary/20 via-transparent to-transparent" />
|
||||
</div>
|
||||
|
||||
<div className="relative z-10 max-w-4xl text-center">
|
||||
<div className="flex flex-wrap justify-center gap-4 mb-8">
|
||||
<span className="bg-primary/15 border border-primary/30 px-4 py-2 rounded-full text-sm flex items-center gap-2">
|
||||
<Zap size={16} className="text-primary" /> 99.9% Uptime garantovaný
|
||||
</span>
|
||||
<span className="bg-primary/15 border border-primary/30 px-4 py-2 rounded-full text-sm flex items-center gap-2">
|
||||
<Shield size={16} className="text-primary" /> DDoS Ochrana v cene
|
||||
</span>
|
||||
</div>
|
||||
|
||||
<h1 className="text-6xl md:text-7xl font-extrabold mb-6 leading-tight bg-clip-text text-transparent bg-gradient-to-r from-primary to-accent">
|
||||
Výkon pre vaše <br /> digitálne projekty
|
||||
</h1>
|
||||
<div className="relative">
|
||||
{/* Character Visual with rounded corners */}
|
||||
<div className="rounded-[3.5rem] overflow-hidden border border-white/5 shadow-2xl relative aspect-square group">
|
||||
<img src="/image/character_bg.jpg" alt="HotHost Gaming" className="w-full h-full object-cover grayscale-[20%] group-hover:grayscale-0 transition-all duration-700" />
|
||||
<div className="absolute inset-0 bg-gradient-to-t from-black/80 via-transparent to-transparent"></div>
|
||||
|
||||
<p className="text-xl text-text-light mb-10 max-w-2xl mx-auto">
|
||||
Najrýchlejší NVMe hosting v strednej Európe s podporou, ktorá vám skutočne rozumie.
|
||||
</p>
|
||||
<div className="absolute top-8 right-8 bg-black/40 backdrop-blur-xl border border-white/10 px-5 py-2 rounded-2xl flex items-center gap-3">
|
||||
<div className={`w-2 h-2 rounded-full ${latency ? 'bg-green-500 animate-pulse' : 'bg-red-500'}`}></div>
|
||||
<span className="text-[10px] font-mono font-bold tracking-widest uppercase">{latency ? `${latency}ms Ping` : 'Connecting...'}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div className="flex flex-wrap justify-center gap-4">
|
||||
<button className="bg-primary hover:bg-primary-dark text-white px-8 py-4 rounded-full text-lg font-bold transition-transform hover:scale-105 shadow-lg shadow-primary/20">
|
||||
Zobraziť ponuku
|
||||
</button>
|
||||
<button className="border-2 border-primary text-primary hover:bg-primary hover:text-white px-8 py-4 rounded-full text-lg font-bold transition-all">
|
||||
Prečo my?
|
||||
</button>
|
||||
{/* Stats Grid inspired by Hexado layout */}
|
||||
<div className="grid grid-cols-3 gap-4 mt-6">
|
||||
<div className="bg-[#0e0e0e] border border-white/5 p-8 rounded-[2.5rem] text-center hover:border-[#6c63ff]/30 transition-all">
|
||||
<div className="text-3xl font-black text-white">99.9%</div>
|
||||
<div className="text-[9px] uppercase tracking-widest text-gray-500 font-bold mt-2 font-inter">Uptime</div>
|
||||
</div>
|
||||
<div className="bg-[#0e0e0e] border border-white/5 p-8 rounded-[2.5rem] text-center hover:border-[#6c63ff]/30 transition-all">
|
||||
<div className="text-3xl font-black text-white">R7</div>
|
||||
<div className="text-[9px] uppercase tracking-widest text-gray-500 font-bold mt-2 font-inter">Ryzen 7</div>
|
||||
</div>
|
||||
<div className="bg-[#0e0e0e] border border-white/5 p-8 rounded-[2.5rem] text-center hover:border-[#6c63ff]/30 transition-all">
|
||||
<div className="text-3xl font-black text-white">L3</div>
|
||||
<div className="text-[9px] uppercase tracking-widest text-gray-500 font-bold mt-2 font-inter">DDoS</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{/* Services / Plans */}
|
||||
<section className="py-24 max-w-[1400px] mx-auto px-8">
|
||||
<div className="text-center mb-16">
|
||||
<h2 className="text-4xl font-bold mb-4">Vyberte si svoj balíček</h2>
|
||||
<p className="text-text-light">Škálovateľné riešenia pre každého.</p>
|
||||
{/* PRICING SELECTOR SECTION */}
|
||||
<section id="pricing" className="py-32 container mx-auto px-6">
|
||||
<div className="text-center mb-20">
|
||||
<span className="text-[#6c63ff] font-black uppercase tracking-[0.4em] text-[10px]">Pricing</span>
|
||||
<h2 className="text-5xl font-black mt-4 tracking-tighter uppercase text-white font-inter">Select your service</h2>
|
||||
</div>
|
||||
|
||||
<div className="grid grid-cols-1 md:grid-cols-3 gap-8">
|
||||
{[
|
||||
{ name: 'Štart', price: '4.99', features: ['10GB NVMe', '1 Webstránka', 'E-maily bez limitu'] },
|
||||
{ name: 'Profi', price: '12.99', features: ['50GB NVMe', '5 Webstránok', 'VIP Podpora'], popular: true },
|
||||
{ name: 'Business', price: '29.99', features: ['Neobmedzene', 'Dedikovaná IP', 'Backup 24/7'] },
|
||||
].map((plan) => (
|
||||
<div key={plan.name} className={`bg-card-bg border ${plan.popular ? 'border-primary' : 'border-border'} p-10 rounded-2xl transition-transform hover:-translate-y-2 relative overflow-hidden`}>
|
||||
{plan.popular && <div className="absolute top-0 right-0 bg-primary text-white text-xs py-1 px-4 rounded-bl-lg">POPULÁRNE</div>}
|
||||
<div className="w-16 h-16 bg-gradient-to-br from-primary to-accent rounded-full flex items-center justify-center mb-6">
|
||||
<Cpu className="text-white" size={32} />
|
||||
<div className="grid md:grid-cols-3 gap-8">
|
||||
{/* Minecraft Card - Bento Style */}
|
||||
<Link href="/minecraft" className="group relative bg-[#0e0e0e] border border-white/5 p-12 rounded-[3.5rem] overflow-hidden transition-all hover:border-[#6c63ff]/50 hover:-translate-y-2">
|
||||
<div className="relative z-10">
|
||||
<i className="fas fa-cube text-4xl text-[#6c63ff] mb-8"></i>
|
||||
<h3 className="text-3xl font-black mb-4 uppercase tracking-tighter font-inter">Minecraft</h3>
|
||||
<p className="text-gray-500 mb-8 leading-relaxed">High-performance hosting for survival, creative or modded servers.</p>
|
||||
<div className="inline-flex items-center gap-2 text-[#6c63ff] font-bold uppercase text-xs tracking-widest">
|
||||
View Plans <i className="fas fa-arrow-right group-hover:translate-x-2 transition-transform"></i>
|
||||
</div>
|
||||
<h3 className="text-2xl font-bold mb-2">{plan.name}</h3>
|
||||
<div className="text-4xl font-bold mb-6">{plan.price}€<span className="text-sm text-text-light">/mesiac</span></div>
|
||||
<ul className="space-y-4 mb-8 text-text-light text-left">
|
||||
{plan.features.map(f => <li key={f} className="flex items-center gap-2"><Shield size={16} className="text-primary"/> {f}</li>)}
|
||||
</ul>
|
||||
<button className="w-full border-2 border-primary text-primary hover:bg-primary hover:text-white py-3 rounded-full font-bold transition-all hover:shadow-[0_0_15px_rgba(108,99,255,0.5)]">
|
||||
Objednať teraz
|
||||
</button>
|
||||
</div>
|
||||
))}
|
||||
<div className="absolute top-0 right-0 p-8 opacity-10 group-hover:opacity-20 transition-opacity">
|
||||
<i className="fas fa-gamepad text-8xl text-white"></i>
|
||||
</div>
|
||||
</Link>
|
||||
|
||||
{/* Discord Card */}
|
||||
<Link href="/discord" className="group relative bg-[#0e0e0e] border border-white/5 p-12 rounded-[3.5rem] overflow-hidden transition-all hover:border-[#6c63ff]/50 hover:-translate-y-2">
|
||||
<div className="relative z-10">
|
||||
<i className="fab fa-discord text-4xl text-[#5865F2] mb-8"></i>
|
||||
<h3 className="text-3xl font-black mb-4 uppercase tracking-tighter font-inter">Discord Bot</h3>
|
||||
<p className="text-gray-500 mb-8 leading-relaxed">24/7 hosting for your bots. Node.js, Python, Java and more supported.</p>
|
||||
<div className="inline-flex items-center gap-2 text-[#6c63ff] font-bold uppercase text-xs tracking-widest">
|
||||
View Plans <i className="fas fa-arrow-right group-hover:translate-x-2 transition-transform"></i>
|
||||
</div>
|
||||
</div>
|
||||
</Link>
|
||||
|
||||
{/* Hytale Card */}
|
||||
<Link href="/hytale" className="group relative bg-[#0e0e0e] border border-white/5 p-12 rounded-[3.5rem] overflow-hidden transition-all hover:border-[#6c63ff]/50 hover:-translate-y-2">
|
||||
<div className="relative z-10">
|
||||
<i className="fas fa-shuttle-space text-4xl text-[#4ecdc4] mb-8"></i>
|
||||
<h3 className="text-3xl font-black mb-4 uppercase tracking-tighter font-inter">Hytale</h3>
|
||||
<p className="text-gray-500 mb-8 leading-relaxed">Be ready for the next adventure. Pre-order and get early bird nodes.</p>
|
||||
<div className="inline-flex items-center gap-2 text-[#6c63ff] font-bold uppercase text-xs tracking-widest">
|
||||
View Plans <i className="fas fa-arrow-right group-hover:translate-x-2 transition-transform"></i>
|
||||
</div>
|
||||
</div>
|
||||
</Link>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
|
||||
102
src/app/refund/page.tsx
Normal file
102
src/app/refund/page.tsx
Normal file
@ -0,0 +1,102 @@
|
||||
"use client";
|
||||
|
||||
import Navbar from "@/components/Navbar";
|
||||
import Footer from "@/components/Footer";
|
||||
|
||||
export default function RefundPolicy() {
|
||||
return (
|
||||
<div className="min-h-screen bg-[#060606] text-white selection:bg-[#6c63ff]/30 font-inter">
|
||||
<Navbar />
|
||||
|
||||
{/* HEADER SECTION */}
|
||||
<section className="relative pt-48 pb-12 px-6 max-w-4xl mx-auto text-center">
|
||||
<div className="inline-flex items-center gap-2 px-4 py-1.5 rounded-full bg-[#6c63ff]/10 border border-[#6c63ff]/20 text-[#6c63ff] text-[10px] font-black uppercase tracking-widest mb-8">
|
||||
💰 Billing & Credits
|
||||
</div>
|
||||
<h1 className="text-5xl lg:text-6xl font-black mb-6 uppercase tracking-tighter">
|
||||
Refund <span className="text-[#6c63ff]">Policy</span>
|
||||
</h1>
|
||||
<p className="text-gray-400 text-lg leading-relaxed">
|
||||
Last updated: January 2026 | HotHost.org
|
||||
</p>
|
||||
</section>
|
||||
|
||||
{/* CONTENT SECTION */}
|
||||
<section className="pb-32 px-6 max-w-4xl mx-auto">
|
||||
<div className="bg-[#0e0e0e] border border-white/5 p-8 md:p-16 rounded-[3rem] shadow-2xl">
|
||||
|
||||
<div className="prose prose-invert max-w-none space-y-12 text-gray-300">
|
||||
|
||||
{/* IMPORTANT ALERT */}
|
||||
<div className="bg-[#f3ba2f]/5 border-l-4 border-[#f3ba2f] p-6 rounded-r-2xl mb-12">
|
||||
<h2 className="text-[#f3ba2f] font-black uppercase tracking-widest text-sm mb-2 italic">Important Notice</h2>
|
||||
<p className="text-sm leading-relaxed text-gray-200">
|
||||
All refunds are issued as <strong>credits to your HotHost.org account</strong> which can be used for future purchases.
|
||||
We do not provide cash refunds to original payment methods.
|
||||
Requests made after 48 hours will not be accepted.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<section>
|
||||
<h2 className="text-2xl font-black text-white uppercase tracking-tight mb-6">Refund Eligibility</h2>
|
||||
<div className="grid md:grid-cols-2 gap-4">
|
||||
<div className="bg-white/5 p-6 rounded-3xl border border-white/5 hover:border-[#6c63ff]/20 transition-all">
|
||||
<i className="fas fa-clock text-[#6c63ff] mb-4 text-xl"></i>
|
||||
<p className="text-sm">Requests must be submitted within <strong>48 hours</strong> of purchase.</p>
|
||||
</div>
|
||||
<div className="bg-white/5 p-6 rounded-3xl border border-white/5 hover:border-[#6c63ff]/20 transition-all">
|
||||
<i className="fas fa-wallet text-[#6c63ff] mb-4 text-xl"></i>
|
||||
<p className="text-sm">Refunds are provided only as <strong>account credits</strong>.</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2 className="text-2xl font-black text-white uppercase tracking-tight mb-6 font-inter">Non-Refundable Services</h2>
|
||||
<ul className="grid md:grid-cols-2 gap-x-8 gap-y-3 list-none pl-0">
|
||||
<li className="flex items-center gap-3 text-sm opacity-70"><i className="fas fa-times text-red-500"></i> Domain registrations & renewals</li>
|
||||
<li className="flex items-center gap-3 text-sm opacity-70"><i className="fas fa-times text-red-500"></i> SSL certificates</li>
|
||||
<li className="flex items-center gap-3 text-sm opacity-70"><i className="fas fa-times text-red-500"></i> Services suspended for ToS violations</li>
|
||||
<li className="flex items-center gap-3 text-sm opacity-70"><i className="fas fa-times text-red-500"></i> Over 20% resource utilization</li>
|
||||
<li className="flex items-center gap-3 text-sm opacity-70"><i className="fas fa-times text-red-500"></i> Custom setup fees</li>
|
||||
<li className="flex items-center gap-3 text-sm opacity-70"><i className="fas fa-times text-red-500"></i> Promotional / Discounted items</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
{/* STEPS PROCESS */}
|
||||
<section className="py-8">
|
||||
<h2 className="text-2xl font-black text-white uppercase tracking-tight mb-8 text-center font-inter">How to Request a Refund</h2>
|
||||
<div className="space-y-6">
|
||||
{[
|
||||
{ step: "01", title: "Check Eligibility", desc: "Ensure your request meets the 48-hour criteria and resource usage limits." },
|
||||
{ step: "02", title: "Submit Request", desc: "Contact us at info@hothost.org with your Order ID and reason." },
|
||||
{ step: "03", title: "Review Process", desc: "Our team will verify your usage statistics within 24 hours." },
|
||||
{ step: "04", title: "Credit Issuance", desc: "If approved, credits are instantly added to your dashboard." }
|
||||
].map((item, idx) => (
|
||||
<div key={idx} className="flex gap-6 items-start p-6 bg-white/[0.02] border border-white/5 rounded-[2rem]">
|
||||
<span className="text-[#6c63ff] font-black text-2xl opacity-50">{item.step}</span>
|
||||
<div>
|
||||
<h4 className="font-bold text-white mb-1 uppercase tracking-wider text-sm">{item.title}</h4>
|
||||
<p className="text-sm text-gray-500">{item.desc}</p>
|
||||
</div>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section className="bg-gradient-to-br from-[#6c63ff]/10 to-transparent p-8 rounded-[2.5rem] border border-[#6c63ff]/20">
|
||||
<h2 className="text-xl font-black text-white uppercase tracking-tight mb-4">Exceptions</h2>
|
||||
<p className="text-sm leading-relaxed italic">
|
||||
In rare cases of service downtime exceeding 24 hours continuously, we may consider exceptions to our standard refund policy.
|
||||
These cases are evaluated individually by our management team.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<Footer />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
112
src/app/terms/page.tsx
Normal file
112
src/app/terms/page.tsx
Normal file
@ -0,0 +1,112 @@
|
||||
"use client";
|
||||
|
||||
import Navbar from "@/components/Navbar";
|
||||
import Footer from "@/components/Footer";
|
||||
|
||||
export default function TermsOfService() {
|
||||
return (
|
||||
<div className="min-h-screen bg-[#060606] text-white selection:bg-[#6c63ff]/30 font-inter">
|
||||
<Navbar />
|
||||
|
||||
{/* HEADER SECTION */}
|
||||
<section className="relative pt-48 pb-12 px-6 max-w-4xl mx-auto text-center">
|
||||
<div className="inline-flex items-center gap-2 px-4 py-1.5 rounded-full bg-[#6c63ff]/10 border border-[#6c63ff]/20 text-[#6c63ff] text-[10px] font-black uppercase tracking-widest mb-8">
|
||||
⚖️ Legal Documentation
|
||||
</div>
|
||||
<h1 className="text-5xl lg:text-6xl font-black mb-6 uppercase tracking-tighter">
|
||||
Terms of <span className="text-[#6c63ff]">Service</span>
|
||||
</h1>
|
||||
<p className="text-gray-400 text-lg leading-relaxed">
|
||||
Last updated: January 2026 | HotHost.org
|
||||
</p>
|
||||
</section>
|
||||
|
||||
{/* CONTENT SECTION */}
|
||||
<section className="pb-32 px-6 max-w-4xl mx-auto">
|
||||
<div className="bg-[#0e0e0e] border border-white/5 p-8 md:p-16 rounded-[3rem] shadow-2xl">
|
||||
|
||||
<div className="prose prose-invert max-w-none space-y-12 text-gray-300">
|
||||
|
||||
<div className="bg-[#6c63ff]/5 border-l-4 border-[#6c63ff] p-6 rounded-r-2xl mb-12">
|
||||
<h2 className="text-[#6c63ff] font-black uppercase tracking-widest text-sm mb-2">Important Notice</h2>
|
||||
<p className="text-sm leading-relaxed">
|
||||
By using our services, you also agree to our <a href="/refund" className="text-white underline hover:text-[#6c63ff]">Refund Policy</a>.
|
||||
Please review it carefully before making any purchases.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<section>
|
||||
<h2 className="text-2xl font-black text-white uppercase tracking-tight mb-4">1. Acceptance of Terms</h2>
|
||||
<p>
|
||||
By accessing and using the services provided by HotHost.org ("we", "us", "our"), you agree to be bound by these Terms of Service and all applicable laws and regulations. If you do not agree with any of these terms, you are prohibited from using or accessing our services.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2 className="text-2xl font-black text-white uppercase tracking-tight mb-4">2. Description of Services</h2>
|
||||
<p>
|
||||
HotHost.org provides web hosting, Minecraft server hosting, FiveM server hosting, VPS, and related services. We reserve the right to modify, suspend, or discontinue any service at any time with or without notice.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2 className="text-2xl font-black text-white uppercase tracking-tight mb-4">3. Account Registration</h2>
|
||||
<ul className="list-disc pl-6 space-y-2">
|
||||
<li>Provide accurate, current, and complete information during registration</li>
|
||||
<li>Maintain and promptly update your account information</li>
|
||||
<li>Maintain the security of your password and accept all risks of unauthorized access</li>
|
||||
<li>Notify us immediately if you discover or suspect any security breaches</li>
|
||||
<li>Take responsibility for all activities that occur under your account</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2 className="text-2xl font-black text-white uppercase tracking-tight mb-4">4. Payment and Billing</h2>
|
||||
<div className="space-y-4">
|
||||
<p><strong>4.1 Service Fees:</strong> You agree to pay all fees associated with your selected services according to the current pricing. All fees are quoted in Czech Koruna (CZK) unless otherwise specified.</p>
|
||||
<p><strong>4.2 Billing Cycle:</strong> Services are billed on a monthly basis unless you select a different billing cycle. Payment is due in advance for each billing cycle.</p>
|
||||
<p><strong>4.3 Late Payments:</strong> Accounts with overdue payments may be suspended or terminated. We reserve the right to charge late fees on overdue accounts.</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2 className="text-2xl font-black text-white uppercase tracking-tight mb-4">5. Acceptable Use</h2>
|
||||
<p className="mb-4 text-sm uppercase tracking-widest text-[#6c63ff] font-bold">Prohibited activities include:</p>
|
||||
<ul className="grid md:grid-cols-2 gap-4 list-none pl-0">
|
||||
<li className="bg-white/5 p-4 rounded-2xl text-xs border border-white/5 italic">Distributing malware or harmful code</li>
|
||||
<li className="bg-white/5 p-4 rounded-2xl text-xs border border-white/5 italic">Spamming or unsolicited communications</li>
|
||||
<li className="bg-white/5 p-4 rounded-2xl text-xs border border-white/5 italic">Hosting or distributing illegal content</li>
|
||||
<li className="bg-white/5 p-4 rounded-2xl text-xs border border-white/5 italic">Violating intellectual property rights</li>
|
||||
<li className="bg-white/5 p-4 rounded-2xl text-xs border border-white/5 italic">Mining cryptocurrencies without permission</li>
|
||||
<li className="bg-white/5 p-4 rounded-2xl text-xs border border-white/5 italic">DDoS attacks or network abuse</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2 className="text-2xl font-black text-white uppercase tracking-tight mb-4">6. Service Level Agreement (SLA)</h2>
|
||||
<p>
|
||||
We strive to maintain 99.9% uptime for our services. If we fail to meet this uptime guarantee, you may be eligible for service credits as outlined in our SLA.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2 className="text-2xl font-black text-white uppercase tracking-tight mb-4">7. Data Backup</h2>
|
||||
<p className="p-6 bg-red-500/10 border border-red-500/20 rounded-2xl text-red-200 text-sm">
|
||||
While we perform regular backups of our systems, you are solely responsible for maintaining backups of your data. We are not liable for any data loss under any circumstances.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section>
|
||||
<h2 className="text-2xl font-black text-white uppercase tracking-tight mb-4">14. Contact Information</h2>
|
||||
<p>
|
||||
If you have any questions about these Terms of Service, please contact us at: <br />
|
||||
<a href="mailto:info@hothost.org" className="text-[#6c63ff] font-bold hover:underline">info@hothost.org</a>
|
||||
</p>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
53
src/components/Footer.tsx
Normal file
53
src/components/Footer.tsx
Normal file
@ -0,0 +1,53 @@
|
||||
"use client";
|
||||
|
||||
import Link from "next/link";
|
||||
|
||||
export default function Footer() {
|
||||
return (
|
||||
<footer className="bg-[#0a0a0a] pt-32 pb-12 border-t border-white/5 px-6">
|
||||
<div className="max-w-7xl mx-auto grid md:grid-cols-4 gap-16 lg:gap-20 mb-20">
|
||||
|
||||
{/* Brand Column */}
|
||||
<div className="col-span-1 md:col-span-1">
|
||||
<Link href="/" className="inline-block mb-8 transition-transform hover:scale-105">
|
||||
<img src="/image/banner.png" alt="HotHost Logo" className="h-10 w-auto" />
|
||||
</Link>
|
||||
<p className="text-gray-500 text-sm leading-relaxed">
|
||||
Premium infrastructure designed for gaming communities. Powered by Ryzen 7 performance and 24/7 expert support.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
{/* Links Columns */}
|
||||
<div>
|
||||
<h4 className="font-black text-[10px] uppercase tracking-[0.4em] mb-10 text-[#6c63ff]">Explore</h4>
|
||||
<div className="flex flex-col gap-4 text-gray-500 text-sm font-bold uppercase tracking-widest">
|
||||
<Link href="/minecraft" className="hover:text-white transition-colors">Minecraft</Link>
|
||||
<Link href="/discord" className="hover:text-white transition-colors">Discord Bot</Link>
|
||||
<Link href="/hytale" className="hover:text-white transition-colors">Hytale</Link>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h4 className="font-bold text-[10px] uppercase tracking-[0.4em] mb-10 text-[#6c63ff]">Legal</h4>
|
||||
<div className="flex flex-col gap-4 text-gray-500 text-sm font-bold uppercase tracking-widest">
|
||||
<Link href="/terms" className="hover:text-white transition-colors">Terms of Service</Link>
|
||||
<Link href="/refund" className="hover:text-white transition-colors">Rufund Policy</Link>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<h4 className="font-bold text-[10px] uppercase tracking-[0.4em] mb-10 text-[#6c63ff]">Support</h4>
|
||||
<p className="text-gray-400 font-mono text-sm">info@hothost.org</p>
|
||||
<div className="mt-4 flex items-center gap-2 text-[10px] text-gray-600 font-bold uppercase tracking-widest">
|
||||
<i className="fas fa-circle text-success text-[6px]"></i> Global Infrastructure
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div className="max-w-7xl mx-auto pt-8 border-t border-white/5 text-center text-[10px] text-gray-600 uppercase tracking-widest font-bold">
|
||||
© 2026 HotHost Global. All rights reserved.
|
||||
</div>
|
||||
</footer>
|
||||
);
|
||||
}
|
||||
45
src/components/Navbar.tsx
Normal file
45
src/components/Navbar.tsx
Normal file
@ -0,0 +1,45 @@
|
||||
"use client";
|
||||
|
||||
import { useState, useEffect } from "react";
|
||||
|
||||
export default function Navbar() {
|
||||
const [scrolled, setScrolled] = useState(false);
|
||||
|
||||
useEffect(() => {
|
||||
const handleScroll = () => setScrolled(window.scrollY > 20);
|
||||
window.addEventListener("scroll", handleScroll);
|
||||
return () => window.removeEventListener("scroll", handleScroll);
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<div className="fixed top-0 left-0 w-full flex justify-center z-[2000] p-4 pointer-events-none">
|
||||
<nav className={`w-full max-w-6xl flex justify-between items-center px-6 lg:px-10 py-3 rounded-2xl border transition-all duration-500 pointer-events-auto ${
|
||||
scrolled
|
||||
? "bg-black/60 backdrop-blur-xl border-white/10 shadow-2xl translate-y-2"
|
||||
: "bg-transparent border-transparent translate-y-0"
|
||||
}`}>
|
||||
{/* Logo Banner instead of text */}
|
||||
<a href="/" className="flex items-center transition-transform hover:scale-105">
|
||||
<img
|
||||
src="/image/banner.png"
|
||||
alt="HotHost.org Banner"
|
||||
className="h-10 lg:h-12 w-auto object-contain"
|
||||
/>
|
||||
</a>
|
||||
|
||||
{/* Navigation Links */}
|
||||
<div className="hidden md:flex items-center gap-8 text-[11px] uppercase tracking-[0.2em] font-bold text-gray-400">
|
||||
<a href="/#services" className="hover:text-[#6c63ff] transition-colors">Services</a>
|
||||
<a href="https://status.hothost.org/" className="hover:text-[#6c63ff] transition-colors">Status</a>
|
||||
<a href="/#pricing" className="hover:text-[#6c63ff] transition-colors">Pricing</a>
|
||||
<a href="/contact" className="hover:text-[#6c63ff] transition-colors">Contact</a>
|
||||
</div>
|
||||
|
||||
{/* Dashboard Action */}
|
||||
<a href="https://dash.hothost.org" className="bg-[#f3ba2f] text-black px-6 py-2 rounded-xl font-black text-[10px] tracking-widest hover:scale-105 transition-all shadow-lg shadow-[#f3ba2f]/10 uppercase">
|
||||
Dashboard
|
||||
</a>
|
||||
</nav>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
31
src/components/Scrollbar.tsx
Normal file
31
src/components/Scrollbar.tsx
Normal file
@ -0,0 +1,31 @@
|
||||
"use client";
|
||||
|
||||
import { useEffect } from "react";
|
||||
|
||||
export default function Scrollbar() {
|
||||
useEffect(() => {
|
||||
const style = document.createElement("style");
|
||||
style.innerHTML = `
|
||||
::-webkit-scrollbar {
|
||||
width: 8px;
|
||||
}
|
||||
::-webkit-scrollbar-track {
|
||||
background: #060606;
|
||||
}
|
||||
::-webkit-scrollbar-thumb {
|
||||
background: #2a2a2a;
|
||||
border-radius: 20px;
|
||||
}
|
||||
::-webkit-scrollbar-thumb:hover {
|
||||
background: #6c63ff;
|
||||
box-shadow: 0 0 10px rgba(108, 99, 255, 0.5);
|
||||
}
|
||||
`;
|
||||
document.head.appendChild(style);
|
||||
return () => {
|
||||
document.head.removeChild(style);
|
||||
};
|
||||
}, []);
|
||||
|
||||
return null; // Tento komponent nič nevykresľuje, iba pridáva štýly
|
||||
}
|
||||
22
src/components/jsons/discord.json
Normal file
22
src/components/jsons/discord.json
Normal file
@ -0,0 +1,22 @@
|
||||
{
|
||||
"title": "Discord Bot Hosting",
|
||||
"description": "High-performance hosting for your Discord bots. We support Node.js, Python, Java, and more with 100% uptime guaranteed.",
|
||||
"languages": [
|
||||
{
|
||||
"name": "Node.js",
|
||||
"packages": [
|
||||
{ "name": "512MB", "price": "0.80", "memory": "512 MB", "disk": "512 MB", "databases": 1, "url": "https://zone.hothost.org/products/python-bot/512mb-python" },
|
||||
{ "name": "1GB", "price": "1.05", "memory": "1000 MB", "disk": "1000 MB", "databases": 2, "url": "https://zone.hothost.org/products/python-bot/1gb-python" },
|
||||
{ "name": "CUSTOM", "price": "Custom", "memory": "Flexible", "disk": "Flexible", "databases": "∞", "url": "mailto:info@hothost.org" }
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Python",
|
||||
"packages": [
|
||||
{ "name": "512MB", "price": "0.80", "memory": "512 MB", "disk": "512 MB", "databases": 1, "url": "https://zone.hothost.org/products/python-bot/512mb-nodejs" },
|
||||
{ "name": "1GB", "price": "1.05", "memory": "1000 MB", "disk": "1000 MB", "databases": 2, "url": "https://zone.hothost.org/products/python-bot/1gb-nodejs" },
|
||||
{ "name": "CUSTOM", "price": "Custom", "memory": "Flexible", "disk": "Flexible", "databases": "∞", "url": "mailto:info@hothost.org" }
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
29
src/components/jsons/hytale.json
Normal file
29
src/components/jsons/hytale.json
Normal file
@ -0,0 +1,29 @@
|
||||
{
|
||||
"description": "Premium hosting for Orbis adventurers. Experience Hytale with maximum performance on our dedicated Ryzen 7 nodes.",
|
||||
"packages": [
|
||||
{
|
||||
"name": "Orbis I",
|
||||
"price": "2.50",
|
||||
"memory": "4 GB",
|
||||
"disk": "40 GB",
|
||||
"databases": 3,
|
||||
"url": "https://zone.hothost.org/products/hytale"
|
||||
},
|
||||
{
|
||||
"name": "Orbis II",
|
||||
"price": "4.90",
|
||||
"memory": "6 GB",
|
||||
"disk": "60 GB",
|
||||
"databases": 5,
|
||||
"url": "https://zone.hothost.org/products/hytale"
|
||||
},
|
||||
{
|
||||
"name": "Orbis III",
|
||||
"price": "9.50",
|
||||
"memory": "8 GB",
|
||||
"disk": "80 GB",
|
||||
"databases": 10,
|
||||
"url": "https://zone.hothost.org/products/hytale"
|
||||
}
|
||||
]
|
||||
}
|
||||
51
src/components/jsons/minecraft.json
Normal file
51
src/components/jsons/minecraft.json
Normal file
@ -0,0 +1,51 @@
|
||||
{
|
||||
"title": "Minecraft Hosting Packages",
|
||||
"description": "Premium Ryzen 7 performance for your community. Choose a plan that fits your needs with instant deployment and elite DDoS protection.",
|
||||
"packages": [
|
||||
{
|
||||
"name": "1GB",
|
||||
"price": "0.90",
|
||||
"memory": "1924 MB",
|
||||
"swap": "0 MB",
|
||||
"disk": "20.8 GB",
|
||||
"databases": 3,
|
||||
"url": "https://zone.hothost.org/products/minecraft/1gb-minecraft"
|
||||
},
|
||||
{
|
||||
"name": "2GB",
|
||||
"price": "2.10",
|
||||
"memory": "2048 MB",
|
||||
"swap": "0 MB",
|
||||
"disk": "30.8 GB",
|
||||
"databases": 3,
|
||||
"url": "https://zone.hothost.org/products/minecraft/2gb-minecraft"
|
||||
},
|
||||
{
|
||||
"name": "4GB",
|
||||
"price": "3.75",
|
||||
"memory": "4096 MB",
|
||||
"swap": "0 MB",
|
||||
"disk": "40 GB",
|
||||
"databases": 5,
|
||||
"url": "https://zone.hothost.org/products/minecraft/4gb-minecraft"
|
||||
},
|
||||
{
|
||||
"name": "6GB",
|
||||
"price": "5.40",
|
||||
"memory": "6144 MB",
|
||||
"swap": "0 MB",
|
||||
"disk": "70 GB",
|
||||
"databases": 5,
|
||||
"url": "https://zone.hothost.org/products/minecraft/6gb-minecraft"
|
||||
},
|
||||
{
|
||||
"name": "CUSTOM",
|
||||
"price": "? ",
|
||||
"memory": "Unlimited",
|
||||
"swap": "0 MB",
|
||||
"disk": "Custom",
|
||||
"databases": "∞",
|
||||
"url": "mailto:info@hothost.org"
|
||||
}
|
||||
]
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user