Skip to content

MiladJoodi/Tariboon-News

Repository files navigation

تریبون — Tariboon News Portal

A production-grade Persian news platform built with Next.js 16, TypeScript, and Tailwind CSS v4. Fully RTL, dark mode ready, with a complete admin panel.


Overview

Tariboon (تریبون) is a fully-featured Persian news portal with 50 articles, 8 authors, 12 categories, and a real-time admin panel — all statically generated with no backend required. It demonstrates RTL layout mastery, modern Next.js App Router patterns, and polished UI/UX for the Persian web.


Pictures:


Tech Stack

Layer Technology
Framework Next.js 16 (App Router)
Language TypeScript 5
Styling Tailwind CSS v4
UI Components shadcn/ui + Radix UI
State Management Zustand 5
Forms & Validation React Hook Form + Zod
Icons Lucide React
Notifications Sonner
Charts Recharts
Font Vazirmatn (Google Fonts)
Analytics Vercel Analytics

Features

Public Site

  • Home — hero featured articles, latest news grid, breaking news ticker, trending sidebar
  • Article Page — full content, reading progress bar, share buttons, related articles, comment form
  • Category Pages — filtered articles with sort options and pagination
  • Search — real-time full-text search across titles, excerpts, authors, and tags
  • Archive — full article list with multi-filter (category, sort, date)
  • Author Profiles — bio, social links, article history
  • Tag Pages — grouped articles by tag
  • About & Contact — team display, contact form with toast feedback

Admin Panel (/admin)

  • Dashboard — stats cards, recent articles, pending comments
  • Articles — full CRUD: create, edit, delete, search, filter by status and category
  • Comments — moderation queue with approve/reject/delete
  • Categories & Tags — add, edit, delete
  • Authors — view and edit author profiles
  • Settings — site configuration fields

Design & UX

  • Full RTL layout (right-to-left) with Persian locale (fa-IR)
  • Dark / Light mode with next-themes
  • Vazirmatn font — the standard Persian web font
  • Breaking news badges with pulse animation
  • Skeleton loaders for perceived performance
  • Fully responsive — mobile, tablet, desktop

Project Structure

├── app/                    # Next.js App Router pages
│   ├── page.tsx            # Home
│   ├── post/[slug]/        # Article view
│   ├── category/[slug]/    # Category listing
│   ├── search/             # Search results
│   ├── archive/            # Full archive
│   ├── author/[slug]/      # Author profile
│   ├── tag/[slug]/         # Tag listing
│   ├── about/              # About page
│   ├── contact/            # Contact form
│   └── admin/              # Admin panel
│       ├── articles/       # Article CRUD
│       ├── comments/       # Comment moderation
│       ├── categories/     # Category management
│       ├── tags/           # Tag management
│       ├── authors/        # Author management
│       └── settings/       # Site settings
│
├── components/             # React components
│   ├── header.tsx
│   ├── footer.tsx
│   ├── news-card.tsx       # 4 variants: hero, featured, compact, minimal
│   ├── pagination.tsx
│   ├── share-buttons.tsx
│   ├── reading-progress.tsx
│   ├── comment-form.tsx
│   ├── category-badge.tsx
│   ├── skeleton/
│   └── ui/                 # shadcn/ui components
│
├── data/                   # Static data layer
│   ├── articles.ts         # 50 articles + query helpers
│   ├── authors.ts          # 8 authors
│   ├── categories.ts       # 12 categories
│   ├── tags.ts             # 27 tags
│   └── comments.ts         # Mock comments
│
├── store/                  # Zustand stores
│   ├── admin-store.ts      # Admin CRUD state
│   └── ui-store.ts         # Search, filters, pagination
│
├── types/index.ts          # All TypeScript interfaces
├── lib/data-utils.ts       # Filtering, pagination, sort helpers
├── utils/format.ts         # Persian date, number, text formatting
└── hooks/                  # Custom hooks (scroll, search, mobile)

Getting Started

# Clone the repository
git clone https://github.com/MiladJoodi/Tariboon-News.git
cd Tariboon-News

# Install dependencies
npm install

# Run development server
npm run dev

# Build for production
npm run build

Open http://localhost:3000 to view the site. Admin panel is at http://localhost:3000/admin.


Data Model

interface Article {
  id: number
  title: string
  slug: string
  excerpt: string
  content: string        // HTML
  image: string
  category: string
  categorySlug: string
  author: Author
  tags: Tag[]
  publishedAt: string
  readingTime: number    // minutes
  views: number
  featured: boolean
  breaking: boolean
  status: 'published' | 'draft'
}

All data lives in /data/*.ts — no database or API required.


Author

Milad Joodi linkedin.com/in/joodi · github.com/MiladJoodi

About

A production-grade Persian news portal built with Next.js 16, TypeScript & Tailwind CSS v4. Features full RTL layout, dark mode, 50 articles, 12 categories, admin panel with Zustand, and static generation — no backend required.

Topics

Resources

License

Stars

15 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors