Skip to content
Nachi3D Labs

Case Study / Web + Engineering

Nachi3D

3D printing, laser engraving, and CAD services — Essaouira, Morocco

ClientNachi3D (own business)
Year2024–present
StatusLive
Role

Brand owner & operator. Site development by MyNewIT (mynewit.com) — a long-term development partner.

Overview

The Project

Nachi3D is my own business — 3D printing, laser engraving, 3D scanning, and CAD services operating from Essaouira, Morocco and serving clients across Morocco and Europe. The website at nachi3d.com was built by MyNewIT — a long-term development partner — and is operated and managed by me day to day. This is the origin of the Nachi3D brand and the reason Nachi3D Labs exists: the business came first, then the tools the business needed, and eventually the habit of shipping for other people's businesses.

I'm the founder, brand owner, and day-to-day operator. MyNewIT ship the code; I run the catalogue, pricing, and customer relationships. Everything I ask clients to consider when they commission a site — accessibility, multilingual setup, performance, the gap between a product grid and a quote pipeline — I live with from the operator side of this storefront. Including the things I'd change.

Stack

Laravel
Livewire
Tailwind
Stripe
PayPal
MySQL

Duration

2024 — ongoing

Context

The Challenge

A 3D printing business in Morocco faces a specific web problem: the audience splits into local Moroccan clients (French and Arabic, paying in MAD) and international clients (English, Spanish, paying in EUR or USD). The site needed to handle four languages and three currencies from day one — not as a nice-to-have, but because half the revenue comes from each side.

The product catalogue ranges from custom one-off prints (where the customer uploads a file and describes what they need) to laser-engraved signage and CAD modelling services. There's no standard e-commerce flow — most orders start as conversations, not cart checkouts. The site needs to present the capabilities, capture enquiries, and handle payment for the orders that are straightforward enough to price upfront.

This site pre-dates the Labs approach. The technology choices reflect the team and context at the time, not where Labs would start from today — which is part of why I'm including this case study.

Solution

The Approach

The site is built on Laravel with Livewire for interactive components and Tailwind for styling. Laravel was the framework I knew best at the time, and it handled the multilingual routing, Stripe/PayPal integration, and MySQL-backed product catalogue without major issues.

Multi-currency pricing is handled server-side — each product has prices stored in MAD, EUR, and USD, and the displayed currency switches based on the active locale. Stripe handles EUR/USD payments; PayPal covers MAD for Moroccan customers where Stripe isn't available.

The design leans into the maker aesthetic: dark backgrounds, monospace accents, and a technical readout motif that later became the signature element of Nachi3D Labs. What started as a 3D printer status display on the Nachi3D hero section evolved into the TechnicalReadout component you see on this site.

Results

Current State

  • Multilingual storefront live in French, English, Arabic, and Spanish
  • Multi-currency checkout (MAD, EUR, USD) via Stripe and PayPal
  • Product catalogue with categories, materials, and custom order requests
  • Contact and quote request forms operational
  • Deployed and serving real customers in Morocco and internationally
  • Migration to Next.js + headless CMSPlanned
  • Performance audit and Lighthouse optimisation passPlanned

Hindsight

What I'd Do Differently

If we rebuilt this today, I'd push for Next.js with MDX for the product and content pages, Sanity or a similar headless CMS for the catalogue, and Laravel retired from the stack. Laravel served its purpose — the site is live and processing orders — but the server-rendered PHP architecture adds hosting complexity and makes it harder to iterate on the frontend independently.

The multilingual setup works but is brittle. Laravel's localisation files are functional, not ergonomic. next-intl with structured JSON messages and middleware-based locale detection would have been cleaner and easier to hand off to a translator.

I also underestimated how much of the business would be custom quotes rather than catalogue purchases. The site is built around a product grid, but 70% of revenue comes through the contact form. If we redesigned today, the quote request flow would be the primary path, not an afterthought in the footer.

Need a multilingual storefront?

Multi-currency, multi-language, catalogue or quote-based — I've built it for my own business and I'll build it for yours.