# Berseni.id

> A bilingual art platform built from scratch for Berseni and live at berseni.id: an artwork shop, online and offline painting classes, a blog, and an admin panel that edits every part of the site.

Berseni sells original paintings, runs painting workshops and an online course. The site carries all of it in two languages, and the team runs it from an admin panel without calling a developer.

- Seven bilingual pages, from an artwork catalogue to classes, workshops and a blog, live at berseni.id.
- An admin panel that edits every section, the catalogue, testimonials and partner logos, so the team needs no developer.
- Meta Pixel, Search Console and GEO fields managed from the admin, plus an automatic sitemap and one-click backups.

- 7 public pages in two languages
- 2 languages, Indonesian and English
- Live at berseni.id

- Role: Freelance full-stack developer
- Period: 2026
- Stack: Next.js 16, React 19, Redis, Vercel, Admin panel, SEO and GEO
- Live site: berseni.id (https://www.berseni.id)

**TL;DR** Berseni.id is a bilingual art platform that Nugraha Labib Mujaddid built from scratch as a freelance project in 2026: an artwork shop, online and offline painting classes, a blog, a collaboration page and an admin panel that edits every part of the site, live at berseni.id.

## The brief

Berseni is an Indonesian art education platform that brings the public closer to professional artists. It sells original paintings, runs acrylic painting workshops at hotels and cafes in Jakarta, offers an online oil painting course, and partners with brands and venues for art events. The site had to carry all of that in Indonesian and English, and be easy to run without a developer.

*The home page.*

## What I built

- **Seven public pages**: home, the artwork catalogue, classes and workshops, about, collaboration, the blog and an activity gallery.
- **An admin panel for everything**: banners, sections and buttons, the artwork, class and workshop catalogue, testimonials, and the partner logos with drag to reorder.
- **Two languages**, with Indonesian as the default and every text available in English.
- **Marketing settings in the admin**: the Meta Pixel, Google Search Console verification and GEO fields that help AI search engines describe the brand correctly.

## Under the hood

Next.js 16 with the App Router and plain CSS modules. Content lives in Redis on Vercel in production and falls back to a JSON file for local work, so the same code runs in both places. The sitemap rebuilds itself whenever a product, class or article is published, images upload through the site's own API, an admin login on a new device signs out every other session, and a one-click export packs the whole site into a JSON backup.

**The project at a glance**
- Type: Art platform: shop, classes, blog
- Role: Freelance, full-stack build
- Built: June to September 2026
- Stack: Next.js 16, React 19, Redis, Vercel
- Languages: Indonesian and English
- Status: Live at berseni.id

## Lessons

A client should never need a developer to change a banner. Every section of Berseni is editable from its admin, the same principle this portfolio is built on, and that is what lets a small team keep the site alive after launch.

Source: https://nugrahalabib.com/work/berseni
Author: Nugraha Labib Mujaddid (https://nugrahalabib.com)
Published: 2026-09-24. Updated: 2026-09-25.
