Case Study
Amani CRM — From Spreadsheets to Production System in 30 Days
How TekkiSolutions built a full production management CRM for a Hanoi gift manufacturer using AI-assisted development — 14 pages, 16 API endpoints, live in 30 days.
Client
Amani Gift Box
Industry
Gift Manufacturing (B2B)
Timeline
30 days (15 sessions)
Date
March–April 2026
The Challenge
Amani Gift Box is a custom gift manufacturing company in Hanoi that makes artisan gift boxes for corporate clients. Their operation involves tracking raw materials, assigning production batches to staff, running quality control, and managing customer deliveries — all while maintaining a product catalog with dozens of items, each with its own bill of materials. Before the CRM, the entire operation ran on Excel spreadsheets and Zalo group chats. Orders fell through the cracks, inventory counts were always wrong, and nobody knew the status of a batch without asking the floor manager. The owner spent hours every week reconciling spreadsheets instead of growing the business.
Why Off-the-Shelf Software Did Not Fit
Amani evaluated several existing tools before reaching out to TekkiSolutions. Generic CRMs like HubSpot and Zoho handled customer contacts but had no concept of production stages, bill of materials, or batch tracking. Manufacturing-focused software like Odoo and SAP Business One was designed for factories with hundreds of employees and required months of configuration, training, and ongoing subscription fees that exceeded Amani's annual software budget.
The core problem: Amani needed a system that understood their specific workflow. Orders don't just go from "new" to "done" — they move through seven distinct stages, each with different people responsible. Raw materials need to be tracked at decimal precision because gift box components are measured in fractions. And the production floor staff needed a tablet interface simple enough to use without training.
No off-the-shelf product offered all three.
What We Built
Amani CRM is a full production management system with 14 operational pages and 16 backend API endpoints. Every feature was built because it solved a specific problem Amani had — not because it looked good in a feature list.
Order Management tracks every order through a 7-stage workflow: pending, new, assigned, work-in-progress, quality control, awaiting customer confirmation, finished. Each stage has clear ownership. The production manager assigns orders to staff, staff update progress as they work, and the system sends the order through QC before marking it complete. No order falls through the cracks because every order has a visible status and an assigned owner.
The Production Floor Display (KDS) is a dedicated tablet interface for staff on the production floor. They log in with a 4-digit PIN — no email, no password. They see their assigned batches, claim work, track progress with visual rings, and hear audio feedback when a stage completes. The KDS eliminated the daily "what should I work on next" conversation that used to eat 30 minutes every morning.
Inventory and Purchasing provides real-time stock tracking with DECIMAL(10,4) precision — critical for components measured in fractions of a unit. When inventory drops below a configurable threshold, the system flags it with a red badge in the sidebar navigation. Purchase orders follow their own workflow (draft, sent, received, cancelled) and receiving a PO automatically increments the relevant inventory items. No more manual stock updates.
Bill of Materials (BOM) gives each product a master component list with exact quantities. When the master BOM changes — a common occurrence in custom gift manufacturing — the system propagates the update to all active orders. Cost of goods sold is pre-computed automatically at order completion using a three-tier fallback: product-level cost, latest purchase order unit price, or catalog price.
The Analytics Dashboard replaced the weekly spreadsheet reconciliation. Six chart types — orders over time, revenue summary, revenue by customer, staff leaderboard, order status funnel, and purchase order aging — all filterable by 7-day, 30-day, or 90-day windows. The owner now opens one page on Monday morning and sees the entire business.
PDF Invoice Export generates branded invoices in Amani's teal-and-gold color scheme, on A4 paper, ready to send to corporate clients. No more copying order details into a Word template.
The Supplier and Purchase Order System
One module deserves its own section because it demonstrates the depth of what AI-assisted development makes possible in a short timeline.
Amani works with multiple suppliers for different raw materials. Before the CRM, supplier information lived in the owner's phone contacts, and purchase orders were sent via Zalo messages with no tracking.
We built a full supplier management module with CRUD operations, linked to products via a preferred supplier field. Purchase orders are auto-numbered (PO-2026-0001), follow a state machine (draft → sent → received → cancelled), and receiving a PO automatically updates inventory quantities.
The PO Aging card on the analytics dashboard shows which purchase orders have been outstanding for too long — a feature the owner didn't ask for but now calls the most useful part of the system.
This entire module — supplier CRUD, purchase order workflow, inventory integration, analytics card — went from concept to production in a single working session.
Production-Grade From Day One
This is not a prototype. Every architectural decision was made for long-term maintainability.
The frontend runs Next.js 14 with TypeScript in strict mode, Tailwind CSS for styling, and Shadcn UI (built on Radix primitives) for components. State management uses Zustand. Charts use Recharts.
The backend is Python FastAPI with SQLAlchemy 2.0 async ORM and asyncpg for PostgreSQL connections. The database runs on Neon PostgreSQL in production — a serverless Postgres provider that scales automatically.
File storage (product images) goes through Supabase Storage with service_role authentication and public URL serving.
The frontend deploys on Vercel. The backend deploys on Railway. CORS is configured with an environment-based allowlist — not a wildcard.
Security is built in from the start: JWT authentication with bcrypt password hashing, role-based access control for three user types (Admin, Staff, Auditor), PIN-based login for production floor staff with rate limiting (five attempts per 15-minute window), and Bearer token requirements on all file upload routes.
The entire system is bilingual — Vietnamese as the primary language, English toggle available. We translated every toast notification, error message, navigation label, and form field by hand. Nothing is machine-generated.
TypeScript compilation: zero errors. Next.js build: clean. Every session ended with a verified build before any code was committed.
The Custom Design System
Amani CRM doesn't look like a generic SaaS product. It looks like it belongs to Amani Gift Box.
The design system uses Artisan Teal (#0F766E) and Gift Gold (#B45309) as the primary brand colors — drawn from Amani's existing packaging and marketing materials. Headings use Playfair Display for a premium feel; body text uses Plus Jakarta Sans for readability.
Shadows use warm gray (rgba(28,25,23,...)) instead of the cold blue-gray that most component libraries default to. Dark mode uses a warm dark palette built with next-themes.
The sidebar navigation has a collapsible design for tablet use on the production floor. Low-stock alerts appear as a red badge count next to the inventory icon — visible without clicking into any page.
Every screen was designed mobile-first, then scaled up. The KDS page in particular was optimized for a 10-inch tablet held in landscape orientation, because that's what sits on the production floor counter.
How 30 Days Was Possible
Fifteen working sessions across roughly 30 calendar days. From nothing — no database, no design system, no code — to a production system handling real orders.
Traditional development would take 6–12 months for a system of this scope. Not because developers are slow, but because coordination overhead — design reviews, sprint planning, communication gaps between frontend and backend teams, revision cycles — stretches every task.
AI-assisted development compressed the build cycle without compressing the thinking. Every architectural decision — the 7-stage order FSM, the BOM propagation logic, the three-tier COGS fallback, the PIN rate-limiting — came from deeply understanding Amani's operations. AI handled the implementation velocity. The business understanding came from conversation.
Each session followed a structured process: plan the sub-tasks, implement in parallel where possible, run a three-round review (correctness, architecture, polish), and gate everything behind a clean TypeScript build. No shortcuts. No "we'll fix it later."
The result is a system the Amani team uses every day — not a demo that looked good in a presentation and gathered dust.
What the Owner Says
The owner's reaction after the first week of use: "I used to spend two hours every Monday reconciling spreadsheets. Now I open one page and everything is there."
The production floor staff adopted the KDS within a day. The PIN login removed the friction of email-and-password authentication for people who work with their hands. The audio feedback on batch completion became a motivational signal — the team started competing to hear the chime more often.
The supplier and PO system eliminated the Zalo-based procurement workflow entirely. Purchase orders now have a paper trail, inventory updates happen automatically, and the PO Aging card catches overdue orders before they become supply chain problems.
Results
30
Days to production
14
Operational pages
16
API endpoints
0
TypeScript errors
7
Order workflow stages
6
Analytics chart types
15
Working sessions
2h→0
Weekly reconciliation time
Tech Stack

Built by Tekki
Dat Bach Gia Tien · AI consultant and founder of TekkiSolutions · Hanoi, Vietnam
Your business has the same problem Amani had — operations running on spreadsheets and group chats. A free Marketing Assessment finds the specific operational gaps where a custom system saves you the most time and money.