<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Hoang Le</title>
    <description>The latest articles on Forem by Hoang Le (@hoang_le_daccdb7744e93666).</description>
    <link>https://forem.com/hoang_le_daccdb7744e93666</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3696823%2F5b968511-9698-42bd-be5b-d3cc55c7d8e6.png</url>
      <title>Forem: Hoang Le</title>
      <link>https://forem.com/hoang_le_daccdb7744e93666</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/hoang_le_daccdb7744e93666"/>
    <language>en</language>
    <item>
      <title>🚀 Calling Laravel Developers — Let’s Build a Clean, Extensible ERP (and AI Agents)</title>
      <dc:creator>Hoang Le</dc:creator>
      <pubDate>Fri, 06 Feb 2026 20:18:21 +0000</pubDate>
      <link>https://forem.com/hoang_le_daccdb7744e93666/calling-laravel-developers-lets-build-a-clean-extensible-erp-and-ai-agents-if2</link>
      <guid>https://forem.com/hoang_le_daccdb7744e93666/calling-laravel-developers-lets-build-a-clean-extensible-erp-and-ai-agents-if2</guid>
      <description>&lt;p&gt;🚀 Calling Laravel Developers — Let’s Build a Clean, Extensible ERP (and AI Agents)&lt;/p&gt;

&lt;p&gt;If you’re a Laravel developer who enjoys:&lt;/p&gt;

&lt;p&gt;Clean Architecture&lt;/p&gt;

&lt;p&gt;Domain-Driven Design (DDD)&lt;/p&gt;

&lt;p&gt;Extension-based systems&lt;/p&gt;

&lt;p&gt;Writing code that stays clean years later&lt;/p&gt;

&lt;p&gt;Then LiteERP might be something you’ll enjoy working on.&lt;/p&gt;

&lt;p&gt;🏗️ Why LiteERP is different&lt;/p&gt;

&lt;p&gt;LiteERP is an open-source ERP platform built with a very clear rule:&lt;/p&gt;

&lt;p&gt;The core stays small and stable.&lt;br&gt;
All complexity lives in extensions.&lt;/p&gt;

&lt;p&gt;No massive core overrides.&lt;br&gt;
No “just hack it here” solutions.&lt;/p&gt;

&lt;p&gt;The architecture is built on:&lt;/p&gt;

&lt;p&gt;Laravel 12&lt;/p&gt;

&lt;p&gt;Clean Architecture &amp;amp; DDD&lt;/p&gt;

&lt;p&gt;Domain Events&lt;/p&gt;

&lt;p&gt;Clear domain boundaries&lt;/p&gt;

&lt;p&gt;Very low framework coupling&lt;/p&gt;

&lt;p&gt;You can read the core and actually understand it.&lt;/p&gt;

&lt;p&gt;🎨 Hybrid Frontend (React + Blade)&lt;/p&gt;

&lt;p&gt;One of LiteERP’s strengths is its hybrid frontend architecture.&lt;/p&gt;

&lt;p&gt;As a Laravel developer, you can:&lt;/p&gt;

&lt;p&gt;Build simple admin screens using Blade&lt;/p&gt;

&lt;p&gt;Build rich dashboards using React&lt;/p&gt;

&lt;p&gt;Mix both — per extension, not per project&lt;/p&gt;

&lt;p&gt;No forced SPA rewrite.&lt;br&gt;
No unnecessary complexity.&lt;/p&gt;

&lt;p&gt;Each extension chooses the right UI for its job.&lt;/p&gt;

&lt;p&gt;🧩 Extensions are first-class citizens&lt;/p&gt;

&lt;p&gt;Everything meaningful lives in Extensions:&lt;/p&gt;

&lt;p&gt;HRM&lt;/p&gt;

&lt;p&gt;Debt management&lt;/p&gt;

&lt;p&gt;SMTP&lt;/p&gt;

&lt;p&gt;Reporting &amp;amp; analytics&lt;/p&gt;

&lt;p&gt;(Soon) AI Agent Extensions&lt;/p&gt;

