Laravel developer · Leeuwarden

# How I build with Laravel

I am a developer in Leeuwarden and I build with Laravel when an application is more than pages: users, permissions, data. My base is the TALL stack: Tailwind, Alpine.js, Laravel and Livewire. This is how I go about it.

- Laravel
- Leeuwarden, NL
- 1 project
- Updated 8 Oct 2026

## What I look after

What I do again in every Laravel application.

1. 01
### From database to interface
I build a feature through every layer in one go: migration, model, logic and the screen that goes with it. That is how I picked up parts of the MVP of EcoMobi.
2. 02
### Livewire for interaction
Forms, filters and boards that respond without a separate JavaScript app beside them. Alpine.js fills in where it is something small.
3. 03
### Components you reuse
Blade and Livewire components with one job. In EcoMobi one text input is used 62 times across the app.
4. 04
### Roles and permissions
User management with roles and permissions, and boards you invite people to by e-mail.
5. 05
### Data from outside
An API route that fetches data from external sources and stores it, ready to be visualised.
6. 06
### Tested and documented
Unit tests with Pest and written documentation of the architecture, so a team can carry on without me.

## What did I build at EcoMobi?

EcoMobi is a policy support system for rural municipalities moving to sustainable mobility. It makes the information behind policy choices easier to reach and gives residents a part in them. I worked on it for five months, during my internship at Concept7.

Laravel and Livewire were both new to me. After a few practice projects I picked up parts of the MVP of my own, from database to interface, with every merge request reviewed. My work is in the product: fetching data from external sources, boards you share, archive and reorder by dragging, user management with roles and permissions, and a set of shared components.

Next to that I went through the accessibility against WCAG 2.2 (labels, ARIA labels and contrast), wrote unit tests with Pest, added a dark mode and documented the architecture, so the team could carry on without me.

internship at Concept7

5 months

times the same text input is reused

62

accessibility reviewed

WCAG 2.2

## Built with Laravel

A data platform I helped build at Concept7.

[View all work](https://sanderr.nl/projects/)

- [EcoMobi Data platform · @Concept7 · 2024 Alpine.js · Filament · JavaScript · Laravel · Livewire · PHP · Tailwind](https://sanderr.nl/projects/ecomobi/)

Often in the same projects

- Alpine.js
- Filament
- JavaScript
- Livewire
- PHP
- Tailwind

## How I work

Clear decisions, short loops and something real to react to.

1. ### Find the actual need
Before choosing a stack, I clarify the goal, the user and the smallest version worth building.
2. ### Build the right amount
I choose the simplest stack that fits, then move quickly into something real enough to test and improve.
3. ### Refine the experience
Responsive behaviour, subtle motion, accessible choices, readable code and a clear CMS turn a working build into a finished product.

## Questions

What I often hear about it.

1. For an application with forms, tables and boards Livewire is enough: the logic stays in one place, in PHP, and the screens need no API of their own.
2. I choose the simplest stack that fits. Content someone manages: WordPress. An application with users, permissions and a lot of data: Laravel. A product where the interface weighs most: Next.js.
3. With tests, readable code and documentation of the architecture. That is how I left my work on EcoMobi, where every merge request was reviewed by my supervisor.
4. Yes, for admin screens. EcoMobi uses it next to Livewire.

## Which stack when

I choose the simplest one that fits.

| Stack | When |
| --- | --- |
| [WordPress](https://sanderr.nl/wordpress/) | Content someone manages themselves: a site, a portfolio, a blog. |
| [Expo](https://sanderr.nl/react-native/) | Something you carry with you and that has to remind you: an app. |
| [Next.js](https://sanderr.nl/nextjs/) | A product with accounts, logic of its own or a lot of interaction. |
| Laravel | An application with users, permissions and a lot of data. |

---

- [Sander de Vries for agents](https://sanderr.nl/llms.txt)
- [Sitemap](https://sanderr.nl/sitemap.xml)
- [Contact](mailto:hello@sanderr.nl)
