Dmitry Isaenko

169 posts

Dmitry Isaenko banner
Dmitry Isaenko

Dmitry Isaenko

@d_isaenko_dev

Building https://t.co/HYdkweUeKw - a modular SaaS engine for Laravel. Battle-testing it by crafting https://t.co/emE5gaHP5P (next-gen CRM/ERP). Sharing architecture & dev logs.

Vinnitsa, Ukraine Sumali Ocak 2026
92 Sinusundan18 Mga Tagasunod
Naka-pin na Tweet
Dmitry Isaenko
Dmitry Isaenko@d_isaenko_devยท
Building LaraFoundry in public - a modular SaaS engine for #Laravel. ๐Ÿš€ Stop rebuilding the basics. Focus on your product while I ship the core: โœ… Auth & Permissions โœ… Multi-tenancy (Native) โœ… Activity Logging โœ… i18n (DB + Cookie) โœ… Menu & Navigation ๐Ÿ—๏ธ Current: Production Vue 3 Frontend (Inertia v2) The ultimate #VILstack starter is coming. Follow the journey! ๐Ÿ› ๏ธ #SaaS #BuildInPublic #PHP #VueJS
English
0
0
0
135
Dmitry Isaenko
Dmitry Isaenko@d_isaenko_devยท
The mobile menu in LaraFoundry: - Slide-out from left with GPU-accelerated transitions - Collapsible parent/child sections - Settings mode - tap to set default landing page - Icons for each module - Active state highlighting All from one `navMobile` prop. No separate mobile API. #LaraFoundry #Mobile #Vue #UX
Dmitry Isaenko@d_isaenko_dev

Building LaraFoundry in public - a modular SaaS engine for #Laravel. ๐Ÿš€ Stop rebuilding the basics. Focus on your product while I ship the core: โœ… Auth & Permissions โœ… Multi-tenancy (Native) โœ… Activity Logging โœ… i18n (DB + Cookie) โœ… Menu & Navigation ๐Ÿ—๏ธ Current: Production Vue 3 Frontend (Inertia v2) The ultimate #VILstack starter is coming. Follow the journey! ๐Ÿ› ๏ธ #SaaS #BuildInPublic #PHP #VueJS

English
0
0
0
6
Dmitry Isaenko
Dmitry Isaenko@d_isaenko_devยท
LaraFoundry's frontend nav has zero permission logic. The backend sends pre-filtered arrays. Vue just renders them. Desktop gets a two-tier header. Mobile gets a hamburger with collapsible sections. Same data, different layout. No Vuex. No Pinia. Just reactive refs and emits. #Vue #Inertia #LaraFoundry #Frontend
Dmitry Isaenko tweet media
Dmitry Isaenko@d_isaenko_dev

Building LaraFoundry in public - a modular SaaS engine for #Laravel. ๐Ÿš€ Stop rebuilding the basics. Focus on your product while I ship the core: โœ… Auth & Permissions โœ… Multi-tenancy (Native) โœ… Activity Logging โœ… i18n (DB + Cookie) โœ… Menu & Navigation ๐Ÿ—๏ธ Current: Production Vue 3 Frontend (Inertia v2) The ultimate #VILstack starter is coming. Follow the journey! ๐Ÿ› ๏ธ #SaaS #BuildInPublic #PHP #VueJS

English
0
0
0
9
Dmitry Isaenko
Dmitry Isaenko@d_isaenko_devยท
Users in LaraFoundry can set their own default landing page. Storekeeper โ†’ "Warehouse report" Manager โ†’ "Orders incoming" If permissions change and that page becomes inaccessible - the system auto-clears the default and falls back to the first available page. stored per company. recalculated on company switch. #LaraFoundry #SaaS #BuildInPublic
Dmitry Isaenko@d_isaenko_dev

Building LaraFoundry in public - a modular SaaS engine for #Laravel. ๐Ÿš€ Stop rebuilding the basics. Focus on your product while I ship the core: โœ… Auth & Permissions โœ… Multi-tenancy (Native) โœ… Activity Logging โœ… i18n (DB + Cookie) โœ… Menu & Navigation ๐Ÿ—๏ธ Current: Production Vue 3 Frontend (Inertia v2) The ultimate #VILstack starter is coming. Follow the journey! ๐Ÿ› ๏ธ #SaaS #BuildInPublic #PHP #VueJS