&lt;p&gt;Extensions can:&lt;/p&gt;

&lt;p&gt;Hook into domain events&lt;/p&gt;

&lt;p&gt;Expose APIs&lt;/p&gt;

&lt;p&gt;Add UI (Blade or React)&lt;/p&gt;

&lt;p&gt;Be developed, replaced, or removed safely&lt;/p&gt;

&lt;p&gt;This makes LiteERP a platform, not a monolith.&lt;/p&gt;

&lt;p&gt;🤖 AI Agent Extensions — built the right way&lt;/p&gt;

&lt;p&gt;We’re actively designing AI Agent Extensions that:&lt;/p&gt;

&lt;p&gt;Live completely outside the core&lt;/p&gt;

&lt;p&gt;Subscribe to domain events &amp;amp; APIs&lt;/p&gt;

&lt;p&gt;Provide insights, recommendations, and explanations&lt;/p&gt;

&lt;p&gt;Always keep humans in the loop&lt;/p&gt;

&lt;p&gt;If you’re interested in:&lt;/p&gt;

&lt;p&gt;Practical AI (not buzzwords)&lt;/p&gt;

&lt;p&gt;Clean boundaries between domain logic and AI&lt;/p&gt;

&lt;p&gt;Self-hosted or external AI providers&lt;/p&gt;

&lt;p&gt;We’d love to build this together.&lt;/p&gt;

&lt;p&gt;🌱 Open Source &amp;amp; Community-driven&lt;/p&gt;

&lt;p&gt;LiteERP is fully open-source and community-driven.&lt;br&gt;
We’re looking for developers who want to:&lt;/p&gt;

&lt;p&gt;Contribute code&lt;/p&gt;

&lt;p&gt;Design extension standards&lt;/p&gt;

&lt;p&gt;Build AI agent examples&lt;/p&gt;

&lt;p&gt;Shape a long-term ERP platform&lt;/p&gt;

&lt;p&gt;You don’t need to be an ERP expert.&lt;br&gt;
If you understand Laravel and clean design, you’re welcome.&lt;/p&gt;

&lt;p&gt;👉 GitHub: &lt;a href="https://github.com/liteerp-oss/liteerp" rel="noopener noreferrer"&gt;https://github.com/liteerp-oss/liteerp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;⭐ If the architecture resonates with you, a star means a lot&lt;br&gt;
💬 Issues, PRs, and discussions are always open&lt;/p&gt;

&lt;p&gt;Let’s build something clean, extensible, and future-proof — together.&lt;/p&gt;

&lt;h1&gt;
  
  
  Laravel
&lt;/h1&gt;

&lt;h1&gt;
  
  
  OpenSource
&lt;/h1&gt;

&lt;h1&gt;
  
  
  SoftwareArchitecture
&lt;/h1&gt;

&lt;h1&gt;
  
  
  DDD
&lt;/h1&gt;

&lt;h1&gt;
  
  
  AI
&lt;/h1&gt;

&lt;h1&gt;
  
  
  ERP
&lt;/h1&gt;

</description>
      <category>architecture</category>
      <category>laravel</category>
      <category>opensource</category>
      <category>php</category>
    </item>
    <item>
      <title>CALLING LARAVEL DEVELOPERS</title>
      <dc:creator>Hoang Le</dc:creator>
      <pubDate>Fri, 06 Feb 2026 19:33:26 +0000</pubDate>
      <link>https://forem.com/hoang_le_daccdb7744e93666/calling-laravel-developers-3ni4</link>
      <guid>https://forem.com/hoang_le_daccdb7744e93666/calling-laravel-developers-3ni4</guid>
      <description>&lt;p&gt;🚀 Calling Laravel Developers to build an open-source ERP platform together&lt;/p&gt;

&lt;p&gt;If you’re a Laravel developer and you’ve ever thought:&lt;/p&gt;

&lt;p&gt;“I wish there was a clean, lightweight, extensible ERP platform where I can build features without fighting the core…”&lt;/p&gt;

&lt;p&gt;Then LiteERP is being built exactly with that mindset.&lt;/p&gt;

