Client Work · Live · Corporate website
Bahati Commodities
A static Astro site for Bahati Commodities covering its Advisory, Food & Beverage, Chemical & Mining and Hospitality divisions, with a per-division enquiry form and an "Ask Bahati" assistant, hosted on AWS Amplify and defined in CDK.
Stack
Astro · AWS Amplify Hosting · AWS CDK · AWS Lambda · Amazon SES · Amazon DynamoDB · Amazon Bedrock · Amazon Route 53

The problem
Bahati, a supply-chain and commodities trading house founded in Sandton in 2002, was running on a GoDaddy Website Builder page with thin stock imagery, one paragraph per division, no enquiry routing, and three bank account numbers published on its contact page.
The goal
Give Bahati a credible corporate site that wins trust with manufacturers, mines, hospitality buyers and cross-border partners, routes every visitor to the right division with an enquiry form or WhatsApp, and is cheap to run on its own domain.

Engineering decision
Served the enquiry form and the assistant from the site’s own origin: Amplify rewrites proxy /api/* to Lambda function URLs, so the CSP stays at connect-src 'self' with no CORS, and a DynamoDB per-IP limit, a honeypot and a body-size cap protect the public endpoints.
Tradeoff
The assistant answers from the site’s own text bundled into its prompt rather than a vector store, so content changes need a redeploy of the function, a fair trade for a 13-page site that changes rarely.
Insights
Removing the published bank details was a security fix, not a design choice: the assistant is also told never to give them out and to warn about payment-change fraud.
Routing each enquiry by division, with WhatsApp always one tap away, matched how buyers in this trade actually make first contact.
