← all cases
own product

Toiga — a builder for toi invitation sites

Five designs, twelve sections each, a nine-tool editor, drafts without registration, publishing at your own address, RSVP and a wish book. Nuxt 3 + FastAPI + MongoDB.

Nuxt 3 SSRFastAPIMongoDBBeanie ODM

The task

A Kazakh toi invites guests by the hundreds — paper invitations lose to a WhatsApp link. A builder: pick a design, fill in the sections, publish at your own address, collect RSVPs and guest wishes.

The product is my own: design, frontend, backend and database. So the case serves two purposes: engineering and taste.

What was hard

01

Section order is data

Sections are stored as an ordered list in data, not as markup. The renderer groups adjacent sections into “runs” with shared wrappers — backgrounds and spacing survive reordering, and a new design never rewrites the ordering logic.

02

Dragging inside a scaled preview

The preview shows the page scaled down, while the finger lives in screen coordinates. Every drag converts between frames of reference: pointer coordinates, preview scale, element size. One wrong multiplier — and the element jumps.

03

Overlays in fractions of width

Overlay coordinates are stored as fractions of width, not height: a section’s height changes with any text edit, while width stays stable. Overlays don’t drift after content editing.

What was done

  • Five designs, twelve sections each
  • A nine-tool editor, drafts without registration
  • Publishing at your own address, RSVP and a wish book
  • Nuxt 3 SSR + FastAPI + MongoDB (Beanie ODM)

The result

The full path works: from choosing a design to a published invitation with RSVP. The case shows both the engineering and a design of my own.

A similar task?

A builder, an editor, a product from scratch — let’s talk.

Discuss a project
Asanali · Astana2026 · built without a site builder