&lt;p&gt;💡 What is LiteERP?&lt;/p&gt;

&lt;p&gt;An open-source ERP platform built on Laravel&lt;/p&gt;

&lt;p&gt;A lightweight and focused core&lt;/p&gt;

&lt;p&gt;All features are developed as Extensions&lt;/p&gt;

&lt;p&gt;You can add functionality without modifying the core&lt;/p&gt;

&lt;p&gt;🧩 Why should Laravel devs join?&lt;/p&gt;

&lt;p&gt;🏗️ Extension-first architecture – enjoyable to work with&lt;/p&gt;

&lt;p&gt;⚛️ Support for React modules loaded from Extensions&lt;/p&gt;

&lt;p&gt;🧼 Clean and actively refactored codebase&lt;/p&gt;

&lt;p&gt;🧠 Real-world problems to solve: HRM, workflows, permissions, business logic&lt;/p&gt;

&lt;p&gt;🤝 Who are we looking for?&lt;/p&gt;

&lt;p&gt;Laravel developers who care about clean architecture&lt;/p&gt;

&lt;p&gt;Developers who want to build real products, not demos&lt;/p&gt;

&lt;p&gt;Contributors interested in meaningful open-source work&lt;/p&gt;

&lt;p&gt;Anyone curious about building a proper ERP on Laravel&lt;/p&gt;

&lt;p&gt;🌱 How can you contribute?&lt;/p&gt;

&lt;p&gt;Build new Extensions&lt;/p&gt;

&lt;p&gt;Review architecture and code&lt;/p&gt;

&lt;p&gt;Help define Extension standards&lt;/p&gt;

&lt;p&gt;Shape the roadmap of a Laravel-based ERP platform&lt;/p&gt;

&lt;p&gt;👉 If you want to build an ERP platform on Laravel together, start here:&lt;/p&gt;

&lt;p&gt;🔗 GitHub:&lt;br&gt;
&lt;a href="https://github.com/liteerp-oss/liteerp" rel="noopener noreferrer"&gt;https://github.com/liteerp-oss/liteerp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Great platforms are not built by individuals,&lt;br&gt;
but by communities who understand what they’re building.&lt;/p&gt;

&lt;h1&gt;
  
  
  Laravel #LaravelDeveloper #OpenSource #ERP #PHP
&lt;/h1&gt;

&lt;h1&gt;
  
  
  SoftwareArchitecture #BuildInPublic #DevCommunity #SaaS
&lt;/h1&gt;

</description>
    </item>
    <item>
      <title>LiteERP - Open Source</title>
      <dc:creator>Hoang Le</dc:creator>
      <pubDate>Fri, 06 Feb 2026 19:31:59 +0000</pubDate>
      <link>https://forem.com/hoang_le_daccdb7744e93666/liteerp-open-source-1hgn</link>
      <guid>https://forem.com/hoang_le_daccdb7744e93666/liteerp-open-source-1hgn</guid>
      <description>&lt;p&gt;🚀 LiteERP – Recent milestones in our open-source ERP journey&lt;/p&gt;

&lt;p&gt;Over the past period, LiteERP has made significant progress in terms of architecture, developer experience, and extensibility.&lt;/p&gt;

&lt;p&gt;🔧 A cleaner and more open architecture&lt;/p&gt;

&lt;p&gt;✨ React ServiceProvider support&lt;br&gt;
→ React modules can now be loaded directly from Extensions, without touching the core&lt;/p&gt;

&lt;p&gt;🧩 Extension-first architecture&lt;br&gt;
→ A lightweight core, with all features implemented as Extensions&lt;/p&gt;

&lt;p&gt;🧼 Major codebase refactoring&lt;br&gt;
→ Cleaner, more maintainable, and much easier for contributors to onboard&lt;/p&gt;

&lt;p&gt;⚡ Smoother experience&lt;/p&gt;

&lt;p&gt;Dynamic React module loading per Extension&lt;/p&gt;

&lt;p&gt;Reduced coupling between core and features&lt;/p&gt;

