MAFELSA Distribuidora
Corporate site with a 10-product, 3-service forestry catalog and a Filament admin replacing static content.
- 10
- Products
- 3
- Services
- 3
- CRUD entities
- Laravel
- Filament
- Tailwind CSS
- Vite
- Pest
- MySQL
- Axios
Problem
MAFELSA is a Peruvian forestry distributor with 23 years in the market: eucalyptus, pine, bamboo, mats, pallets, wood chips. Their previous website was static HTML: changing a product price, adding a new service, or checking who filled out the contact form required opening an editor and committing by hand.
The commercial team isn’t technical and needed autonomy to maintain the catalog and read messages without depending on a dev.
Approach
Greenfield Laravel + Filament + MySQL. The public site is still fast HTML (server-rendered from Laravel), but the content comes from a database the team manages through Filament: 3 CRUD entities (products, services, contact messages) plus a dashboard with active products, active services, and unread messages.
Decisions
-
Filament over a custom Laravel admin: for a company not paying a SaaS service and needing editorial autonomy, Filament had the lowest TCO. It generates typed resources (with validation, search, pagination, filters) in a single class declaration. A custom admin would have added weeks of non-differentiating work to the product.
-
AVIF for product imagery: forestry product photos are real photographs (not illustrations), where AVIF cuts 30–50% file size vs WebP at equivalent quality. In the Peruvian context (high share of mobile traffic on 4G), every KB matters so the catalog loads fast. Filament supports AVIF in its image uploader out of the box.
-
Third-party live chat widget (over building one in-house): the team needed business-hours customer support, not a ticketing system or long conversation history. Embedding a free widget (Tawk.to or similar) took minutes and delivered the business value; building one in-house would have been over-engineering for 3 services.
Result
- 10 products and 3 services fully administrable (previously 0 — all static).
- Content update time dropped from “open a PR” (hours) to “edit in Filament and save” (seconds).
- Contact messages centralized, with an unread badge on the dashboard.
- The commercial team has maintained the site without technical intervention since launch.