Next.jsReactPortfolio

bentofolio — Next.js Portfolio Template

By mkhoirulwafa18

Bentofolio is an animated bento-grid personal portfolio template built with Next.js 15, React 19, Tailwind CSS v4, and Motion, with content centralized in the src/lib/constants directory for easy modification.

Explore the design

Compare the page layouts and mobile experience. Open any screenshot for a closer look.

2 previews
Desktop homepage1 / 2
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 2

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-14View source

What stands out

A quick read of the recorded project description.

01

Bento-grid layout with Hero, person image, projects, about, and contact sections

02

Uses Next.js 15 (Turbopack), React 19, Tailwind CSS v4, and Motion animations

03

Content is centralized in the src/lib/constants directory, making it easy to replace personal information and project data

04

Customize theme colors and spacing via CSS variables in src/app/globals.css

05

Uses next/font to load the local Gilroy font and supports replacing font files in public/fonts

06

The README lists ARIA accessibility features and SEO metadata configuration notes

Template Details

Bentofolio is a personal portfolio website template that uses a bento-grid layout, and the README describes it as aimed at developers and designers who want to showcase their work. The template uses Next.js 15 (Turbopack), React 19, Tailwind CSS v4, Motion (Framer Motion API), Lucide React icons, and the clsx and tailwind-merge utility libraries. The page structure includes components such as HeroSection, PersonImageSection, ProjectsSection, AboutContactSection, Navbar, MobileNav, HamburgerButton, and ContactModal, with navigation state managed by the useNavigation hook. The README lists responsive layout, Next.js-based SEO optimization, CSS variable theme customization, next/font local font optimization, and ARIA accessibility features. Content is centralized under src/lib/constants in siteContent.ts, contact.ts, socials.ts, projects.ts, and navItems.ts; style variables are in src/app/globals.css; font files are in public/fonts; and images are in public/person2.jpg and public/projects. The README does not specify deployment platform configuration, the meaning of environment variables, or actual production behavior, and only provides script commands such as npm run build and npm run start.

Next.jsReactPortfolio

Is it right for your project?

Use Cases

  • Developers or designers building a personal portfolio page to showcase projects and contact information
  • A static personal homepage that needs a bento-grid layout and Motion animation effects
  • Projects that want to separate content from components and centrally manage personal data through constants files
  • Front-end practice for secondary development based on Next.js 15 and Tailwind CSS v4

Suitable For

  • Front-end developers familiar with Next.js and React
  • Personal portfolio users who need customizable themes and content structure
  • Learners who want to reference bento-grid layout and Motion animation implementation approaches

Getting started & customization

Use these recorded setup notes alongside the repository instructions for your chosen version.

  1. 1

    Requires Node.js 18 or higher, plus npm or yarn

  2. 2

    After cloning the repository, run npm install or yarn install to install dependencies

  3. 3

    Copy .env.example to .env.local and edit the configuration as needed

  4. 4

    Run npm run dev to start the development server, accessible by default at http://localhost:3000

  5. 5

    Run npm run build to build the production version, and npm run start to start the production server

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This entry covers the free version under the MIT license in the public repository; the free scope is the code of that version and does not mean that external services or third-party assets are free.

Must comply with when using

  • Free use, modification, commercial use, and distribution of this version's code are permitted.
  • When distributing copies or substantial portions of the code, retain the original author's copyright notice and the complete MIT license notice.
  • The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.

Additional costs & items to verify

  • Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses and cannot be judged solely by the code's MIT license.
  • External services such as domains, hosting, databases, payments, or AI may incur separate charges.
View Original Text Basis

Compiled by DeepSeek based on repository license and README ·2026-10-14. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.

Project checks & description sources

Template Information

Source platforms
GitHub
Documentation and maintenance reference score
More documented · 82 / 100
Technologies
Next.js · React
Website type
Portfolio
How this score is calculated

Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.

What to verify for this project

Repository update recorded
2025-09-10
Screenshot last checked
2026-10-14

A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.

The catalog identifies Next.js as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.

Use a selection guide →

How this description was prepared

AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.

Review declaration: codex-user-requested-batch-review-20261015 · 2026-10-15

Inspect the recorded source material

SHA-256: 49b62366ca37a472394a36da6cb07440508f7d5c311cf1dc3d302ec36b3a3b6e

2026-10-14T11:38:13.591Z

Source file / repository
<div align="center">

