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.

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.

The artwork catalogue.

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.

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.

Questions people ask

  • Yes. Berseni.id is a freelance project he designed and built end to end in 2026: a bilingual art platform with a shop, painting classes, a blog and an admin panel that lets the client edit every section.
ShareLinkedInXWhatsApp