&lt;p&gt;A noticeably smoother experience for both users and developers&lt;/p&gt;

&lt;p&gt;🧠 A growing Extension ecosystem&lt;/p&gt;

&lt;p&gt;Some extensions already available or in progress:&lt;/p&gt;

&lt;p&gt;🧑‍💼 HRM Extension (time attendance, leave management, HR workflows)&lt;/p&gt;

&lt;p&gt;📧 SMTP Extension (flexible email configuration per business / tenant)&lt;/p&gt;

&lt;p&gt;🔌 More extensions are being built following the same architectural standard&lt;/p&gt;

&lt;p&gt;🎯 LiteERP’s vision&lt;/p&gt;

&lt;p&gt;LiteERP is not trying to be a huge, bloated ERP system.&lt;br&gt;
Our goal is:&lt;/p&gt;

&lt;p&gt;A lightweight ERP core&lt;/p&gt;

&lt;p&gt;Unlimited extensibility via Extensions&lt;/p&gt;

&lt;p&gt;Allow developers to build new features without modifying the core&lt;/p&gt;

&lt;p&gt;A practical solution for small and medium-sized businesses that can grow over time&lt;/p&gt;

&lt;p&gt;🤝 Call for the community&lt;/p&gt;

&lt;p&gt;If you:&lt;/p&gt;

&lt;p&gt;Are interested in Laravel + React&lt;/p&gt;

&lt;p&gt;Enjoy plugin / extension-based architectures&lt;/p&gt;

&lt;p&gt;Or want to contribute to a clean, serious open-source ERP project&lt;/p&gt;

&lt;p&gt;👉 Please take a look at the repository, share your feedback, or simply give LiteERP a ⭐ to support the project.&lt;/p&gt;

&lt;p&gt;🔗 GitHub:&lt;br&gt;
&lt;a href="https://github.com/liteerp-oss/liteerp" rel="noopener noreferrer"&gt;https://github.com/liteerp-oss/liteerp&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  opensource #ERP #Laravel #React #SaaS #Startup #SoftwareArchitecture
&lt;/h1&gt;

</description>
      <category>architecture</category>
      <category>opensource</category>
      <category>react</category>
      <category>showdev</category>
    </item>
    <item>
      <title>Call for Laravel Developers</title>
      <dc:creator>Hoang Le</dc:creator>
      <pubDate>Sun, 01 Feb 2026 14:47:23 +0000</pubDate>
      <link>https://forem.com/hoang_le_daccdb7744e93666/call-for-laravel-developers-fih</link>
      <guid>https://forem.com/hoang_le_daccdb7744e93666/call-for-laravel-developers-fih</guid>
      <description>&lt;p&gt;I’m building an open-source ERP project called LiteERP.&lt;/p&gt;

&lt;p&gt;Not another “all-in-one” ERP,&lt;br&gt;
but a lightweight ERP foundation built with Laravel &amp;amp; React,&lt;br&gt;
designed around a simple idea:&lt;/p&gt;

&lt;p&gt;👉 keep the core small,&lt;br&gt;
👉 push complexity into extensions.&lt;/p&gt;

&lt;p&gt;After working on ERP / internal systems for SMEs,&lt;br&gt;
I realized most projects don’t fail because of missing features,&lt;br&gt;
but because the core becomes too hard to change.&lt;/p&gt;

&lt;p&gt;So LiteERP focuses on:&lt;br&gt;
– clean architecture&lt;br&gt;
– clear domain boundaries&lt;br&gt;
– extension-first design&lt;br&gt;
– production-oriented code (not demo-ware)&lt;/p&gt;

&lt;p&gt;At this stage, LiteERP is NOT a ready-made ERP for businesses.&lt;br&gt;
It’s a foundation for developers and teams who want to:&lt;br&gt;
– build custom ERP solutions&lt;br&gt;
– experiment with extension-based architecture&lt;br&gt;
– avoid monolithic ERP complexity&lt;/p&gt;

