Carta Operum

Journal ◆ Web

One admin panel in Laravel for a Dart backend

Why the shop owner's tool is not written in Dart, and how both sides stay apart.

Pinafore is Dart from the phone to the database, and its admin panel is Laravel. That looks like a lapse and it is a decision. The shop owner needs categories, products, promotions and orders behind a login, with forms, tables and image upload, and Filament provides that in days rather than weeks.

What I like is how little the two sides need to know about each other. The panel writes categories, products and promotions. The Dart backend serves them, and the app reads them live. The contract is the data, so each side can change its insides, and nothing in the phone is aware that the owner's tool is written in PHP.

The cost is two languages and a second deploy, and a rule I set for myself: each kind of record has one author. The panel is the author of the catalog and the promotions, the app and the backend are the authors of carts and orders. The benefit is that the part of the system that changes most, what the shop sells and when, is edited by the person who knows, with no developer in between. Images live in S3-compatible storage, and the app only ever sees a URL.