Dana Steel Factory
- Client
- Dana Steel Factory
- Industry
- Manufacturing & industrial e-commerce
- Year
- 2025
A manufacturer site and ordering system for a coated steel factory in Adama: PPGI, GI, roof tiles and accessories, with quote requests, a configurable order builder, customer accounts and a full admin back office.
52
Tables behind the ordering system
3
Buyer types served: builders, contractors, wholesalers
0
Developer involvement to change site content
What it covers
- Product catalogue by specification
- Quote requests
- Order builder & checkout
- Customer accounts & order history
- Admin dashboard
- Content & page-text management
- Blog & FAQ
- Messages & enquiries
Selling steel is not selling shoes
Coated steel is bought by specification: gauge, coating, RAL colour, length and quantity, and the price follows the specification rather than a fixed SKU. The ordering flow is a configurator that produces a quotable order, not a shopping cart with a fixed price.
Buyers who are not consumers
The customers are builders, contractors and wholesalers. They come back, they order in volume, and they need their history. Accounts carry past orders and reorder, and the request-a-quote path exists alongside direct ordering for the cases that need a human.
Everything the factory changes itself
Products, pricing, page text, logos, FAQ, blog, company details and business settings are all editable from the dashboard, alongside customers, orders and messages. The site does not need a developer to keep it current.
How it was built
- Framework
SvelteKit
Server load functions, form actions and endpoints; SSR by default.
Svelte 5
Runes for reactivity ($state, $derived, $effect).
- Language
TypeScript
Strict mode across app and server code.
- Data
MySQL
Primary datastore.
Drizzle Kit
Committed SQL migrations rather than push-to-prod diffing.
Drizzle ORM
Typed schema and queries, with migrations generated from the schema.
- Auth
Better Auth
Session-based auth with server-side verification.
- Forms
Superforms
Progressive-enhancement forms with server-side validation.
Zod
One schema validating both client and server.
- UI
Tipex
Rich-text editor for CMS content.
Lucide
Icon set.
TanStack Table
Sorting, filtering and pagination for admin tables.
Bits UI
Headless primitives behind the component library.
Chart.js
Reporting charts.
Embla
Carousels.
Dark mode
System-aware theme switching.
Tailwind CSS
Utility-first styling with a project design token layer.
- Payments
Chapa
Ethiopian payment gateway.
- AI
Google Gemini
Shopping assistant answering against the live catalogue.
- i18n
Paraglide i18n
Compiled translations, English and Amharic.
- Infrastructure
Client image compression
Uploads compressed in the browser before hitting the server.
Nodemailer
Transactional email over SMTP.
Inside the system