&lt;p&gt;I’m looking for Laravel developers who want to:&lt;br&gt;
– explore the architecture&lt;br&gt;
– build or experiment with extensions&lt;br&gt;
– share feedback (good or bad)&lt;br&gt;
– or simply star the project if the philosophy resonates&lt;/p&gt;

&lt;p&gt;Repo:&lt;br&gt;
&lt;a href="https://github.com/liteerp-oss/liteerp" rel="noopener noreferrer"&gt;https://github.com/liteerp-oss/liteerp&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No hype, no marketing promises.&lt;br&gt;
Just code, ideas, and real discussion.&lt;/p&gt;

&lt;p&gt;If you’ve ever felt ERP systems are heavier than they need to be,&lt;br&gt;
your thoughts are more than welcome.&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>erp</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Building a Lightweight ERP Core with Clean Architecture</title>
      <dc:creator>Hoang Le</dc:creator>
      <pubDate>Tue, 06 Jan 2026 17:35:27 +0000</pubDate>
      <link>https://forem.com/hoang_le_daccdb7744e93666/building-a-lightweight-erp-core-with-clean-architecture-pg0</link>
      <guid>https://forem.com/hoang_le_daccdb7744e93666/building-a-lightweight-erp-core-with-clean-architecture-pg0</guid>
      <description>&lt;p&gt;Most ERP systems fail SMEs not because they lack features,&lt;br&gt;
but because they are too heavy, too coupled, and too expensive to maintain.&lt;/p&gt;

&lt;p&gt;When we started building LiteERP, the goal was simple:&lt;/p&gt;

&lt;p&gt;Can we design an ERP core that stays small, predictable, and extensible — even as the system grows?&lt;/p&gt;

&lt;p&gt;This article shares some architectural decisions and trade-offs we made while building a lightweight ERP core using Clean Architecture.&lt;/p&gt;

&lt;p&gt;The core problem with most ERP systems&lt;/p&gt;

&lt;p&gt;From our experience, traditional ERP systems usually suffer from:&lt;/p&gt;

&lt;p&gt;Business logic tightly coupled to frameworks&lt;/p&gt;

&lt;p&gt;Plugins that directly modify core behavior&lt;/p&gt;

&lt;p&gt;Growing dependency graphs that are hard to reason about&lt;/p&gt;

&lt;p&gt;High infrastructure requirements for small teams&lt;/p&gt;

&lt;p&gt;The result:&lt;br&gt;
👉 SMEs pay enterprise-level complexity for simple workflows.&lt;/p&gt;

&lt;p&gt;We wanted a different outcome.&lt;/p&gt;

&lt;p&gt;Clean Architecture as a constraint, not a buzzword&lt;/p&gt;

&lt;p&gt;Clean Architecture is often misunderstood as “just more layers”.&lt;/p&gt;

&lt;p&gt;In LiteERP, it is treated as a hard constraint:&lt;/p&gt;

&lt;p&gt;Domain does not know Infrastructure&lt;/p&gt;

&lt;p&gt;Core business rules do not depend on frameworks&lt;/p&gt;

&lt;p&gt;Modules communicate through explicit contracts&lt;/p&gt;

&lt;p&gt;Side effects are pushed to the edge&lt;/p&gt;

&lt;p&gt;This constraint forces discipline, but it gives us something very valuable:&lt;/p&gt;

&lt;p&gt;The ability to change implementation details without breaking business logic.&lt;/p&gt;

&lt;p&gt;Designing an ERP core that loads only what it needs&lt;/p&gt;

&lt;p&gt;One key rule we adopted early:&lt;/p&gt;

&lt;p&gt;The ERP core must not load modules it does not need.&lt;/p&gt;

&lt;p&gt;Instead of auto-loading everything, LiteERP:&lt;/p&gt;

&lt;p&gt;Resolves modules based on explicit support declarations&lt;/p&gt;

&lt;p&gt;Loads only the hooks required for the current request&lt;/p&gt;

&lt;p&gt;Avoids global service registration for unused modules&lt;/p&gt;

&lt;p&gt;This drastically reduces:&lt;/p&gt;

