DEV Community

Nasrul Hazim profile picture

Nasrul Hazim

Solution Architect & Software Engineer

Eight Year Club
Seven Year Club
Writing Debut
Six Year Club
Five Year Club
4 Week Writing Streak
1 Week Community Wellness Streak
Four Year Club
Three Year Club
Two Year Club
One Year Club
One folder shape for every course: a lifecycle monorepo convention

One folder shape for every course: a lifecycle monorepo convention

Comments
3 min read

Want to connect with Nasrul Hazim?

Create an account to connect with Nasrul Hazim. You can also sign in below to proceed if you already have an account.

Already have an account? Sign in
Stop Screenshotting Architecture Diagrams: Build Them as Single-File HTML

Stop Screenshotting Architecture Diagrams: Build Them as Single-File HTML

1
Comments
3 min read
Ebook Reviewer Wanted: Help Me Find What's Gone Stale

Ebook Reviewer Wanted: Help Me Find What's Gone Stale

1
Comments
4 min read
Dev Log: 2026-07-19

Dev Log: 2026-07-19

Comments
2 min read
Building an Email Broadcast Engine That Survives Retries

Building an Email Broadcast Engine That Survives Retries

Comments
2 min read
Your Seeder Should Describe a Shape, Not Your Laptop

Your Seeder Should Describe a Shape, Not Your Laptop

2
Comments
3 min read
The differentiator test: if a rival can copy the claim, it isn't one

The differentiator test: if a rival can copy the claim, it isn't one

1
Comments 1
3 min read
Dev Log: 2026-07-16

Dev Log: 2026-07-16

Comments
2 min read
Dev Log: 2026-07-15

Dev Log: 2026-07-15

Comments
2 min read
Suspend a user in Laravel without deleting them

Suspend a user in Laravel without deleting them

Comments
2 min read
Dev Log: 2026-07-14

Dev Log: 2026-07-14

Comments
3 min read
The Reconciler Pattern: When a Queued Job Simply Never Runs

The Reconciler Pattern: When a Queued Job Simply Never Runs

1
Comments 1
3 min read
Dev Log: 2026-07-09 — one source of truth, three times over

Dev Log: 2026-07-09 — one source of truth, three times over

Comments
2 min read
One config, three surfaces: a registry-driven sidebar switcher in Laravel

One config, three surfaces: a registry-driven sidebar switcher in Laravel

1
Comments
2 min read
When a password sync is 'partly done', it's a bug: converging on one canonical flow

When a password sync is 'partly done', it's a bug: converging on one canonical flow

1
Comments
3 min read
Dev Log: 2026-07-07

Dev Log: 2026-07-07

1
Comments
2 min read
Killing à-la-carte: migrating a feature-gating model to plans-only

Killing à-la-carte: migrating a feature-gating model to plans-only

Comments
3 min read
Dev Log: 2026-07-06

Dev Log: 2026-07-06

Comments
2 min read
The Blade Gotcha That 500s Your Page: Directives Inside Component Attributes

The Blade Gotcha That 500s Your Page: Directives Inside Component Attributes

1
Comments
3 min read
Dev Log: 2026-07-05

Dev Log: 2026-07-05

Comments
2 min read
A Cookie-Free Embeddable Support Widget: What Adversarial Review Caught

A Cookie-Free Embeddable Support Widget: What Adversarial Review Caught

1
Comments
3 min read
Dev Log: 2026-07-04

Dev Log: 2026-07-04

Comments
2 min read
Offline-First Check-In: A Laravel API That Survives Venue Wi-Fi

Offline-First Check-In: A Laravel API That Survives Venue Wi-Fi

1
Comments
2 min read
Setting Up BayarCash (FPX) in Laravel the Right Way

Setting Up BayarCash (FPX) in Laravel the Right Way

Comments
6 min read
Dev Log: 2026-07-03 — idempotent syncs, mail you can trace, and drain-not-delete

Dev Log: 2026-07-03 — idempotent syncs, mail you can trace, and drain-not-delete

Comments
2 min read
Idempotent gateway sync: adopt on conflict, paginate for real, and never widen scope

Idempotent gateway sync: adopt on conflict, paginate for real, and never widen scope

Comments
3 min read
Delivered, opened, clicked: mail tracking in Laravel with zero external services

Delivered, opened, clicked: mail tracking in Laravel with zero external services

Comments 1
3 min read
Making a datatable keyboard-usable: focus traps and arrow-key row reorder

Making a datatable keyboard-usable: focus traps and arrow-key row reorder

Comments
3 min read
Dev Log: 2026-07-02 — disable means drain, and case never matters

Dev Log: 2026-07-02 — disable means drain, and case never matters

Comments
2 min read
Dev Log: 2026-07-01

Dev Log: 2026-07-01

Comments
2 min read
Killing @if($isTailwind) in Blade: a theme-class seam for Livewire tables

Killing @if($isTailwind) in Blade: a theme-class seam for Livewire tables

Comments
3 min read
Dev Log: 2026-06-30

Dev Log: 2026-06-30

Comments
2 min read
Forking laravel-livewire-tables for Laravel 13 + Livewire 4

