Skip to content
UNCODED

Sasha Art

A portfolio and small shop for a painter, where soft organic shapes sit on a strict grid.

Built for Sasha (@art_nl_art), a painter who moved from Kyiv to Maastricht. In development, not yet on her own domain.

Sector
Painter · Portfolio & shop
Year
2026
Services
Web design, Development, Shop design
Stack
Next.js, React, Tailwind CSS, TypeScript, Vercel

(01)The idea

Sasha sells originals and prints through Instagram, one conversation at a time. A full webshop with checkout and stock would have been more machinery than she needs, and prices depend on the piece.

Sasha paints wisteria, lilac and allium: memories of Kyiv mixed with Maastricht's quiet spring evenings. She sells originals and prints, one conversation at a time on Instagram.

So the site doesn't replace that conversation, it starts it. Visitors can browse, collect what they love in a bag, and send it to her in one tap.

Screens

Sasha art's shop page heading, Paintings & prints, with prints in italic plum.
Shop: one serif headline with a plum italic accent.
Sasha art's home page on a phone with the round plum bag button in the middle of the dock.
The bag blooms out of the middle of the dock.
The bag panel on a phone: delivery choice, name field and a Send order to Sasha button.
The bag: choose delivery, add your name, send it to Sasha.

(02)Design choices

Colour

  • Papier#F8F3EFGround
  • Inkt#2A2130Text and dark buttons
  • Pruim#6D4A8AAccent: italic words, the bag
  • Pruim zacht#CDB6DESoft accent
  • Blos#ECD3DAOrganic shapes
  • Salie#C9D3C0Organic shapes

Type

  • FrauncesDisplay, with an italic plum accent: "Flowers that hold two cities".
  • InterBody and interface.

Colour

Warm paper and plum ink, with blush and sage as soft grounds behind the work. Plum is the one accent: the italic words and the bag.

Type

Fraunces for the headlines, with one phrase in plum italic, and Inter for everything practical. One fluid type scale from 390 to 1280 px.

Shape

Soft organic shapes (arches, petals, pebbles) placed on a strict grid. The shapes may be loose; the edges they sit on never are. Every block starts on the same gutter, every heading on the same baseline step.

Layout

Each painting sits in its own frame shape, an arch, a pebble, a petal or a bloom, so the grid of work feels like a wall of different frames rather than a product listing.

(03)The approach

  1. 01

    Her own house style: arches, petals and pebbles as frames, always placed on the same gutter and baseline. The shapes may be loose; the edges they sit on never are.

  2. 02

    Every artwork comes from her own Instagram posts and captions, so the site never says anything she didn't.

  3. 03

    The shop is a bag, not a checkout: it copies the order and opens an Instagram chat with Sasha, who confirms the price and payment. Nothing is charged on the site, and prices show as "on request" until she sets them.

(04)The stack

Next.js 16
A prerendered home page and shop that load fast and cost nothing to run.
React 19
Elements for each part (frame, pebble, button, heading, steps), composed into pages.
Tailwind CSS 4
The palette and a fluid type scale as tokens; chrome sizes fixed in px.
TypeScript
The work for sale is one typed list she can edit: title, kind, size, text, price or "on request".
Instagram embeds
Every artwork is Instagram's official post embed, cropped so only the painting shows. The frame links to the original post.
localStorage
Keeps the bag between visits, as a convenience. If storage is blocked, the bag simply starts empty.

(05)In the details

  1. 01

    A bag, not a checkout

    The bag copies the order and opens an Instagram chat with Sasha. She replies with the final price and payment details. Nothing is charged on the site.

  2. 02

    The bloom

    On phones the dock is a soft pebble with the bag as a round plum bloom rising out of the middle, carrying the count, because buying is what the site is for.

  3. 03

    Only her words

    Titles, sizes and descriptions come from her own Instagram captions, so the site never says anything she didn't.

  4. 04

    Prices on request, until she sets them

    Any work without a price shows "Price on request". Nothing is invented, and adding a payment link per work turns on a Buy now button.

(06) The outcome

A home page and shop in English, with the work list in one typed file she can edit to change what is for sale.

Let’s talk

Let’s build
something uncommon.

A free, no-pressure intake call. You’ll leave with a clear scope and a fixed quote.