Visit APIToGo on LinkedIn
  • Documentation
  • Components
  • Themes
Quickstart
CLI
MCP
Configuration
Look and feel
    Colors & ThemeFont & TypographyLanding PageFooter
Writing
Guides
Deployment
powered by apitogo
Look and feel

Footer

The footer is a React file in your folder, apitogo/portal/footer/Footer.tsx, named by portal.footer in apitogo.config.json:

apitogo.config.json
{ "portal": { "footer": "apitogo/portal/footer/Footer.tsx" } }

It shows under the home page, the docs, the API reference and the pricing page. It is not shown on the console's pages (/account, /login, /signup).

apitogo add portal writes a starter footer and the setting. Remove portal.footer to have no footer.

The starter footer

The starter uses FooterSection from @lukoweb/apitogo-module-landing, so it matches the home page. Change anything in it:

apitogo/portal/footer/Footer.tsx
import { FooterSection } from "@lukoweb/apitogo-module-landing"; const NAME = "Books API"; export default function Footer() { return ( <FooterSection footer={{ brand: { name: NAME, tagline: "Documentation, API keys and plans for the Books API." }, columns: [ { title: "Developers", links: [ { label: "Documentation", href: "/introduction" }, { label: "API Reference", href: "/api" }, { label: "Pricing", href: "/pricing" }, ], }, { title: "Company", links: [{ label: "Contact", href: "mailto:hello@example.com" }], }, ], social: [{ icon: "github", href: "https://github.com/example", label: "GitHub" }], copyright: `© ${new Date().getFullYear()} ${NAME}`, }} /> ); }

FooterSection takes:

FieldWhat it is
brandname, an optional tagline, and an optional logoSrc (an image address)
columnsLink columns: a title and links of { label, href }
socialIcon links: icon (github, x), href and an optional label
copyrightThe last line; by default © <year> <name>. All rights reserved.

Your own footer

The file can render anything: it is a React component, and its default export is the footer. Use the theme's classes (bg-background, text-muted-foreground, border-t) so it follows light and dark mode:

apitogo/portal/footer/Footer.tsx
export default function Footer() { return ( <footer className="border-t bg-background py-8 text-center text-sm text-muted-foreground"> © {new Date().getFullYear()} Books API · <a href="/pricing">Pricing</a> </footer> ); }

apitogo check reports a portal.footer that names a file that does not exist.

Last modified on November 8, 2026
Landing PageWriting
On this page
  • The starter footer
  • Your own footer
JSON
React
React