Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Highlights from the Flare codebase (Full Stack ...
Search
Freek Van der Herten
November 13, 2019
Programming
750
0
Share
Highlights from the Flare codebase (Full Stack Ghent)
Freek Van der Herten
November 13, 2019
More Decks by Freek Van der Herten
See All by Freek Van der Herten
Uncharted packages (ode aan de code)
freekmurze
0
65
Uncharted packages (Laravel Live Denmark)
freekmurze
0
260
I shall define this only once
freekmurze
0
480
An Introduction to Snapshot testing
freekmurze
0
560
Event Sourcing In Laravel
freekmurze
0
280
Building a realtime dashboard with Laravel Livewire (PHPKonf)
freekmurze
0
870
A tour behind the scenes of Oh Dear (PHP Benelux)
freekmurze
2
920
A practical look at multitenancy in Laravel
freekmurze
1
400
A practical look at multitenancy in Laravel (Laracon US)
freekmurze
0
790
Other Decks in Programming
See All in Programming
RailsTokyo 2026#4: AI様があれば、 Hotwireの弱点は消えるか?
naofumi
4
490
サプライチェーン攻撃対策「層を重ねて落ちない壁」を10日間で組み上げた話 #TechLeadConf2026
kashewnuts
1
320
AI駆動開発で崩れていくコードベースを立て直す
kyoko_nr_nr
0
130
Migrations : C'est une question d'hygiène !
vinceamstoutz
0
780
Modding RubyKaigi for Myself
yui_knk
0
370
Oxlintはいかにしてtsgolintのlint ruleを呼び出しているのか
syumai
1
360
20年以上続くプロダクトでも使い続けられる静的解析ツールを求めて
matsuo_atsushi
0
160
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
460
密結合なバックエンドから TypeScript のコードを生成する
kemuridama
1
270
自動レビューエンジンの実装と運用 ~レビューのない世界へ~
kurukuru1999
1
130
AI駆動開発勉強会 広島支部 第一回勉強会 AI駆動開発概要とワークショップ
hayatoshimiu
0
290
~ 秘伝のタレ化した『神スプシ』と戦う ~ 関数型パラダイムで壊れない仕組みへ
h0r15h0
1
120
Featured
See All Featured
Done Done
chrislema
186
16k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
How to train your dragon (web standard)
notwaldorf
97
6.6k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
1.4k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.1k
Context Engineering - Making Every Token Count
addyosmani
9
890
The Invisible Side of Design
smashingmag
302
52k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
190
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
170
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
200
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
140
Agile that works and the tools we love
rasmusluckow
331
21k
Transcript
None
About me Freek Van der Herten Partner & developer at
Spatie @freekmurze freek.dev mailcoach.app flareapp.io ohdear.app
Open source stats ± 250 packages on Packagist ± 3,500,000
downloads a month ± 50,000,000 total downloads spatie.be/open-source/packages
spatie.be/open-source
spatie.be/open-source/postcards
Our address SPATIE Samberstraat 69D BE-2060 Antwerp Belgium Europe
Highlights from the Flare codebase
A way to structure a large Laravel app
Take a look at the Flare codebase Not a sales
talk Techniques you can use in your own projects Opinionated
Short walkthrough of the UI Domains Inertia / React /
TypeScript
Let's take a look at Flare
Using domains
Using domains Term taken from DDD A sphere of knowledge
Grouping code Larger projects
Refactor to domains app/ ├── Models/ │ ├── User.php │
├── Team.php │ └── Project.php ├── Mails/ │ ├── Welcome.php │ ├── InvitedToTeam.php │ └── ApiKeyRegenerated.php └── Events/ ├── UserDeleted.php └── Project.php
Refactor to domains app/ └── Domain/ ├── Team └── Project
Show me the code
Front end
Front end “I strongly believe JavaScript is a requirement for
excellent user experiences. Not good experiences, excellent experiences.” —Seb
Front end: JavaScript Inertia Built by Jonathan Reinink Replace Blade
by React (or Vue or whatever) Makes server client communication seamless No full pages refreshes
public function index(Team $team) { return view('team.settings', collect('team')); }
public function index(Team $team) { return inertia()->render('team.settings', collect('team')); }
Show me the code!
In closing
Using domains stitcher.io/blog/laravel-beyond-crud-01-domain-oriented-laravel freek.dev/1371-refactoring-to-actions freek.dev/1433-supercharging-common-controllers
Front end inertiajs.com typescriptlang.org freek.dev/1391-how-to-handle-front-end-authorization-using- laravel-inertia-and-typescript
Thank you! speakerdeck.com/freekmurze/highlights-flare-codebase-fullstack spatie.be/open-source freek.dev mailcoach.app flareapp.io ohdear.app