English
0
0
0
7
Dmitry Isaenko
Dmitry Isaenko@d_isaenko_devยท
Zero 403 pages in LaraFoundry. When a user hits a forbidden page, they don't see an error. They get redirected to their first accessible page with a friendly message. The FAR (First Allowed Route) pattern reuses the same permission checks that build the menu. Navigation IS authorization. Detailed post: linkedin.com/posts/dmitry-iโ€ฆ #LaraFoundry #Laravel #UX #SaaS
Dmitry Isaenko@d_isaenko_dev

Building LaraFoundry in public - a modular SaaS engine for #Laravel. ๐Ÿš€ Stop rebuilding the basics. Focus on your product while I ship the core: โœ… Auth & Permissions โœ… Multi-tenancy (Native) โœ… Activity Logging โœ… i18n (DB + Cookie) โœ… Menu & Navigation ๐Ÿ—๏ธ Current: Production Vue 3 Frontend (Inertia v2) The ultimate #VILstack starter is coming. Follow the journey! ๐Ÿ› ๏ธ #SaaS #BuildInPublic #PHP #VueJS

English
0
0
0
29
Dmitry Isaenko
Dmitry Isaenko@d_isaenko_devยท
Clicking "Warehouse" in LaraFoundry doesn't go to /warehouse. It goes to /warehouse/products - or whatever the user's default sub-page is. Each module maps to a default sub-route. Each sub-route has its own permission check. warehouse.settings needs warehouse.manageCategories, not just warehouse.view. #Laravel #Routing #LaraFoundry
Dmitry Isaenko@d_isaenko_dev

Building LaraFoundry in public - a modular SaaS engine for #Laravel. ๐Ÿš€ Stop rebuilding the basics. Focus on your product while I ship the core: โœ… Auth & Permissions โœ… Multi-tenancy (Native) โœ… Activity Logging โœ… i18n (DB + Cookie) โœ… Menu & Navigation ๐Ÿ—๏ธ Current: Production Vue 3 Frontend (Inertia v2) The ultimate #VILstack starter is coming. Follow the journey! ๐Ÿ› ๏ธ #SaaS #BuildInPublic #PHP #VueJS

English
0
0
0
9
Dmitry Isaenko
Dmitry Isaenko@d_isaenko_devยท
How menu filtering works in LaraFoundry: checkUserAndCompanyPolicy($policyName): Admin โ†’ always allowed 'public' โ†’ any authenticated user 'orders.view' โ†’ check user permission in company One method. Handles admin panel, business modules, and public pages. #Laravel #SaaS #LaraFoundry #Authorization
Dmitry Isaenko@d_isaenko_dev

Building LaraFoundry in public - a modular SaaS engine for #Laravel. ๐Ÿš€ Stop rebuilding the basics. Focus on your product while I ship the core: โœ… Auth & Permissions โœ… Multi-tenancy (Native) โœ… Activity Logging โœ… i18n (DB + Cookie) โœ… Menu & Navigation ๐Ÿ—๏ธ Current: Production Vue 3 Frontend (Inertia v2) The ultimate #VILstack starter is coming. Follow the journey! ๐Ÿ› ๏ธ #SaaS #BuildInPublic #PHP #VueJS

English
0
0
0
10
Dmitry Isaenko
Dmitry Isaenko@d_isaenko_devยท
LaraFoundry's entire navigation system is one service class - LayoutDataService. It builds 4 menu variants per request: - Desktop top-level (module tabs) - Desktop bottom-level (sub-pages) - Mobile tree (parent/child) - Company sidebar Every item filtered by user permissions. Owner sees all. Employee sees what they're granted. #Laravel #LaraFoundry #Architecture
Dmitry Isaenko@d_isaenko_dev

Building LaraFoundry in public - a modular SaaS engine for #Laravel. ๐Ÿš€ Stop rebuilding the basics. Focus on your product while I ship the core: โœ… Auth & Permissions โœ… Multi-tenancy (Native) โœ… Activity Logging โœ… i18n (DB + Cookie) โœ… Menu & Navigation ๐Ÿ—๏ธ Current: Production Vue 3 Frontend (Inertia v2) The ultimate #VILstack starter is coming. Follow the journey! ๐Ÿ› ๏ธ #SaaS #BuildInPublic #PHP #VueJS

English
0
0
0
15
Dmitry Isaenko
Dmitry Isaenko@d_isaenko_devยท
Navigation in SaaS looks simple until you have 3 user types, 8 modules, granular permissions, and the menu has to rebuild on every request. I just finished the navigation module for LaraFoundry. One service class. Zero hardcoded menus. Permission-aware everything. thread this week. #Laravel #SaaS #BuildInPublic #LaraFoundry
Dmitry Isaenko@d_isaenko_dev