Forking laravel-livewire-tables for Laravel 13 + Livewire 4

Comments
3 min read
Resolve the tenant from the user, not the request

Resolve the tenant from the user, not the request

Comments
2 min read
When a KPI reads 163 billion instead of 819

When a KPI reads 163 billion instead of 819

Comments
2 min read
Dev Log: 2026-06-29

Dev Log: 2026-06-29

Comments
2 min read
Dev Log: 2026-06-28

Dev Log: 2026-06-28

Comments
2 min read
Dev Log: 2026-06-27

Dev Log: 2026-06-27

Comments
2 min read
Share Your Local Laravel App on a Public URL Without Mixed-Content Hell

Share Your Local Laravel App on a Public URL Without Mixed-Content Hell

Comments
3 min read
Dev Log: 2026-06-26 — Config-Driven Billing, an App-Wide Rebrand, and Branded Error Pages

Dev Log: 2026-06-26 — Config-Driven Billing, an App-Wide Rebrand, and Branded Error Pages

1
Comments
2 min read
Stop Hardcoding Your Commercial Rules: Config-Driven Free Seats, Bulk Seats, and Tax

Stop Hardcoding Your Commercial Rules: Config-Driven Free Seats, Bulk Seats, and Tax

1
Comments
3 min read
Dev Log: 2026-06-25 — Driver Seams Everywhere, a Tracking-URL Bug, and DB-Backed Settings

Dev Log: 2026-06-25 — Driver Seams Everywhere, a Tracking-URL Bug, and DB-Backed Settings

1
Comments
4 min read
The Tracking-Link Bug That Only Breaks Signed URLs

The Tracking-Link Bug That Only Breaks Signed URLs

3
Comments 2
4 min read
Build the Seam on Day One, the Second Driver on Day Ninety

Build the Seam on Day One, the Second Driver on Day Ninety

1
Comments
5 min read
Admin-Editable Settings Without Giving Up config()

Admin-Editable Settings Without Giving Up config()

1
Comments
4 min read
Giving an AI agent the keys without giving it the building: RBAC + org-scoped MCP tools in Laravel

Giving an AI agent the keys without giving it the building: RBAC + org-scoped MCP tools in Laravel

Comments
5 min read
Dev Log: 2026-06-24 — agent guardrails and runtime LDAP config

Dev Log: 2026-06-24 — agent guardrails and runtime LDAP config

Comments
3 min read
Dev Log: 2026-06-23 — Query Cleanups, Real Health Checks, Safer MCP Tools, and Password-Reset Plumbing

Dev Log: 2026-06-23 — Query Cleanups, Real Health Checks, Safer MCP Tools, and Password-Reset Plumbing

Comments
5 min read
A Day of Performance Hardening: Hunting N+1s and Killing Wasted Queries in Laravel

A Day of Performance Hardening: Hunting N+1s and Killing Wasted Queries in Laravel

Comments
5 min read
Dev Log: 2026-06-22 — Configurable Schedulers, Load-Test Toolkits, and an MCP Server

Dev Log: 2026-06-22 — Configurable Schedulers, Load-Test Toolkits, and an MCP Server

Comments
3 min read
Putting an MCP Server Inside a Laravel App: Dual-Auth and RBAC for AI Tools

Putting an MCP Server Inside a Laravel App: Dual-Auth and RBAC for AI Tools

Comments
6 min read
The Generic MCP Toolbox: Tools That Register Themselves

The Generic MCP Toolbox: Tools That Register Themselves

5
Comments
5 min read
Dev Log: 2026-06-19 — MCP Servers Everywhere, Email That Tracks Itself, and Menus That Behave

Dev Log: 2026-06-19 — MCP Servers Everywhere, Email That Tracks Itself, and Menus That Behave

5
Comments
6 min read
The /.well-known/openid-configuration Alias That Makes MCP Connectors Just Work

The /.well-known/openid-configuration Alias That Makes MCP Connectors Just Work

Comments
4 min read
One-Step Install and One-Flag OAuth for a Laravel MCP Server

One-Step Install and One-Flag OAuth for a Laravel MCP Server

5
Comments 1
6 min read
Backing Up an API Gateway's Config — Per Connection, Restore-Safe

Backing Up an API Gateway's Config — Per Connection, Restore-Safe

1
Comments
4 min read
When Your App and the Gateway Disagree: Orphan Cleanup and State Reconciliation

When Your App and the Gateway Disagree: Orphan Cleanup and State Reconciliation

1
Comments
5 min read
One Nullable Timestamp, Four Account States: Deriving User Status in Laravel

One Nullable Timestamp, Four Account States: Deriving User Status in Laravel

1
Comments
4 min read
Deep-Linkable Livewire: Scoping a Browser to the Thing You Clicked

Deep-Linkable Livewire: Scoping a Browser to the Thing You Clicked

1
Comments
4 min read
Why an encrypted config backup breaks when you move servers — and how I fixed it in laravel-config-backup

Why an encrypted config backup breaks when you move servers — and how I fixed it in laravel-config-backup

Comments
3 min read
loading...