const { themes } = require('prism-react-renderer');
module.exports = {
title: 'The Official Front End Interview Handbook 2025',
tagline:
'Front end interview preparation resources for busy engineers – quiz questions, JavaScript coding questions, algorithms questions, front end system design questions and more. Updated for 2025!',
url: 'https://www.frontendinterviewhandbook.com',
baseUrl: '/',
trailingSlash: false,
favicon: 'img/favicon.png',
organizationName: 'yangshun',
projectName: 'front-end-interview-handbook',
onBrokenLinks: 'ignore',
themeConfig: {
announcementBar: {
id: 'gfe', // Increment on change
content: `We are now part of GreatFrontEnd, a front end interview preparation platform created by ex-Meta and Google Engineers. Get 20% off today!`,
isCloseable: false,
},
prism: {
theme: themes.github,
darkTheme: themes.dracula,
},
navbar: {
title: 'Front End Interview Handbook',
logo: {
alt: '',
src: 'img/logo.svg',
},
items: [
{ to: 'introduction', label: 'Start reading', position: 'left' },
{
type: 'dropdown',
position: 'left',
label: 'Practice',
items: [
{
label: 'Coding Questions',
href: 'https://www.greatfrontend.com/questions?utm_source=frontendinterviewhandbook&utm_medium=referral&utm_content=banner&gnrs=frontendinterviewhandbook',
},
{
label: 'System Design',
href: 'https://www.greatfrontend.com/questions/system-design?utm_source=frontendinterviewhandbook&utm_medium=referral&utm_content=banner&gnrs=frontendinterviewhandbook',
},
{
label: 'Quiz Questions',
href: 'https://www.greatfrontend.com/questions/quiz?utm_source=frontendinterviewhandbook&utm_medium=referral&utm_content=banner&gnrs=frontendinterviewhandbook',
},
],
},
{
to: 'front-end-system-design',
label: 'System design',
position: 'left',
},
{ to: 'blog', label: 'Blog', position: 'left' },
{
type: 'localeDropdown',
position: 'right',
},
{
href: 'https://github.com/yangshun/front-end-interview-handbook',
position: 'right',
className: 'navbar-icon navbar-icon-github',
'aria-label': 'GitHub repository',
html: ``,
},
{
href: 'https://discord.com/invite/NDFx8f6P6B',
position: 'right',
className: 'navbar-icon navbar-icon-discord',
'aria-label': 'Discord channel',
html: ``,
},
{
href: 'https://x.com/greatfrontend',
position: 'right',
className: 'navbar-icon navbar-icon-twitter',
'aria-label': 'Twitter page',
html: ``,
},
],
},
footer: {
style: 'dark',
copyright: `Copyright © ${new Date().getFullYear()} Yangshun Tay and GreatFrontEnd`,
links: [
{
title: 'General',
items: [
{
label: 'Get started',
href: '/introduction/',
},
{
label: 'Trivia questions',
href: '/trivia/',
},
{
label: 'Company questions',
href: '/company-interview-questions/',
},
{
label: 'Blog',
href: '/blog/',
},
],
},
{
title: 'Coding',
items: [
{
label: 'Algorithms',
href: '/coding/algorithms/',
},
{
label: 'JavaScript utility functions',
href: '/coding/javascript-utility-function/',
},
{
label: 'User interfaces',
href: '/coding/build-front-end-user-interfaces/',
},
],
},
{
title: 'System design',
items: [
{
label: 'System design overview',
href: '/front-end-system-design/',
},
{
label: 'User interface components',
href: '/front-end-system-design/ui-components/',
},
{
label: 'Applications',
href: '/front-end-system-design/applications/',
},
],
},
{
title: 'More',
items: [
{
label: 'GreatFrontEnd',
href: 'https://www.greatfrontend.com?utm_source=frontendinterviewhandbook&utm_medium=referral&utm_content=banner&gnrs=frontendinterviewhandbook',
},
{
label: 'GitHub',
href: 'https://github.com/yangshun/front-end-interview-handbook',
},
{
label: 'X',
href: 'https://x.com/greatfrontend',
},
{
label: 'Discord',
href: 'https://discord.com/invite/NDFx8f6P6B',
},
{
label: 'Contact us',
href: 'mailto:contact@greatfrontend.com',
},
{
label: 'Tech Interview Handbook',
href: 'https://www.techinterviewhandbook.org',
},
],
},
],
},
algolia: {
appId: '21T5PEFGI7',
apiKey: '10d7777b44bc7e0495cc00e860918b03',
indexName: 'frontendinterviewhandbook',
},
docs: {
sidebar: {
hideable: true,
},
},
},
presets: [
[
'@docusaurus/preset-classic',
{
docs: {
path: '../contents',
routeBasePath: '/',
sidebarPath: require.resolve('./sidebars.js'),
editUrl:
'https://github.com/yangshun/front-end-interview-handbook/edit/main/contents/',
showLastUpdateAuthor: true,
showLastUpdateTime: true,
},
theme: {
customCss: require.resolve('./src/css/custom.css'),
},
gtag: {
trackingID: 'G-D9B6CHX36V',
},
},
],
],
plugins: [
[
'@docusaurus/plugin-google-gtag',
{
id: 'universal-analytics',
trackingID: 'UA-44622716-3',
anonymizeIP: true,
},
],
[
'@docusaurus/plugin-client-redirects',
{
redirects: [
{
to: '/css-questions',
from: '/en/css-questions',
},
{
to: '/html-questions',
from: '/en/html-questions',
},
{
to: '/javascript-questions',
from: '/en/javascript-questions',
},
],
},
],
],
scripts: [],
i18n: {
defaultLocale: 'en',
locales: [
'en',
'zh-CN',
'es',
'ja-JP',
'kr',
'pl',
'pt-BR',
'ru',
'tl',
'bn',
],
localeConfigs: {
'zh-CN': {
htmlLang: 'zh-CN',
label: '简体中文',
direction: 'ltr',
},
es: {
label: 'Español',
direction: 'ltr',
},
'ja-JP': {
label: '日本語',
direction: 'ltr',
},
kr: {
label: '한국어',
direction: 'ltr',
},
pl: {
label: 'Polski',
direction: 'ltr',
},
'pt-BR': {
htmlLang: 'pt-BR',
label: 'Português',
direction: 'ltr',
},
ru: {
label: 'Русский',
direction: 'ltr',
},
tl: {
label: 'Tagalog',
direction: 'ltr',
},
bn: {
label: 'বাংলা',
direction: 'ltr',
},
},
},
};