Building LaraFoundry in public - a modular SaaS engine for #Laravel. ๐Ÿš€ Stop rebuilding the basics. Focus on your product while I ship the core: โœ… Auth & Permissions โœ… Multi-tenancy (Native) โœ… Activity Logging โœ… i18n (DB + Cookie) โœ… Menu & Navigation ๐Ÿ—๏ธ Current: Production Vue 3 Frontend (Inertia v2) The ultimate #VILstack starter is coming. Follow the journey! ๐Ÿ› ๏ธ #SaaS #BuildInPublic #PHP #VueJS

English
0
0
0
11
Dmitry Isaenko
Dmitry Isaenko@d_isaenko_devยท
Building i18n for a SaaS is more than just translating strings. ๐ŸŒ For LaraFoundry, I built a dual-layer detection system: โœ… DB persistence for Auth users โœ… 10-year cookies + IP detection for Guests โœ… 5 levels of fallback logic Full architectural breakdown for the VIL stack: ๐Ÿ”— dev.to/d_isaenko_dev/โ€ฆ #Laravel #SaaS #BuildInPublic #VueJS
Dmitry Isaenko@d_isaenko_dev

Building LaraFoundry in public - a modular SaaS engine for #Laravel. ๐Ÿš€ Stop rebuilding the basics. I'm shipping the core so you can focus on your product. โœ… Registration โœ… Authentication โœ… Multi-tenancy (Native) โœ… Logging (Activitylog + Custom) โœ… Multilanguage (i18n) ๐Ÿ—๏ธ Next: Navigation & Menu System Follow for updates! ๐Ÿ› ๏ธ #SaaS #BuildInPublic #VILstack

English
0
0
0
27
Dmitry Isaenko
Dmitry Isaenko@d_isaenko_devยท
@kyuwon86677 great catch!those code-switch scenarios are exacly what catch you off guard in production. adding this to the test suite for the next iteration of the i18n module. appreciate the push for even more depth!
English
0
0
0
8
kyuwon
kyuwon@kyuwon86677ยท
@d_isaenko_dev Love this testing depth. Adding interruption and code-switch scenarios (e.g., ENโ†’KR mid-sentence) catches real-world translation failures early.
English
1
0
1
14
Dmitry Isaenko
Dmitry Isaenko@d_isaenko_devยท
Testing multilanguage is tedious but necessary. My test suite covers: - All 5 detection fallback levels - Language switch for auth + guest - Invalid locale handling - Translation loading + merging - Mocked DeepL/Google API responses If your i18n isn't tested, it's broken - you just don't know it yet. #Laravel #Testing #Pest #LaraFoundry
Dmitry Isaenko@d_isaenko_dev

Building LaraFoundry in public - a modular SaaS engine for #Laravel. ๐Ÿš€ Stop rebuilding the basics. I'm shipping the core so you can focus on your product. โœ… Registration โœ… Authentication โœ… Multi-tenancy (Native) โœ… Logging (Activitylog + Custom) โœ… Multilanguage (i18n) ๐Ÿ—๏ธ Next: Navigation & Menu System Follow for updates! ๐Ÿ› ๏ธ #SaaS #BuildInPublic #VILstack

English
1
0
0
26
Dmitry Isaenko
Dmitry Isaenko@d_isaenko_devยท
Multilanguage module for LaraFoundry is complete: - 5-step locale detection (DB->session->browser->IP->default) - vue-i18n with global t() function - Translations via Inertia props (0 extra requests) - DeepL + Google Translate API layer - 4 languages ready - Full test coverage Details on LinkedIn + Dev.tะพ #Laravel #SaaS #BuildInPublic #LaraFoundry #i18n #OpenSource
Dmitry Isaenko@d_isaenko_dev

Building LaraFoundry in public - a modular SaaS engine for #Laravel. ๐Ÿš€ Stop rebuilding the basics. I'm shipping the core so you can focus on your product. โœ… Registration โœ… Authentication โœ… Multi-tenancy (Native) โœ… Logging (Activitylog + Custom) โœ… Multilanguage (i18n) ๐Ÿ—๏ธ Next: Navigation & Menu System Follow for updates! ๐Ÿ› ๏ธ #SaaS #BuildInPublic #VILstack

English
1
0
0
37
Dmitry Isaenko
Dmitry Isaenko@d_isaenko_devยท
Two separate middleware flows for i18n in LaraFoundry: Auth users: locale saved in DB, persists across devices Guests: locale in cookie (10-year expiry), detected via IP + browser Different persistence strategies. Same detection chain. Same result. #Laravel #SaaS #LaraFoundry #WebDev
Dmitry Isaenko@d_isaenko_dev

