Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 4be28c5392 | |||
| d8144129c9 |
@@ -6,7 +6,6 @@ import NavbarLayoutFloatingOverlay from "@/components/navbar/NavbarLayoutFloatin
|
|||||||
import HeroLogoBillboard from "@/components/sections/hero/HeroLogoBillboard";
|
import HeroLogoBillboard from "@/components/sections/hero/HeroLogoBillboard";
|
||||||
import FeatureCardTwentyOne from "@/components/sections/feature/FeatureCardTwentyOne";
|
import FeatureCardTwentyOne from "@/components/sections/feature/FeatureCardTwentyOne";
|
||||||
import FooterBaseReveal from "@/components/sections/footer/FooterBaseReveal";
|
import FooterBaseReveal from "@/components/sections/footer/FooterBaseReveal";
|
||||||
import LanguageSwitcher from "@/components/LanguageSwitcher";
|
|
||||||
|
|
||||||
export default function AboutPage() {
|
export default function AboutPage() {
|
||||||
const navItems = [
|
const navItems = [
|
||||||
@@ -18,7 +17,8 @@ export default function AboutPage() {
|
|||||||
|
|
||||||
const footerColumns = [
|
const footerColumns = [
|
||||||
{
|
{
|
||||||
title: "Product", items: [
|
title: "Product",
|
||||||
|
items: [
|
||||||
{ label: "Create Music", href: "/create" },
|
{ label: "Create Music", href: "/create" },
|
||||||
{ label: "Features", href: "/" },
|
{ label: "Features", href: "/" },
|
||||||
{ label: "Pricing", href: "/pricing" },
|
{ label: "Pricing", href: "/pricing" },
|
||||||
@@ -26,7 +26,8 @@ export default function AboutPage() {
|
|||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "Company", items: [
|
title: "Company",
|
||||||
|
items: [
|
||||||
{ label: "About Us", href: "/about" },
|
{ label: "About Us", href: "/about" },
|
||||||
{ label: "Blog", href: "#" },
|
{ label: "Blog", href: "#" },
|
||||||
{ label: "Careers", href: "#" },
|
{ label: "Careers", href: "#" },
|
||||||
@@ -34,7 +35,8 @@ export default function AboutPage() {
|
|||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "Legal", items: [
|
title: "Legal",
|
||||||
|
items: [
|
||||||
{ label: "Privacy Policy", href: "#" },
|
{ label: "Privacy Policy", href: "#" },
|
||||||
{ label: "Terms of Service", href: "#" },
|
{ label: "Terms of Service", href: "#" },
|
||||||
{ label: "License Agreement", href: "#" },
|
{ label: "License Agreement", href: "#" },
|
||||||
@@ -56,14 +58,14 @@ export default function AboutPage() {
|
|||||||
secondaryButtonStyle="solid"
|
secondaryButtonStyle="solid"
|
||||||
headingFontWeight="semibold"
|
headingFontWeight="semibold"
|
||||||
>
|
>
|
||||||
<LanguageSwitcher />
|
|
||||||
|
|
||||||
<div id="nav" data-section="nav">
|
<div id="nav" data-section="nav">
|
||||||
<NavbarLayoutFloatingOverlay
|
<NavbarLayoutFloatingOverlay
|
||||||
brandName="Beatcraft"
|
brandName="Beatcraft"
|
||||||
navItems={navItems}
|
navItems={navItems}
|
||||||
button={{
|
button={{
|
||||||
text: "Create Now", href: "/create"}}
|
text: "Create Now",
|
||||||
|
href: "/create",
|
||||||
|
}}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -91,14 +93,23 @@ export default function AboutPage() {
|
|||||||
description="Beatcraft exists to remove barriers to creative expression. We believe everyone should have access to professional-grade music and video creation tools."
|
description="Beatcraft exists to remove barriers to creative expression. We believe everyone should have access to professional-grade music and video creation tools."
|
||||||
accordionItems={[
|
accordionItems={[
|
||||||
{
|
{
|
||||||
id: "1", title: "Our Mission", content:
|
id: "1",
|
||||||
"Democratize music and video creation by providing free, unlimited access to AI-powered creative tools. We're breaking down the barriers that prevent talented people from sharing their art with the world."},
|
title: "Our Mission",
|
||||||
|
content:
|
||||||
|
"Democratize music and video creation by providing free, unlimited access to AI-powered creative tools. We're breaking down the barriers that prevent talented people from sharing their art with the world.",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
id: "2", title: "Our Values", content:
|
id: "2",
|
||||||
"Creativity for all: No barriers based on skill, budget, or background. Transparency: Honest pricing, clear policies, user-first decisions. Sustainability: Building for the long term, supporting creators and artists ethically."},
|
title: "Our Values",
|
||||||
|
content:
|
||||||
|
"Creativity for all: No barriers based on skill, budget, or background. Transparency: Honest pricing, clear policies, user-first decisions. Sustainability: Building for the long term, supporting creators and artists ethically.",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
id: "3", title: "Our Impact", content:
|
id: "3",
|
||||||
"Millions of people have created music and videos with Beatcraft. We've removed the equipment and software barriers that once kept creative expression out of reach. Our community is growing daily."},
|
title: "Our Impact",
|
||||||
|
content:
|
||||||
|
"Millions of people have created music and videos with Beatcraft. We've removed the equipment and software barriers that once kept creative expression out of reach. Our community is growing daily.",
|
||||||
|
},
|
||||||
]}
|
]}
|
||||||
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3ARFZ7g38KXQEv5oxCwRxl4r5e3/a-modern-sleek-ai-music-generation-dashb-1772547717750-67b37221.png?_wi=3"
|
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3ARFZ7g38KXQEv5oxCwRxl4r5e3/a-modern-sleek-ai-music-generation-dashb-1772547717750-67b37221.png?_wi=3"
|
||||||
imageAlt="Beatcraft Platform"
|
imageAlt="Beatcraft Platform"
|
||||||
@@ -117,14 +128,23 @@ export default function AboutPage() {
|
|||||||
description="Beatcraft started as a passion project and has grown into a community of millions of creators worldwide."
|
description="Beatcraft started as a passion project and has grown into a community of millions of creators worldwide."
|
||||||
accordionItems={[
|
accordionItems={[
|
||||||
{
|
{
|
||||||
id: "1", title: "The Beginning", content:
|
id: "1",
|
||||||
"Founded in 2024 by a team of musicians, engineers, and designers frustrated by expensive, complicated music creation software. We decided to build something different - powerful, free, and intuitive."},
|
title: "The Beginning",
|
||||||
|
content:
|
||||||
|
"Founded in 2024 by a team of musicians, engineers, and designers frustrated by expensive, complicated music creation software. We decided to build something different - powerful, free, and intuitive.",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
id: "2", title: "Rapid Growth", content:
|
id: "2",
|
||||||
"In just 12 months, over 2 million songs have been created on Beatcraft. Our community spans 150+ countries. We've reached 500,000 active creators monthly. The response has been incredible."},
|
title: "Rapid Growth",
|
||||||
|
content:
|
||||||
|
"In just 12 months, over 2 million songs have been created on Beatcraft. Our community spans 150+ countries. We've reached 500,000 active creators monthly. The response has been incredible.",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
id: "3", title: "Our Future", content:
|
id: "3",
|
||||||
"We're expanding into new creative tools, building advanced API capabilities, and deepening our creator partnerships. The future of music and video production is collaborative, accessible, and creative. That's Beatcraft."},
|
title: "Our Future",
|
||||||
|
content:
|
||||||
|
"We're expanding into new creative tools, building advanced API capabilities, and deepening our creator partnerships. The future of music and video production is collaborative, accessible, and creative. That's Beatcraft.",
|
||||||
|
},
|
||||||
]}
|
]}
|
||||||
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3ARFZ7g38KXQEv5oxCwRxl4r5e3/a-dynamic-music-creation-workflow-visual-1772547718312-07587ebb.png?_wi=3"
|
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3ARFZ7g38KXQEv5oxCwRxl4r5e3/a-dynamic-music-creation-workflow-visual-1772547718312-07587ebb.png?_wi=3"
|
||||||
imageAlt="Platform Growth"
|
imageAlt="Platform Growth"
|
||||||
@@ -143,4 +163,4 @@ export default function AboutPage() {
|
|||||||
</div>
|
</div>
|
||||||
</ThemeProvider>
|
</ThemeProvider>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -6,7 +6,6 @@ import NavbarLayoutFloatingOverlay from "@/components/navbar/NavbarLayoutFloatin
|
|||||||
import HeroLogoBillboard from "@/components/sections/hero/HeroLogoBillboard";
|
import HeroLogoBillboard from "@/components/sections/hero/HeroLogoBillboard";
|
||||||
import FeatureCardTwentyOne from "@/components/sections/feature/FeatureCardTwentyOne";
|
import FeatureCardTwentyOne from "@/components/sections/feature/FeatureCardTwentyOne";
|
||||||
import FooterBaseReveal from "@/components/sections/footer/FooterBaseReveal";
|
import FooterBaseReveal from "@/components/sections/footer/FooterBaseReveal";
|
||||||
import LanguageSwitcher from "@/components/LanguageSwitcher";
|
|
||||||
|
|
||||||
export default function CreatePage() {
|
export default function CreatePage() {
|
||||||
const navItems = [
|
const navItems = [
|
||||||
@@ -18,7 +17,8 @@ export default function CreatePage() {
|
|||||||
|
|
||||||
const footerColumns = [
|
const footerColumns = [
|
||||||
{
|
{
|
||||||
title: "Product", items: [
|
title: "Product",
|
||||||
|
items: [
|
||||||
{ label: "Create Music", href: "/create" },
|
{ label: "Create Music", href: "/create" },
|
||||||
{ label: "Features", href: "/" },
|
{ label: "Features", href: "/" },
|
||||||
{ label: "Pricing", href: "/pricing" },
|
{ label: "Pricing", href: "/pricing" },
|
||||||
@@ -26,7 +26,8 @@ export default function CreatePage() {
|
|||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "Company", items: [
|
title: "Company",
|
||||||
|
items: [
|
||||||
{ label: "About Us", href: "/about" },
|
{ label: "About Us", href: "/about" },
|
||||||
{ label: "Blog", href: "#" },
|
{ label: "Blog", href: "#" },
|
||||||
{ label: "Careers", href: "#" },
|
{ label: "Careers", href: "#" },
|
||||||
@@ -34,7 +35,8 @@ export default function CreatePage() {
|
|||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "Legal", items: [
|
title: "Legal",
|
||||||
|
items: [
|
||||||
{ label: "Privacy Policy", href: "#" },
|
{ label: "Privacy Policy", href: "#" },
|
||||||
{ label: "Terms of Service", href: "#" },
|
{ label: "Terms of Service", href: "#" },
|
||||||
{ label: "License Agreement", href: "#" },
|
{ label: "License Agreement", href: "#" },
|
||||||
@@ -56,14 +58,14 @@ export default function CreatePage() {
|
|||||||
secondaryButtonStyle="solid"
|
secondaryButtonStyle="solid"
|
||||||
headingFontWeight="semibold"
|
headingFontWeight="semibold"
|
||||||
>
|
>
|
||||||
<LanguageSwitcher />
|
|
||||||
|
|
||||||
<div id="nav" data-section="nav">
|
<div id="nav" data-section="nav">
|
||||||
<NavbarLayoutFloatingOverlay
|
<NavbarLayoutFloatingOverlay
|
||||||
brandName="Beatcraft"
|
brandName="Beatcraft"
|
||||||
navItems={navItems}
|
navItems={navItems}
|
||||||
button={{
|
button={{
|
||||||
text: "Create Now", href: "/create"}}
|
text: "Create Now",
|
||||||
|
href: "/create",
|
||||||
|
}}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -91,14 +93,23 @@ export default function CreatePage() {
|
|||||||
description="Everything you need to create professional-quality music and videos without any experience."
|
description="Everything you need to create professional-quality music and videos without any experience."
|
||||||
accordionItems={[
|
accordionItems={[
|
||||||
{
|
{
|
||||||
id: "1", title: "Advanced Music Customization", content:
|
id: "1",
|
||||||
"Fine-tune every aspect of your music. Adjust tempo, key, instrumentation, and effects. Real-time preview lets you hear changes instantly. Mix multiple tracks together for complex compositions."},
|
title: "Advanced Music Customization",
|
||||||
|
content:
|
||||||
|
"Fine-tune every aspect of your music. Adjust tempo, key, instrumentation, and effects. Real-time preview lets you hear changes instantly. Mix multiple tracks together for complex compositions.",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
id: "2", title: "Video Synchronization", content:
|
id: "2",
|
||||||
"Our AI automatically synchronizes your music with dynamic visuals. Choose from multiple visual styles and effects. Add text, animations, and branding. Create social media content in seconds."},
|
title: "Video Synchronization",
|
||||||
|
content:
|
||||||
|
"Our AI automatically synchronizes your music with dynamic visuals. Choose from multiple visual styles and effects. Add text, animations, and branding. Create social media content in seconds.",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
id: "3", title: "Collaboration & Sharing", content:
|
id: "3",
|
||||||
"Save your projects and come back anytime. Share drafts with collaborators for feedback. Direct export to YouTube, TikTok, and other platforms. Collaborate in real-time with team members."},
|
title: "Collaboration & Sharing",
|
||||||
|
content:
|
||||||
|
"Save your projects and come back anytime. Share drafts with collaborators for feedback. Direct export to YouTube, TikTok, and other platforms. Collaborate in real-time with team members.",
|
||||||
|
},
|
||||||
]}
|
]}
|
||||||
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3ARFZ7g38KXQEv5oxCwRxl4r5e3/a-dynamic-music-creation-workflow-visual-1772547718312-07587ebb.png?_wi=2"
|
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3ARFZ7g38KXQEv5oxCwRxl4r5e3/a-dynamic-music-creation-workflow-visual-1772547718312-07587ebb.png?_wi=2"
|
||||||
imageAlt="Advanced Creation Tools"
|
imageAlt="Advanced Creation Tools"
|
||||||
@@ -117,14 +128,23 @@ export default function CreatePage() {
|
|||||||
description="Start with professionally designed templates that match your vision. Customize and create in minutes."
|
description="Start with professionally designed templates that match your vision. Customize and create in minutes."
|
||||||
accordionItems={[
|
accordionItems={[
|
||||||
{
|
{
|
||||||
id: "1", title: "Genre-Specific Templates", content:
|
id: "1",
|
||||||
"Choose from templates for pop, hip-hop, electronic, orchestral, ambient, and 45+ other genres. Each template comes with suggested customizations. Perfect for different moods and use cases."},
|
title: "Genre-Specific Templates",
|
||||||
|
content:
|
||||||
|
"Choose from templates for pop, hip-hop, electronic, orchestral, ambient, and 45+ other genres. Each template comes with suggested customizations. Perfect for different moods and use cases.",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
id: "2", title: "Platform-Optimized Formats", content:
|
id: "2",
|
||||||
"Templates optimized for YouTube, TikTok, Instagram Reels, and more. Automatic sizing and format adjustment. Built-in captions and effect recommendations for each platform."},
|
title: "Platform-Optimized Formats",
|
||||||
|
content:
|
||||||
|
"Templates optimized for YouTube, TikTok, Instagram Reels, and more. Automatic sizing and format adjustment. Built-in captions and effect recommendations for each platform.",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
id: "3", title: "Business & Professional Templates", content:
|
id: "3",
|
||||||
"Corporate background music, podcast intros, commercial jingles, and promotional tracks. Brand-safe music templates. Perfect for business and marketing content."},
|
title: "Business & Professional Templates",
|
||||||
|
content:
|
||||||
|
"Corporate background music, podcast intros, commercial jingles, and promotional tracks. Brand-safe music templates. Perfect for business and marketing content.",
|
||||||
|
},
|
||||||
]}
|
]}
|
||||||
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3ARFZ7g38KXQEv5oxCwRxl4r5e3/three-step-workflow-diagram-showing-1-te-1772547720090-d8cb9c4c.png?_wi=2"
|
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3ARFZ7g38KXQEv5oxCwRxl4r5e3/three-step-workflow-diagram-showing-1-te-1772547720090-d8cb9c4c.png?_wi=2"
|
||||||
imageAlt="Template Library"
|
imageAlt="Template Library"
|
||||||
@@ -143,4 +163,4 @@ export default function CreatePage() {
|
|||||||
</div>
|
</div>
|
||||||
</ThemeProvider>
|
</ThemeProvider>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -10,8 +10,7 @@ import TestimonialCardTen from "@/components/sections/testimonial/TestimonialCar
|
|||||||
import MetricCardEleven from "@/components/sections/metrics/MetricCardEleven";
|
import MetricCardEleven from "@/components/sections/metrics/MetricCardEleven";
|
||||||
import FaqSplitMedia from "@/components/sections/faq/FaqSplitMedia";
|
import FaqSplitMedia from "@/components/sections/faq/FaqSplitMedia";
|
||||||
import FooterBaseReveal from "@/components/sections/footer/FooterBaseReveal";
|
import FooterBaseReveal from "@/components/sections/footer/FooterBaseReveal";
|
||||||
import { Sparkles, Zap, Award, Globe } from "lucide-react";
|
import { Sparkles, Zap, Award } from "lucide-react";
|
||||||
import LanguageSwitcher from "@/components/LanguageSwitcher";
|
|
||||||
|
|
||||||
export default function HomePage() {
|
export default function HomePage() {
|
||||||
const navItems = [
|
const navItems = [
|
||||||
@@ -61,8 +60,6 @@ export default function HomePage() {
|
|||||||
secondaryButtonStyle="solid"
|
secondaryButtonStyle="solid"
|
||||||
headingFontWeight="semibold"
|
headingFontWeight="semibold"
|
||||||
>
|
>
|
||||||
<LanguageSwitcher />
|
|
||||||
|
|
||||||
<div id="nav" data-section="nav">
|
<div id="nav" data-section="nav">
|
||||||
<NavbarLayoutFloatingOverlay
|
<NavbarLayoutFloatingOverlay
|
||||||
brandName="Beatcraft"
|
brandName="Beatcraft"
|
||||||
@@ -77,7 +74,7 @@ export default function HomePage() {
|
|||||||
logoText="Beatcraft"
|
logoText="Beatcraft"
|
||||||
description="Create stunning AI-generated music from 10 seconds to 3.5 minutes on any theme. Then generate professional music videos instantly, all completely free."
|
description="Create stunning AI-generated music from 10 seconds to 3.5 minutes on any theme. Then generate professional music videos instantly, all completely free."
|
||||||
buttons={[
|
buttons={[
|
||||||
{ text: "Start Creating", href: "/create" },
|
{ text: "Create Free Music Now", href: "/create" },
|
||||||
{ text: "Watch Demo", href: "#features" },
|
{ text: "Watch Demo", href: "#features" },
|
||||||
]}
|
]}
|
||||||
background={{ variant: "sparkles-gradient" }}
|
background={{ variant: "sparkles-gradient" }}
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import NavbarLayoutFloatingOverlay from "@/components/navbar/NavbarLayoutFloatin
|
|||||||
import PricingCardTwo from "@/components/sections/pricing/PricingCardTwo";
|
import PricingCardTwo from "@/components/sections/pricing/PricingCardTwo";
|
||||||
import FaqSplitMedia from "@/components/sections/faq/FaqSplitMedia";
|
import FaqSplitMedia from "@/components/sections/faq/FaqSplitMedia";
|
||||||
import FooterBaseReveal from "@/components/sections/footer/FooterBaseReveal";
|
import FooterBaseReveal from "@/components/sections/footer/FooterBaseReveal";
|
||||||
import LanguageSwitcher from "@/components/LanguageSwitcher";
|
|
||||||
import { Sparkles, Zap, Award } from "lucide-react";
|
import { Sparkles, Zap, Award } from "lucide-react";
|
||||||
|
|
||||||
export default function PricingPage() {
|
export default function PricingPage() {
|
||||||
@@ -19,7 +18,8 @@ export default function PricingPage() {
|
|||||||
|
|
||||||
const footerColumns = [
|
const footerColumns = [
|
||||||
{
|
{
|
||||||
title: "Product", items: [
|
title: "Product",
|
||||||
|
items: [
|
||||||
{ label: "Create Music", href: "/create" },
|
{ label: "Create Music", href: "/create" },
|
||||||
{ label: "Features", href: "/" },
|
{ label: "Features", href: "/" },
|
||||||
{ label: "Pricing", href: "/pricing" },
|
{ label: "Pricing", href: "/pricing" },
|
||||||
@@ -27,7 +27,8 @@ export default function PricingPage() {
|
|||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "Company", items: [
|
title: "Company",
|
||||||
|
items: [
|
||||||
{ label: "About Us", href: "/about" },
|
{ label: "About Us", href: "/about" },
|
||||||
{ label: "Blog", href: "#" },
|
{ label: "Blog", href: "#" },
|
||||||
{ label: "Careers", href: "#" },
|
{ label: "Careers", href: "#" },
|
||||||
@@ -35,7 +36,8 @@ export default function PricingPage() {
|
|||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "Legal", items: [
|
title: "Legal",
|
||||||
|
items: [
|
||||||
{ label: "Privacy Policy", href: "#" },
|
{ label: "Privacy Policy", href: "#" },
|
||||||
{ label: "Terms of Service", href: "#" },
|
{ label: "Terms of Service", href: "#" },
|
||||||
{ label: "License Agreement", href: "#" },
|
{ label: "License Agreement", href: "#" },
|
||||||
@@ -57,14 +59,14 @@ export default function PricingPage() {
|
|||||||
secondaryButtonStyle="solid"
|
secondaryButtonStyle="solid"
|
||||||
headingFontWeight="semibold"
|
headingFontWeight="semibold"
|
||||||
>
|
>
|
||||||
<LanguageSwitcher />
|
|
||||||
|
|
||||||
<div id="nav" data-section="nav">
|
<div id="nav" data-section="nav">
|
||||||
<NavbarLayoutFloatingOverlay
|
<NavbarLayoutFloatingOverlay
|
||||||
brandName="Beatcraft"
|
brandName="Beatcraft"
|
||||||
navItems={navItems}
|
navItems={navItems}
|
||||||
button={{
|
button={{
|
||||||
text: "Create Now", href: "/create"}}
|
text: "Create Now",
|
||||||
|
href: "/create",
|
||||||
|
}}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -76,31 +78,61 @@ export default function PricingPage() {
|
|||||||
tagAnimation="blur-reveal"
|
tagAnimation="blur-reveal"
|
||||||
plans={[
|
plans={[
|
||||||
{
|
{
|
||||||
id: "free", badge: "Free Forever", badgeIcon: Sparkles,
|
id: "free",
|
||||||
price: "$0", subtitle: "Perfect for experimenting", buttons: [
|
badge: "Free Forever",
|
||||||
|
badgeIcon: Sparkles,
|
||||||
|
price: "$0",
|
||||||
|
subtitle: "Perfect for experimenting",
|
||||||
|
buttons: [
|
||||||
{ text: "Get Started", href: "/create" },
|
{ text: "Get Started", href: "/create" },
|
||||||
{ text: "Learn More", href: "#" },
|
{ text: "Learn More", href: "#" },
|
||||||
],
|
],
|
||||||
features: [
|
features: [
|
||||||
"Unlimited music generation", "Unlimited video generation", "All themes and genres", "10 seconds to 3.5 minutes", "Standard quality export", "Personal use license"],
|
"Unlimited music generation",
|
||||||
|
"Unlimited video generation",
|
||||||
|
"All themes and genres",
|
||||||
|
"10 seconds to 3.5 minutes",
|
||||||
|
"Standard quality export",
|
||||||
|
"Personal use license",
|
||||||
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "pro", badge: "Pro Power", badgeIcon: Zap,
|
id: "pro",
|
||||||
price: "$9.99", subtitle: "For serious creators", buttons: [
|
badge: "Pro Power",
|
||||||
|
badgeIcon: Zap,
|
||||||
|
price: "$9.99",
|
||||||
|
subtitle: "For serious creators",
|
||||||
|
buttons: [
|
||||||
{ text: "Start Pro Trial", href: "/create" },
|
{ text: "Start Pro Trial", href: "/create" },
|
||||||
{ text: "Contact Sales", href: "#" },
|
{ text: "Contact Sales", href: "#" },
|
||||||
],
|
],
|
||||||
features: [
|
features: [
|
||||||
"Everything in Free", "4K video quality", "Commercial licenses", "Priority processing", "Advanced customization", "Batch generation"],
|
"Everything in Free",
|
||||||
|
"4K video quality",
|
||||||
|
"Commercial licenses",
|
||||||
|
"Priority processing",
|
||||||
|
"Advanced customization",
|
||||||
|
"Batch generation",
|
||||||
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: "studio", badge: "Studio Edition", badgeIcon: Award,
|
id: "studio",
|
||||||
price: "$29.99", subtitle: "For professionals", buttons: [
|
badge: "Studio Edition",
|
||||||
|
badgeIcon: Award,
|
||||||
|
price: "$29.99",
|
||||||
|
subtitle: "For professionals",
|
||||||
|
buttons: [
|
||||||
{ text: "Start Studio", href: "/create" },
|
{ text: "Start Studio", href: "/create" },
|
||||||
{ text: "Schedule Demo", href: "#" },
|
{ text: "Schedule Demo", href: "#" },
|
||||||
],
|
],
|
||||||
features: [
|
features: [
|
||||||
"Everything in Pro", "8K video quality", "API access", "White-label options", "Dedicated support", "Advanced AI models"],
|
"Everything in Pro",
|
||||||
|
"8K video quality",
|
||||||
|
"API access",
|
||||||
|
"White-label options",
|
||||||
|
"Dedicated support",
|
||||||
|
"Advanced AI models",
|
||||||
|
],
|
||||||
},
|
},
|
||||||
]}
|
]}
|
||||||
textboxLayout="default"
|
textboxLayout="default"
|
||||||
@@ -118,23 +150,41 @@ export default function PricingPage() {
|
|||||||
tagAnimation="blur-reveal"
|
tagAnimation="blur-reveal"
|
||||||
faqs={[
|
faqs={[
|
||||||
{
|
{
|
||||||
id: "1", title: "Can I upgrade or downgrade anytime?", content:
|
id: "1",
|
||||||
"Yes! Switch between plans anytime. Upgrades take effect immediately. Downgrades apply to your next billing cycle. No cancellation fees or long-term commitments required."},
|
title: "Can I upgrade or downgrade anytime?",
|
||||||
|
content:
|
||||||
|
"Yes! Switch between plans anytime. Upgrades take effect immediately. Downgrades apply to your next billing cycle. No cancellation fees or long-term commitments required.",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
id: "2", title: "What payment methods do you accept?", content:
|
id: "2",
|
||||||
"We accept all major credit cards, PayPal, Google Pay, and Apple Pay. Enterprise customers can use invoicing. All payments are secure and encrypted."},
|
title: "What payment methods do you accept?",
|
||||||
|
content:
|
||||||
|
"We accept all major credit cards, PayPal, Google Pay, and Apple Pay. Enterprise customers can use invoicing. All payments are secure and encrypted.",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
id: "3", title: "Is there a student or nonprofit discount?", content:
|
id: "3",
|
||||||
"Yes! Students get 50% off Pro plans with valid student ID. Nonprofits qualify for free Studio plans. Contact our team for verification and setup."},
|
title: "Is there a student or nonprofit discount?",
|
||||||
|
content:
|
||||||
|
"Yes! Students get 50% off Pro plans with valid student ID. Nonprofits qualify for free Studio plans. Contact our team for verification and setup.",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
id: "4", title: "What happens to my projects if I cancel?", content:
|
id: "4",
|
||||||
"Your projects stay yours forever. You can still download and export them. When you resubscribe, all your work is available. No data loss or forced deletions."},
|
title: "What happens to my projects if I cancel?",
|
||||||
|
content:
|
||||||
|
"Your projects stay yours forever. You can still download and export them. When you resubscribe, all your work is available. No data loss or forced deletions.",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
id: "5", title: "Do you offer custom enterprise plans?", content:
|
id: "5",
|
||||||
"Absolutely! We offer custom pricing for teams and enterprises. Bulk licensing, dedicated support, and API access available. Contact sales for a quote."},
|
title: "Do you offer custom enterprise plans?",
|
||||||
|
content:
|
||||||
|
"Absolutely! We offer custom pricing for teams and enterprises. Bulk licensing, dedicated support, and API access available. Contact sales for a quote.",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
id: "6", title: "Is there a free trial for paid plans?", content:
|
id: "6",
|
||||||
"Yes! Try Pro or Studio for 7 days free. No credit card required. Full access to all paid features. Automatically downgrade to Free if you don't upgrade after trial."},
|
title: "Is there a free trial for paid plans?",
|
||||||
|
content:
|
||||||
|
"Yes! Try Pro or Studio for 7 days free. No credit card required. Full access to all paid features. Automatically downgrade to Free if you don't upgrade after trial.",
|
||||||
|
},
|
||||||
]}
|
]}
|
||||||
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3ARFZ7g38KXQEv5oxCwRxl4r5e3/a-friendly-modern-customer-support-scene-1772547717885-6d6da3ef.png?_wi=2"
|
imageSrc="https://webuild-dev.s3.eu-north-1.amazonaws.com/users/user_3ARFZ7g38KXQEv5oxCwRxl4r5e3/a-friendly-modern-customer-support-scene-1772547717885-6d6da3ef.png?_wi=2"
|
||||||
imageAlt="Billing Support"
|
imageAlt="Billing Support"
|
||||||
@@ -155,4 +205,4 @@ export default function PricingPage() {
|
|||||||
</div>
|
</div>
|
||||||
</ThemeProvider>
|
</ThemeProvider>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -1,87 +0,0 @@
|
|||||||
"use client";
|
|
||||||
|
|
||||||
import { useState, useEffect } from "react";
|
|
||||||
import { Globe } from "lucide-react";
|
|
||||||
|
|
||||||
interface Language {
|
|
||||||
code: string;
|
|
||||||
name: string;
|
|
||||||
flag: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
const LANGUAGES: Language[] = [
|
|
||||||
{ code: "en", name: "English", flag: "🇺🇸" },
|
|
||||||
{ code: "es", name: "Español", flag: "🇪🇸" },
|
|
||||||
{ code: "fr", name: "Français", flag: "🇫🇷" },
|
|
||||||
{ code: "de", name: "Deutsch", flag: "🇩🇪" },
|
|
||||||
{ code: "it", name: "Italiano", flag: "🇮🇹" },
|
|
||||||
{ code: "pt", name: "Português", flag: "🇵🇹" },
|
|
||||||
{ code: "ja", name: "日本語", flag: "🇯🇵" },
|
|
||||||
{ code: "zh", name: "中文", flag: "🇨🇳" },
|
|
||||||
{ code: "ko", name: "한국어", flag: "🇰🇷" },
|
|
||||||
];
|
|
||||||
|
|
||||||
export default function LanguageSwitcher() {
|
|
||||||
const [currentLanguage, setCurrentLanguage] = useState<string>("en");
|
|
||||||
const [isOpen, setIsOpen] = useState(false);
|
|
||||||
const [mounted, setMounted] = useState(false);
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
setMounted(true);
|
|
||||||
// Get stored language preference from localStorage
|
|
||||||
const stored = typeof window !== "undefined" ? localStorage.getItem("beatcraft-language") : null;
|
|
||||||
if (stored) {
|
|
||||||
setCurrentLanguage(stored);
|
|
||||||
document.documentElement.lang = stored;
|
|
||||||
}
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
const handleLanguageChange = (code: string) => {
|
|
||||||
setCurrentLanguage(code);
|
|
||||||
localStorage.setItem("beatcraft-language", code);
|
|
||||||
document.documentElement.lang = code;
|
|
||||||
setIsOpen(false);
|
|
||||||
// Dispatch custom event for components to listen to language changes
|
|
||||||
window.dispatchEvent(new CustomEvent("languageChange", { detail: { language: code } }));
|
|
||||||
};
|
|
||||||
|
|
||||||
const currentLang = LANGUAGES.find((lang) => lang.code === currentLanguage) || LANGUAGES[0];
|
|
||||||
|
|
||||||
if (!mounted) return null;
|
|
||||||
|
|
||||||
return (
|
|
||||||
<div className="fixed top-4 right-4 z-50">
|
|
||||||
<div className="relative">
|
|
||||||
<button
|
|
||||||
onClick={() => setIsOpen(!isOpen)}
|
|
||||||
className="flex items-center gap-2 px-3 py-2 rounded-lg bg-primary-cta/10 hover:bg-primary-cta/20 border border-primary-cta/20 transition-all duration-200"
|
|
||||||
aria-label="Change language"
|
|
||||||
>
|
|
||||||
<Globe size={18} className="text-primary-cta" />
|
|
||||||
<span className="text-sm font-medium text-foreground">{currentLang.flag}</span>
|
|
||||||
</button>
|
|
||||||
|
|
||||||
{isOpen && (
|
|
||||||
<div className="absolute top-full right-0 mt-2 bg-card border border-foreground/10 rounded-lg shadow-lg overflow-hidden min-w-48">
|
|
||||||
<div className="max-h-96 overflow-y-auto">
|
|
||||||
{LANGUAGES.map((lang) => (
|
|
||||||
<button
|
|
||||||
key={lang.code}
|
|
||||||
onClick={() => handleLanguageChange(lang.code)}
|
|
||||||
className={`w-full px-4 py-2 text-left flex items-center gap-3 transition-colors duration-150 ${
|
|
||||||
currentLanguage === lang.code
|
|
||||||
? "bg-primary-cta/20 text-primary-cta"
|
|
||||||
: "hover:bg-foreground/5 text-foreground"
|
|
||||||
}`}
|
|
||||||
>
|
|
||||||
<span className="text-lg">{lang.flag}</span>
|
|
||||||
<span className="text-sm font-medium">{lang.name}</span>
|
|
||||||
</button>
|
|
||||||
))}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
)}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user