Blogs

A space for thoughts, observations, and things worth documenting. Covering technology, creativity, workflows, ideas, and everything in between.

24 posts · page 2 of 3

The UmimaClean Stack, Part 6: Realtime with Transmit and Server-Sent Events

Why SSE beat WebSockets for a one-directional problem - how Transmit channels and authorisation work, the two channels this app has, why broadcasts carry stored values instead of labels, and what breaks when you run more than one process.

adonisjstransmitsserealtime
The UmimaClean Stack, Part 5: Transformers, Typed Routes, and Forms Without State

The layer between a model and a page - variants that encode who may see what, why depth is a property of the resource, Tuyau turning route names into compile-time checks, and Inertia 2 forms that need no useState at all.

inertiareactadonisjstypescript
The UmimaClean Stack, Part 4: Inertia.js, or Deleting the API Layer

What it means to build a React app with no API - how Inertia visits work, shared props via middleware, flash messages and validation errors that arrive automatically, why SSR is configured but off, and the mobile app I gave up to get here.

inertiareactadonisjsfrontend
The UmimaClean Stack, Part 3: Lucid, PostgreSQL, and the Rules the Database Holds

Generated model schemas, migrations as the source of truth, partial unique indexes that enforce what application code cannot, RESTRICT as a history-preservation strategy, transactions around multi-table writes, and the numeric-returns-a-string gotcha that shipped broken exports.

adonisjslucidpostgresqldatabase
The UmimaClean Stack, Part 2: VineJS and Validation as a Layer

Making validation composable and localised - a shared rule vocabulary, Indonesian messages registered once, a global transform that hands you Luxon dates, and the line between what a validator may know and what belongs in a service.

adonisjsvinejsvalidationtypescript
The UmimaClean Stack, Part 1: AdonisJS Structure, IoC, and the Request Lifecycle

How an AdonisJS 7 application is actually assembled - providers and preloads, the two middleware stacks and why the order matters, constructor dependency injection with no container registration, subpath imports, and validated environment variables.

adonisjstypescriptnodejsarchitecture
The Stack Behind UmimaClean: AdonisJS, Inertia, Leaflet, Midtrans

A tour of every library in a real production codebase and what each one actually cost - why AdonisJS over Express, Inertia instead of a REST API, Leaflet with Google tiles, Midtrans Core API over Snap, and the two data-type gotchas that broke my spreadsheet exports.

adonisjsinertiareactleaflet
Building an Operations Platform for a Shoe Cleaning Shop

What I learned building UmimaClean - why frozen prices are the most important decision in the schema, how a conditional UPDATE stops two staff driving to the same address, why a payment webhook needs an escape hatch, and the parts I would build differently.

adonisjsinertiareactpostgresql
© 2026 r3p.dev. All rights reserved.