Building LaraFoundry in public - a modular SaaS engine for #Laravel. ๐Ÿš€ Stop rebuilding the basics. I'm shipping the core so you can focus on your product. โœ… Registration โœ… Authentication โœ… Multi-tenancy (Native) โœ… Logging (Activitylog + Custom) โœ… Multilanguage (i18n) ๐Ÿ—๏ธ Next: Navigation & Menu System Follow for updates! ๐Ÿ› ๏ธ #SaaS #BuildInPublic #VILstack

English
0
0
0
17
Dmitry Isaenko
Dmitry Isaenko@d_isaenko_devยท
Why I keep en.json empty in LaraFoundry: English strings ARE the translation keys. `t('Dashboard')` just returns 'Dashboard' for English users. Only non-English locales need translation files. Adding new strings = just typing English in the template. less files, less maintenance, less bugs. #Laravel #i18n #BuildInPublic #LaraFoundry
Dmitry Isaenko@d_isaenko_dev

Building LaraFoundry in public - a modular SaaS engine for #Laravel. ๐Ÿš€ Stop rebuilding the basics. I'm shipping the core so you can focus on your product. โœ… Registration โœ… Authentication โœ… Multi-tenancy (Native) โœ… Logging (Activitylog + Custom) โœ… Multilanguage (i18n) ๐Ÿ—๏ธ Next: Navigation & Menu System Follow for updates! ๐Ÿ› ๏ธ #SaaS #BuildInPublic #VILstack

English
1
0
1
33
Dmitry Isaenko
Dmitry Isaenko@d_isaenko_devยท
LaraFoundry ships with built-in content translation via DeepL + Google Translate. One interface, two providers. Swap in config: 'translator_default' => env('TRANSLATION_SERVICE', 'deepl') Your code doesn't care which API it calls. The contract handles it. #Laravel #DeepL #API #LaraFoundry
Dmitry Isaenko@d_isaenko_dev

Building LaraFoundry in public - a modular SaaS engine for #Laravel. ๐Ÿš€ Stop rebuilding the basics. I'm shipping the core so you can focus on your product. โœ… Registration โœ… Authentication โœ… Multi-tenancy (Native) โœ… Logging (Activitylog + Custom) โœ… Multilanguage (i18n) ๐Ÿ—๏ธ Next: Navigation & Menu System Follow for updates! ๐Ÿ› ๏ธ #SaaS #BuildInPublic #VILstack

English
0
0
1
45
Dmitry Isaenko
Dmitry Isaenko@d_isaenko_devยท
How I pass translations from Laravel to Vue without extra API calls: HandleInertiaRequests middleware shares locale + translations as props. vue-i18n picks them up. Global t() function available everywhere. {{ t('Dashboard') }} - done. Full breakdown on LinkedIn: linkedin.com/posts/dmitry-iโ€ฆ #Laravel #Vue #Inertia #LaraFoundry
Dmitry Isaenko tweet mediaDmitry Isaenko tweet mediaDmitry Isaenko tweet mediaDmitry Isaenko tweet media
Dmitry Isaenko@d_isaenko_dev

Building LaraFoundry in public - a modular SaaS engine for #Laravel. ๐Ÿš€ Stop rebuilding the basics. I'm shipping the core so you can focus on your product. โœ… Registration โœ… Authentication โœ… Multi-tenancy (Native) โœ… Logging (Activitylog + Custom) โœ… Multilanguage (i18n) ๐Ÿ—๏ธ Next: Navigation & Menu System Follow for updates! ๐Ÿ› ๏ธ #SaaS #BuildInPublic #VILstack

English
0
0
1
20
Dmitry Isaenko
Dmitry Isaenko@d_isaenko_devยท
The entire frontend i18n setup in LaraFoundry That's literally it. No per-component imports. #Laravel #Vue #JavaScript #LaraFoundry
Dmitry Isaenko tweet media
Dmitry Isaenko@d_isaenko_dev

Building LaraFoundry in public - a modular SaaS engine for #Laravel. ๐Ÿš€ Stop rebuilding the basics. I'm shipping the core so you can focus on your product. โœ… Registration โœ… Authentication โœ… Multi-tenancy (Native) โœ… Logging (Activitylog + Custom) โœ… Multilanguage (i18n) ๐Ÿ—๏ธ Next: Navigation & Menu System Follow for updates! ๐Ÿ› ๏ธ #SaaS #BuildInPublic #VILstack

English
0
0
0
17