&lt;p&gt;Memory usage&lt;/p&gt;

&lt;p&gt;Boot time&lt;/p&gt;

&lt;p&gt;Cognitive overhead when debugging&lt;/p&gt;

&lt;p&gt;For SMEs, this means:&lt;/p&gt;

&lt;p&gt;Lower server costs&lt;/p&gt;

&lt;p&gt;Predictable performance&lt;/p&gt;

&lt;p&gt;Easier scaling decisions&lt;/p&gt;

&lt;p&gt;Extension system: hooks, not plugins&lt;/p&gt;

&lt;p&gt;Most ERP plugins work like this:&lt;/p&gt;

&lt;p&gt;Override core classes&lt;/p&gt;

&lt;p&gt;Inject logic everywhere&lt;/p&gt;

&lt;p&gt;Break silently after updates&lt;/p&gt;

&lt;p&gt;We avoided that entirely.&lt;/p&gt;

&lt;p&gt;LiteERP uses a hook-based extension system:&lt;/p&gt;

&lt;p&gt;Extensions declare what they support&lt;/p&gt;

&lt;p&gt;Hooks are executed at specific lifecycle phases&lt;/p&gt;

&lt;p&gt;Core rules remain non-negotiable&lt;/p&gt;

&lt;p&gt;This gives extension developers freedom without compromising system integrity.&lt;/p&gt;

&lt;p&gt;In practice:&lt;/p&gt;

&lt;p&gt;Core stays stable&lt;/p&gt;

&lt;p&gt;Extensions remain optional&lt;/p&gt;

&lt;p&gt;Updates don’t become a nightmare&lt;/p&gt;

&lt;p&gt;Why we avoided “feature-first” development&lt;/p&gt;

&lt;p&gt;One temptation in ERP development is adding features early to appear “complete”.&lt;/p&gt;

&lt;p&gt;We resisted that.&lt;/p&gt;

&lt;p&gt;Instead, we focused on:&lt;/p&gt;

&lt;p&gt;Correct boundaries&lt;/p&gt;

&lt;p&gt;Clear ownership of data&lt;/p&gt;

&lt;p&gt;Strong domain events&lt;/p&gt;

&lt;p&gt;Full business activity logs&lt;/p&gt;

&lt;p&gt;Why?&lt;/p&gt;

&lt;p&gt;Because:&lt;/p&gt;

&lt;p&gt;Features can be added later.&lt;br&gt;
Broken architecture compounds forever.&lt;/p&gt;

&lt;p&gt;Trade-offs we accepted&lt;/p&gt;

&lt;p&gt;This approach is not free.&lt;/p&gt;

&lt;p&gt;We knowingly accepted:&lt;/p&gt;

&lt;p&gt;Slower early feature delivery&lt;/p&gt;

&lt;p&gt;More upfront design work&lt;/p&gt;

&lt;p&gt;Stricter rules for contributors&lt;/p&gt;

&lt;p&gt;But in return, we gained:&lt;/p&gt;

&lt;p&gt;Long-term maintainability&lt;/p&gt;

&lt;p&gt;Easier onboarding for developers&lt;/p&gt;

&lt;p&gt;A system that scales in complexity, not chaos&lt;/p&gt;

&lt;p&gt;Final thoughts&lt;/p&gt;

&lt;p&gt;LiteERP is not trying to compete with enterprise ERP systems.&lt;/p&gt;

&lt;p&gt;It is designed for:&lt;/p&gt;

&lt;p&gt;Small and medium businesses&lt;/p&gt;

&lt;p&gt;Teams that value clarity over complexity&lt;/p&gt;

&lt;p&gt;Developers who care about architecture&lt;/p&gt;

&lt;p&gt;If you believe ERP systems can be lighter, cleaner, and more honest,&lt;br&gt;
you might find this project interesting.&lt;/p&gt;

&lt;p&gt;The project is open-source and currently preparing for Beta:&lt;br&gt;
👉 &lt;a href="https://github.com/liteerp-oss/liteerp" rel="noopener noreferrer"&gt;https://github.com/liteerp-oss/liteerp&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  opensource #erp #cleanarchitecture #laravel #softwarearchitecture
&lt;/h1&gt;

