LogoNEXTDEVKIT Docs

Footer Configuration

Configure website footer content and structure

NEXTDEVKIT provides a comprehensive footer configuration system that supports multiple link sections, newsletter signup, social media integration, and internationalization. The footer configuration is located in src/config/footer.ts.

The footer system supports multiple sections with different types of content:

export function getFooterData(): FooterData {
  const t = useTranslations("footer");
  const socialData = getSocialMediaData();

  return {
    newsletter: {
      title: t("newsletter.title"),
      description: t("newsletter.description"),
      inputPlaceholder: t("newsletter.inputPlaceholder"),
      submitAriaLabel: t("newsletter.submitAriaLabel"),
    },
    quickLinks: {
      title: t("quickLinks.title"),
      links: [
        { label: t("quickLinks.home"), href: "/#hero" },
        { label: t("quickLinks.features"), href: "/#feature-tabs" },
        { label: t("quickLinks.pricing"), href: "/pricing" },
        { label: t("quickLinks.testimonials"), href: "/#testimonials" },
        { label: t("quickLinks.faq"), href: "/#faq" },
      ],
    },
    resources: {
      title: t("resources.title"),
      links: [
        { label: t("resources.gettingStarted"), href: "/docs" },
        { label: t("resources.blog"), href: "/blog" },
        { label: t("resources.docs"), href: "/docs" },
        { label: t("resources.contact"), href: "/contact" },
      ],
    },
    social: socialData,
    copyright: t("copyright"),
    legalLinks: [
      { label: t("legal.privacy"), href: "/legal/privacy-policy" },
      { label: t("legal.terms"), href: "/legal/terms-of-service" },
    ],
  };
}

FooterData Structure

PropertyTypeDescription
newsletterNewsletterConfigNewsletter signup configuration
quickLinksLinkSectionQuick navigation links
resourcesLinkSectionResource and documentation links
socialSocialSectionSocial media integration
copyrightstringCopyright text
legalLinksLegalLink[]Legal pages links

NewsletterConfig Structure

PropertyTypeDescription
titlestringNewsletter section title
descriptionstringNewsletter description text
inputPlaceholderstringEmail input placeholder text
submitAriaLabelstringSubmit button accessibility label
PropertyTypeDescription
titlestringSection title
linksQuickLink[]Array of links in this section
PropertyTypeDescription
labelstringLink display text
hrefstringLink URL or path
PropertyTypeDescription
labelstringLegal link display text
hrefstringLegal page URL or path

📧 Newsletter Configuration

Configure the newsletter signup section:

newsletter: {
  title: t("newsletter.title"),
  description: t("newsletter.description"),
  inputPlaceholder: t("newsletter.inputPlaceholder"),
  submitAriaLabel: t("newsletter.submitAriaLabel"),
}

Newsletter Integration

The newsletter section integrates with your email provider:

// Newsletter form submission
const handleNewsletterSubmit = async (email: string) => {
  try {
    await subscribeToNewsletter(email);
    // Success handling
  } catch (error) {
    // Error handling
  }
};

Configure quick navigation links:

quickLinks: {
  title: t("quickLinks.title"),
  links: [
    { label: t("quickLinks.home"), href: "/#hero" },
    { label: t("quickLinks.features"), href: "/#feature-tabs" },
    { label: t("quickLinks.pricing"), href: "/pricing" },
    { label: t("quickLinks.testimonials"), href: "/#testimonials" },
    { label: t("quickLinks.faq"), href: "/#faq" },
  ],
}

Resources Section

Configure resource and documentation links:

resources: {
  title: t("resources.title"),
  links: [
    { label: t("resources.gettingStarted"), href: "/docs" },
    { label: t("resources.blog"), href: "/blog" },
    { label: t("resources.docs"), href: "/docs" },
    { label: t("resources.contact"), href: "/contact" },
  ],
}

🌐 Social Media Integration

The footer integrates with the social media configuration:

// Social media integration
const socialData = getSocialMediaData();

// Used in footer
social: socialData,

This pulls social media links from the src/config/social-media.tsx configuration.

Configure legal page links:

legalLinks: [
  { label: t("legal.privacy"), href: "/legal/privacy-policy" },
  { label: t("legal.terms"), href: "/legal/terms-of-service" },
]

🌍 Internationalization Support

All footer content supports internationalization:

// Footer translations in messages/en.json
{
  "footer": {
    "newsletter": {
      "title": "Stay Updated",
      "description": "Get the latest updates and news about NEXTDEVKIT",
      "inputPlaceholder": "Enter your email",
      "submitAriaLabel": "Subscribe to newsletter"
    },
    "quickLinks": {
      "title": "Quick Links",
      "home": "Home",
      "features": "Features",
      "pricing": "Pricing",
      "testimonials": "Testimonials",
      "faq": "FAQ"
    },
    "resources": {
      "title": "Resources",
      "gettingStarted": "Getting Started",
      "blog": "Blog",
      "docs": "Documentation",
      "contact": "Contact"
    },
    "social": {
      "title": "Follow Us"
    },
    "copyright": "© 2024 NEXTDEVKIT. All rights reserved.",
    "legal": {
      "privacy": "Privacy Policy",
      "terms": "Terms of Service"
    }
  }
}