Skip to content

Latest commit

 

History

82 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Beatra logo

Beatra Website

Official multi-language website for Beatra, a free Discord music bot with premium plans, commands, partners, and legal pages.

Website · Invite Bot · Support Server · Vote

Next.js React Once UI License: MIT Build


Overview

This repository contains the marketing and product website for Beatra. The site is built with the Next.js App Router, Once UI System, dictionary-based internationalization, static generation, and a responsive layout for desktop and mobile.

The website includes:

  • Home page with product highlights, usage-focused sections, and premium callouts
  • Commands page for Beatra slash commands
  • Premium page with Personal, Server Premium, and Custom Bot plan tabs
  • Partners page for Beatra partner products
  • Terms of Service and Privacy Policy pages
  • Locale-aware routing under /<locale>
  • Mobile header menu, language switcher, and live style customizer

Tech Stack

Area Technology
Framework Next.js 15 App Router
UI runtime React 18
Design system Once UI System
Styling Once UI tokens, Sass, and scoped custom CSS
Icons Once UI icons plus react-icons
i18n Custom dictionaries and middleware routing
Images Static assets in public/img
Build Static generation through next build

Features

  • Seven languages included: English, Turkish, Spanish, Portuguese, French, German, and Russian.
  • Locale routing: /en, /tr, /es, /pt, /fr, /de, and /ru are generated at build time.
  • Automatic locale redirect: / redirects to the best matching supported language using the visitor's browser language or saved locale cookie.
  • Premium plan tabs: Personal, Server Premium, and Custom Bot plans are translated and responsive.
  • Responsive header: Desktop navigation, mobile menu, invite button, language selector, and style customizer.
  • Live style customizer: Visitors can preview theme settings from the header.
  • SEO-ready structure: Locale pages, metadata support, Open Graph image assets, favicon, and app icons.
  • Production build friendly: Sass dependency warnings from Once UI are silenced in next.config.js.

Pages

Route Description
/<locale> Home page
/<locale>/commands Command list
/<locale>/premium Premium plans
/<locale>/partners Partner products
/<locale>/tos Terms of Service
/<locale>/privacy Privacy Policy

Example localized URLs:

  • https://beatra.app/en
  • https://beatra.app/tr/premium
  • https://beatra.app/de/commands

Getting Started

Requirements

  • Node.js 18.18 or newer
  • npm

Installation

git clone https://github.com/umutxyp/Discord-Bot-Website.git
cd Discord-Bot-Website
npm install

Development Server

npm run dev

Open http://localhost:3000. The middleware redirects / to a supported locale.

Production Build

npm run build
npm run start

The production server runs at http://localhost:3000 by default.

Project Structure

.
├── public/
│   ├── favicon.ico
│   └── img/
│       ├── logo-192.png
│       ├── logo.png
│       ├── og-image.png
│       └── products/
│           ├── beatra.png
│           ├── codeshare.png
│           ├── mcstat.png
│           └── sylon.png
├── src/
│   ├── app/
│   │   └── [locale]/
│   │       ├── commands/page.jsx
│   │       ├── partners/page.jsx
│   │       ├── premium/page.jsx
│   │       ├── privacy/page.jsx
│   │       ├── tos/page.jsx
│   │       ├── layout.jsx
│   │       ├── not-found.jsx
│   │       └── page.jsx
│   ├── components/
│   │   ├── Footer.jsx
│   │   ├── Header.jsx
│   │   ├── LanguageSwitcher.jsx
│   │   ├── PremiumTabs.jsx
│   │   ├── Providers.jsx
│   │   └── StyleCustomizer.jsx
│   ├── i18n/
│   │   ├── config.js
│   │   ├── getDictionary.js
│   │   └── dictionaries/
│   ├── resources/
│   │   ├── constants.js
│   │   ├── custom.css
│   │   ├── icons.js
│   │   ├── once-ui.config.js
│   │   └── seo.js
│   └── middleware.js
├── next.config.js
├── package.json
└── README.md

Internationalization

Supported locale codes are defined in src/i18n/config.js:

export const locales = ["en", "tr", "es", "pt", "fr", "de", "ru"];
export const defaultLocale = "en";

Translation files live in src/i18n/dictionaries. Each page reads copy from the active locale dictionary.

To add a new language:

  1. Copy src/i18n/dictionaries/en.json.
  2. Rename it to the new locale code, for example it.json.
  3. Translate every string in the new file.
  4. Add the locale code and display name to src/i18n/config.js.
  5. Register the dictionary loader in src/i18n/getDictionary.js.

Customization

Links and Socials

Main external links are stored in src/resources/constants.js:

  • Discord invite URL
  • Support server URL
  • Premium URL
  • Vote URL
  • GitHub URL
  • YouTube, X, and Instagram URLs

Theme

Theme defaults live in src/resources/once-ui.config.js. The global CSS overrides and responsive fixes live in src/resources/custom.css.

The header style customizer uses Once UI's StylePanel, so visitors can preview visual settings directly on the site.

Premium Plans

Premium plan content is translated inside each dictionary under:

premium.categories

The plan tabs are rendered by src/components/PremiumTabs.jsx. Current categories are:

  • Personal
  • Server Premium
  • Custom Bot

Header and Footer

Assets

Place public images under public/img. Product images are stored in public/img/products.

Recommended assets:

  • public/img/logo-192.png
  • public/img/logo.png
  • public/img/og-image.png
  • public/img/apple-touch-icon.png
  • public/favicon.ico

Deployment

This is a standard Next.js app and can be deployed to Vercel, a Node.js host, or any platform that supports Next.js 15.

Typical Vercel settings:

Setting Value
Install command npm install
Build command npm run build
Output Next.js default

No environment variables are required for the current public website.

Useful Commands

npm run dev      # Start local development
npm run build    # Create production build
npm run start    # Serve production build

Contributing

Issues and pull requests are welcome.

Before opening a pull request:

  1. Keep translations synchronized across all dictionary files.
  2. Make sure responsive layouts still work on mobile and desktop.
  3. Run a production build.
npm run build

License

This project is licensed under the MIT License. See LICENSE for details.


Built by @umutxyp · Part of the Codeshare product family

About

It belongs to the website theme of the Beatra discord bot with a magnificent design made with react. An eye-pleasing website with advanced and beautiful tailwind designs.

Topics

Resources

Stars

323 stars

Watchers

3 watching

Forks

Contributors

Languages