</description>
      <category>laravel</category>
    </item>
    <item>
      <title>Building a Lightweight ERP Core with Clean Architecture (Lessons Learned)</title>
      <dc:creator>Hoang Le</dc:creator>
      <pubDate>Tue, 06 Jan 2026 17:32:47 +0000</pubDate>
      <link>https://forem.com/hoang_le_daccdb7744e93666/building-a-lightweight-erp-core-with-clean-architecture-lessons-learned-4of1</link>
      <guid>https://forem.com/hoang_le_daccdb7744e93666/building-a-lightweight-erp-core-with-clean-architecture-lessons-learned-4of1</guid>
      <description>&lt;p&gt;Building a Lightweight ERP Core with Clean Architecture (Lessons Learned)&lt;/p&gt;

&lt;p&gt;Most ERP systems fail SMEs not because they lack features,&lt;br&gt;
but because they are too heavy, too coupled, and too expensive to maintain.&lt;/p&gt;

&lt;p&gt;When we started building LiteERP, the goal was simple:&lt;/p&gt;

&lt;p&gt;Can we design an ERP core that stays small, predictable, and extensible — even as the system grows?&lt;/p&gt;

&lt;p&gt;This article shares some architectural decisions and trade-offs we made while building a lightweight ERP core using Clean Architecture.&lt;/p&gt;

&lt;p&gt;The core problem with most ERP systems&lt;/p&gt;

&lt;p&gt;From our experience, traditional ERP systems usually suffer from:&lt;/p&gt;

&lt;p&gt;Business logic tightly coupled to frameworks&lt;/p&gt;

&lt;p&gt;Plugins that directly modify core behavior&lt;/p&gt;

&lt;p&gt;Growing dependency graphs that are hard to reason about&lt;/p&gt;

&lt;p&gt;High infrastructure requirements for small teams&lt;/p&gt;

&lt;p&gt;The result:&lt;br&gt;
👉 SMEs pay enterprise-level complexity for simple workflows.&lt;/p&gt;

&lt;p&gt;We wanted a different outcome.&lt;/p&gt;

&lt;p&gt;Clean Architecture as a constraint, not a buzzword&lt;/p&gt;

&lt;p&gt;Clean Architecture is often misunderstood as “just more layers”.&lt;/p&gt;

&lt;p&gt;In LiteERP, it is treated as a hard constraint:&lt;/p&gt;

&lt;p&gt;Domain does not know Infrastructure&lt;/p&gt;

&lt;p&gt;Core business rules do not depend on frameworks&lt;/p&gt;

&lt;p&gt;Modules communicate through explicit contracts&lt;/p&gt;

&lt;p&gt;Side effects are pushed to the edge&lt;/p&gt;

&lt;p&gt;This constraint forces discipline, but it gives us something very valuable:&lt;/p&gt;

&lt;p&gt;The ability to change implementation details without breaking business logic.&lt;/p&gt;

&lt;p&gt;Designing an ERP core that loads only what it needs&lt;/p&gt;

&lt;p&gt;One key rule we adopted early:&lt;/p&gt;

&lt;p&gt;The ERP core must not load modules it does not need.&lt;/p&gt;

&lt;p&gt;Instead of auto-loading everything, LiteERP:&lt;/p&gt;

&lt;p&gt;Resolves modules based on explicit support declarations&lt;/p&gt;

&lt;p&gt;Loads only the hooks required for the current request&lt;/p&gt;

&lt;p&gt;Avoids global service registration for unused modules&lt;/p&gt;

&lt;p&gt;This drastically reduces:&lt;/p&gt;

&lt;p&gt;Memory usage&lt;/p&gt;

&lt;p&gt;Boot time&lt;/p&gt;

&lt;p&gt;Cognitive overhead when debugging&lt;/p&gt;

&lt;p&gt;For SMEs, this means:&lt;/p&gt;

