MCPcopy Index your code
hub / github.com/braviaprime/braviaprime.com

github.com/braviaprime/braviaprime.com @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
746 symbols 2,084 edges 394 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

  <img alt="Project Cover" src="https://github.com/braviaprime/braviaprime.com/raw/main/public/images/light-header.png">

bravía.com

Framework Language License

Welcome to my personal blog and portfolio website! This repository contains a modern Next.js application where I share my thoughts, projects, and insights.

Features

Core Technologies

  • Next.js 16 with App Router
  • TypeScript with strict configuration
  • Tailwind CSS for styling
  • MDX for content
  • Drizzle ORM
  • I18n for internationalization support

UI/UX

  • Base UI for accessible UI components
  • Responsive design
  • Light/Dark mode
  • Image zoom in blog posts
  • Shiki for code syntax highlighting
  • Motion for animations
  • Table of contents for blog posts

Blog Features

  • Comment system
  • Like functionality
  • Post view counter
  • Blog post search
  • RSS feed
  • Sitemap

Performance & SEO

  • Lighthouse score of nearly 100
  • SEO optimized with meta tags and JSON-LD
  • Dynamic open graph images using next/og

Development Experience

  • Vitest for unit/integration testing
  • Playwright for E2E testing
  • ESLint configuration
  • Prettier code formatting
  • Lefthook
  • Conventional commit

Authentication & Data

  • Better Auth
  • Redis caching
  • Upstash for API rate limiting
  • t3-env for environment variables
  • Umami Analytics

Email Templates

Comment Notification

Comment notification template

Reply Notification

Reply notification template

Getting Started

Prerequisites

Project Structure

bravía.com/
├── public/           # Static assets (images, fonts, videos)
├── src/
│   ├── app/          # Next.js app router pages
│   ├── components/   # React components
│   ├── constants/    # Application constants
│   ├── content/      # MDX blog posts and content
│   ├── contexts/     # React contexts
│   ├── db/           # Database schema and migrations
│   ├── emails/       # Email templates
│   ├── hooks/        # Custom React hooks
│   ├── i18n/         # Internationalization
│   ├── lib/          # Utility libraries
│   ├── mdx-plugins   # Custom Rehype and Remark plugins
│   ├── orpc/         # oRPC API routes
│   ├── styles/       # Global styles
│   ├── tests/        # Unit and E2E tests
│   └── utils/        # Utility functions
├── docker-compose.yml
└── package.json

Development

To run this project locally, you need to set up the development environment.

Setup

  1. Clone the repository:
git clone https://github.com/braviadev/bravía.com
  1. Navigate to the project directory:
cd bravía.com
  1. Install dependencies using bun:
bun install

Environment Setup

  1. Copy .env.example to .env.local and update the environment variables as needed.
cp .env.example .env.local
  1. Run required services using Docker:
docker compose up -d
  1. Run the database migrations:
bun db:migrate
  1. Seed the database:
bun db:seed
  1. Run the app:
bun dev          # Run the development server
# or
bun email:dev    # Run the email preview server separately

The services will be available at the following URLs:

Service URL
App localhost:3000
React Email localhost:3001
Cosmos localhost:3002
Database localhost:5432
Redis localhost:6379
Redis serverless localhost:8079

Available Scripts

# Development
bun dev               # Start development server
bun email:dev         # Run email preview server
bun cosmos            # Start Cosmos component playground

# Build & Production
bun run build         # Build for production (includes cosmos:export)
bun start             # Start production server
bun analyze           # Analyze bundle size

# Quality & Testing
bun check             # Run all quality checks (lint, typecheck, format, etc.)
bun lint              # Run ESLint
bun typecheck         # Run TypeScript type checking
bun format            # Format code with Prettier
bun knip              # Find unused dependencies/exports
bun test:unit         # Run unit tests
bun test:e2e          # Run Playwright E2E tests

# Database
bun db:migrate        # Run database migrations
bun db:seed           # Seed the database
bun db:push           # Push schema changes directly to DB
bun db:reset          # Reset database
bun db:studio         # Open Drizzle Studio

Credits

This project has been made possible thanks to the wonderful open-source community. Special thanks to:

This project also uses/adapts the following open-source projects:

The following projects were referenced for inspiration:

Author

Donation

If you find this project helpful, consider supporting me by sponsoring the project.

License

This project is open source and available under the MIT License.


Made with ❤️ and passion in Nigeria

Extension points exported contracts — how you extend this code

AppConfig (Interface)
(no doc)
global.d.ts
LocalComment (Interface)
(no doc)
src/components/comment-section/comment-reply.tsx
CSSProperties (Interface)
(no doc)
global.d.ts
Data (Interface)
(no doc)
global.d.ts

Core symbols most depended-on inside this repo

cn
called by 177
src/utils/cn.ts
render
called by 32
src/utils/render.tsx
getLocalizedPath
called by 23
src/utils/get-localized-path.ts
getBaseUrl
called by 16
src/utils/get-base-url.ts
createMetadata
called by 13
src/lib/metadata.ts
getNumberFlow
called by 12
src/tests/e2e/utils/number-flow.ts
setRangeText
called by 12
src/hooks/use-comment-editor.ts
createdAt
called by 10
src/db/schemas/shared.schema.ts

Shape

Function 739
Interface 4
Class 2
Method 1

Languages

TypeScript100%

Modules by API surface

src/components/ui/sidebar.tsx25 symbols
src/components/ui/dropdown-menu.tsx15 symbols
src/hooks/use-comment-editor.ts14 symbols
src/components/ui/alert-dialog.tsx12 symbols
src/components/command-menu.tsx11 symbols
src/components/ui/sheet.tsx10 symbols
src/components/ui/kbd.fixture.tsx10 symbols
src/components/ui/field.tsx10 symbols
src/components/ui/drawer.tsx10 symbols
src/components/ui/dialog.tsx10 symbols
src/components/ui/tooltip.fixture.tsx9 symbols
src/components/ui/select.tsx9 symbols

For agents

$ claude mcp add braviaprime.com \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page