# 🍱 Bentofolio

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![Next.js](https://img.shields.io/badge/Next.js-15-black)](https://nextjs.org/)
[![React](https://img.shields.io/badge/React-19-blue)](https://reactjs.org/)
[![Tailwind CSS](https://img.shields.io/badge/Tailwind-4-38B2AC)](https://tailwindcss.com/)

A modern, animated bento-style portfolio template built with cutting-edge web technologies. Perfect for developers and designers who want to showcase their work with style.

[View Demo](https://lavanya-bentofolio.vercel.app) · [Report Bug](https://github.com/mkhoirulwafa18/bentofolio/issues) · [Request Feature](https://github.com/mkhoirulwafa18/bentofolio/issues)

</div>

## ✨ Preview

<p align="center">
  <video src="docs/preview/lavanya-bento-preview.webm" autoplay loop muted playsinline alt="Bentofolio — homepage overview"></video>
</p>

## 📸 Screenshots

<p align="center">
  <img src="docs/preview/lavanya-bento-desktop.png" alt="Home Desktop" width="40%" />
  <img src="docs/preview/lavanya-bento-desktop-contact.png" alt="Contact modal Desktop" width="40%" />
</p>
<p align="center">
  <img src="docs/preview/lavanya-bento-tab.png" alt="Home Tab" width="28%" />
  <img src="docs/preview/lavanya-bento-tab-contact.png" alt="Contact modal Tab" width="28%" />
  <img src="docs/preview/lavanya-bento-mobile.png" alt="Home Mobile" width="18%" />
  <img src="docs/preview/lavanya-bento-mobile-contact.png" alt="Contact modal Mobile" width="18%" />
</p>

## 🚀 Features

### Core Features
- 📱 Fully responsive bento-grid layout
- 🎯 SEO optimized with Next.js
- 🎨 Modern UI with Tailwind CSS
- ✨ Smooth animations powered by Motion
- 📦 Zero-config deployment

### Technical Highlights
- 🔥 Server-side rendering with Next.js 15
- 🎭 Animated interactions via Motion variants
- 📱 Mobile-first responsive design
- ♿ ARIA-compliant accessibility features
- 🎨 Custom theming with CSS variables
- 🔤 Local font optimization with `next/font`

## 🛠️ Tech Stack

- **Framework:** Next.js 15 (Turbopack)
- **UI Library:** React 19
- **Styling:** Tailwind CSS v4
- **Animation:** Motion (Framer Motion API)
- **Icons:** Lucide React
- **Utilities:** clsx, tailwind-merge

## 📦 Getting Started

### Prerequisites

- Node.js 18 or later
- npm or yarn package manager

### Installation

1. Clone the repository
   ```bash
   git clone https://github.com/mkhoirulwafa18/bentofolio.git
   cd bentofolio
   ```

2. Install dependencies
   ```bash
   npm install
   # or
   yarn install
   ```

3. Set up environment variables
   ```bash
   cp .env.example .env.local
   ```
   Then edit `.env.local` with your configuration

4. Start the development server
   ```bash
   npm run dev
   # or
   yarn dev
   ```

5. Open [http://localhost:3000](http://localhost:3000) in your browser

### Build for Production
   ```bash
   npm run build
   # or
   yarn build
   ```

## 📁 Project Structure

```
bentofolio/
├── public/
│   ├── fonts/                 # Local Gilroy font files
│   ├── projects/              # Project thumbnail images
│   ├── svgs/                  # SVG icons and graphics
│   └── person2.jpg            # Profile image
├── src/
│   ├── app/
│   │   ├── globals.css        # Global styles and CSS variables
│   │   ├── layout.tsx         # Root layout with metadata
│   │   └── page.tsx           # Home page composition
│   ├── components/
│   │   ├── AboutContactSection.tsx
│   │   ├── ContactModal.tsx
│   │   ├── HamburgerButton.tsx
│   │   ├── HeroSection.tsx
│   │   ├── MobileNav.tsx
│   │   ├── Navbar.tsx
│   │   ├── PersonImageSection.tsx
│   │   └── ProjectsSection.tsx
│   ├── hooks/
│   │   └── useNavigation.ts   # Navigation state management
│   └── lib/
│       ├── animation/         # Motion variants and animations
│       ├── constants/         # Centralized data (contact, projects, etc.)
│       └── utils/             # Utility functions
├── .gitignore
├── eslint.config.mjs
├── next.config.ts
├── package.json
├── postcss.config.mjs
├── README.md
└── tsconfig.json
```

## 🔧 Available Scripts

- `npm run dev` - Start development server with Turbopack
- `npm run build` - Build for production with Turbopack
- `npm run start` - Start production server
- `npm run lint` - Run ESLint for code quality

## 🎨 Customization

### Content Management
All content is centralized in `src/lib/constants/` for easy customization:

- **Hero Content**: Edit `src/lib/constants/siteContent.ts`
- **Contact Info**: Edit `src/lib/constants/contact.ts`
- **Social Links**: Edit `src/lib/constants/socials.ts`
- **Projects**: Edit `src/lib/constants/projects.ts`
- **Navigation**: Edit `src/lib/constants/navItems.ts`

### Styling & Theming
- **CSS Variables**: Modify `src/app/globals.css` for colors and spacing
- **Fonts**: Replace files in `public/fonts/` and update `src/app/layout.tsx`
- **Images**: Replace `public/person2.jpg` and project images in `public/projects/`

### SEO & Metadata
Update metadata in `src/app/layout.tsx` for:
- Page title and description
- Open Graph tags
- Twitter card settings
- Author information

## 🤝 Contributing

Contributions are welcome! Please follow these steps:

1. **Fork the repository**
   ```bash
   git clone https://github.com/mkhoirulwafa18/bentofolio.git
   ```

2. **Create a feature branch**
   ```bash
   git checkout -b feature/amazing-feature
   ```

3. **Install dependencies**
   ```bash
   npm install
   ```

4. **Make your changes**
   - Follow the existing code style
   - Add comments for complex logic
   - Test your changes locally

5. **Commit your changes**
   ```bash
   git commit -m "feat: add amazing feature"
   ```

6. **Push to your branch**
   ```bash
   git push origin feature/amazing-feature
   ```

7. **Open a Pull Request**

### Development Guidelines
- Use TypeScript for type safety
- Follow the existing component structure
- Maintain responsive design principles
- Test on multiple screen sizes
- Ensure accessibility standards

## 📄 License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

### MIT License Summary
- ✅ Commercial use
- ✅ Modification
- ✅ Distribution
- ✅ Private use
- ❌ Liability
- ❌ Warranty

## 🙏 Acknowledgments

- [Next.js](https://nextjs.org/) - The React framework for production
- [Tailwind CSS](https://tailwindcss.com/) - Utility-first CSS framework
- [Motion](https://motion.dev/) - Animation library
- [Lucide React](https://lucide.dev/) - Beautiful & consistent icons
- [Vercel](https://vercel.com/) - Deployment platform

---

<div align="center">
  <p>Made with ❤️ by <a href="https://github.com/mkhoirulwafa18">Wafastarz</a></p>
  <p>⭐ Star this repo if you found it helpful!</p>
</div>
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.

react-resume-template

react-resume-template

A personal resume website template for software developers, built with Next.js, React, and TypeScript and styled with Tailwind CSS. Site content is driven by a single data file at /src/data/data.tsx, with types in dataDef.ts and images in src/images/.

Next.js · Portfolio

nxt-lnk

nxt-lnk

nxt-lnk is a Next.js-based bio link page template that manages personal information and links via BioData.js and LinksData.js, positioned as a self-hosted alternative to Linktree. It groups links by type, supports enabling/disabling individual links, and offers hexagonal or oval avatars.

Next.js · Portfolio

sylph

sylph

Sylph is a minimal portfolio and blog template built on Next.js, supporting MDX/Markdown writing, light/dark themes, and automatic OG image generation. It includes sitemap, robots.txt, metadata, and syntax highlighting, with automatic blog timestamps.

Next.js · Portfolio

sleek-portfolio

sleek-portfolio

A modern, responsive portfolio template built with Next.js 15, TypeScript, Tailwind CSS, and Shadcn UI. It includes an MDX blog, project showcase, work experience timeline, and a contact form that receives messages via Telegram Bot.

Next.js · Portfolio

research-website-template

research-website-template

A React + Next.js template for research personal websites, aimed at PhD students and researchers. It centralizes publications, projects, and other content in src/data as arrays of objects, with optional fields automatically generating UI components.

Next.js · Portfolio

shadcn-portfolio

shadcn-portfolio

A developer portfolio template built with Next.js 15, shadcn/ui, Tailwind CSS, and Framer Motion, featuring an MDX blog, light and dark modes, responsive design, and SEO meta tags.

Next.js · Portfolio