&lt;p&gt;Lower server costs&lt;/p&gt;

&lt;p&gt;Predictable performance&lt;/p&gt;

&lt;p&gt;Easier scaling decisions&lt;/p&gt;

&lt;p&gt;Extension system: hooks, not plugins&lt;/p&gt;

&lt;p&gt;Most ERP plugins work like this:&lt;/p&gt;

&lt;p&gt;Override core classes&lt;/p&gt;

&lt;p&gt;Inject logic everywhere&lt;/p&gt;

&lt;p&gt;Break silently after updates&lt;/p&gt;

&lt;p&gt;We avoided that entirely.&lt;/p&gt;

&lt;p&gt;LiteERP uses a hook-based extension system:&lt;/p&gt;

&lt;p&gt;Extensions declare what they support&lt;/p&gt;

&lt;p&gt;Hooks are executed at specific lifecycle phases&lt;/p&gt;

&lt;p&gt;Core rules remain non-negotiable&lt;/p&gt;

&lt;p&gt;This gives extension developers freedom without compromising system integrity.&lt;/p&gt;

&lt;p&gt;In practice:&lt;/p&gt;

&lt;p&gt;Core stays stable&lt;/p&gt;

&lt;p&gt;Extensions remain optional&lt;/p&gt;

&lt;p&gt;Updates don’t become a nightmare&lt;/p&gt;

&lt;p&gt;Why we avoided “feature-first” development&lt;/p&gt;

&lt;p&gt;One temptation in ERP development is adding features early to appear “complete”.&lt;/p&gt;

&lt;p&gt;We resisted that.&lt;/p&gt;

&lt;p&gt;Instead, we focused on:&lt;/p&gt;

&lt;p&gt;Correct boundaries&lt;/p&gt;

&lt;p&gt;Clear ownership of data&lt;/p&gt;

&lt;p&gt;Strong domain events&lt;/p&gt;

&lt;p&gt;Full business activity logs&lt;/p&gt;

&lt;p&gt;Why?&lt;/p&gt;

&lt;p&gt;Because:&lt;/p&gt;

&lt;p&gt;Features can be added later.&lt;br&gt;
Broken architecture compounds forever.&lt;/p&gt;

&lt;p&gt;Trade-offs we accepted&lt;/p&gt;

&lt;p&gt;This approach is not free.&lt;/p&gt;

&lt;p&gt;We knowingly accepted:&lt;/p&gt;

&lt;p&gt;Slower early feature delivery&lt;/p&gt;

&lt;p&gt;More upfront design work&lt;/p&gt;

&lt;p&gt;Stricter rules for contributors&lt;/p&gt;

&lt;p&gt;But in return, we gained:&lt;/p&gt;

&lt;p&gt;Long-term maintainability&lt;/p&gt;

&lt;p&gt;Easier onboarding for developers&lt;/p&gt;

&lt;p&gt;A system that scales in complexity, not chaos&lt;/p&gt;

&lt;p&gt;Final thoughts&lt;/p&gt;

&lt;p&gt;LiteERP is not trying to compete with enterprise ERP systems.&lt;/p&gt;

&lt;p&gt;It is designed for:&lt;/p&gt;

&lt;p&gt;Small and medium businesses&lt;/p&gt;

&lt;p&gt;Teams that value clarity over complexity&lt;/p&gt;

&lt;p&gt;Developers who care about architecture&lt;/p&gt;

&lt;p&gt;If you believe ERP systems can be lighter, cleaner, and more honest,&lt;br&gt;
you might find this project interesting.&lt;/p&gt;

&lt;p&gt;The project is open-source and currently preparing for Beta:&lt;br&gt;
👉 &lt;a href="https://github.com/liteerp-oss/liteerp" rel="noopener noreferrer"&gt;https://github.com/liteerp-oss/liteerp&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  opensource #erp #cleanarchitecture #laravel #softwarearchitecture
&lt;/h1&gt;

</description>
      <category>architecture</category>
      <category>learning</category>
      <category>systemdesign</category>
    </item>
  </channel>
</rss>
