diff --git a/public/images/hero.png b/public/images/hero.png new file mode 100644 index 0000000..1c60e22 Binary files /dev/null and b/public/images/hero.png differ diff --git a/public/images/logo.jpg b/public/images/logo.jpg new file mode 100644 index 0000000..a169205 Binary files /dev/null and b/public/images/logo.jpg differ diff --git a/src/app/(public)/about/page.tsx b/src/app/(public)/about/page.tsx new file mode 100644 index 0000000..163b1d1 --- /dev/null +++ b/src/app/(public)/about/page.tsx @@ -0,0 +1,24 @@ +import Section from "../../components/Section"; +import { company } from "../../lib/data"; + +export default function AboutPage() { + return ( +
+
+
+

Vision

+

{company.vision}

+
+
+

Mission

+

{company.mission}

+
+
+
+

Company

+

{company.about}

+

Source: Company profile

+
+
+ ); +} \ No newline at end of file diff --git a/src/app/(public)/companies/page.tsx b/src/app/(public)/companies/page.tsx new file mode 100644 index 0000000..6ed953b --- /dev/null +++ b/src/app/(public)/companies/page.tsx @@ -0,0 +1,17 @@ +import Section from "../../components/Section"; +import { groupCompanies } from "../../lib/data"; + +export default function CompaniesPage() { + return ( +
+
+ {groupCompanies.map((c, i) => ( +
+

{c.name}

+

{c.focus}

+
+ ))} +
+
+ ); +} \ No newline at end of file diff --git a/src/app/(public)/contact/page.tsx b/src/app/(public)/contact/page.tsx new file mode 100644 index 0000000..5b8e107 --- /dev/null +++ b/src/app/(public)/contact/page.tsx @@ -0,0 +1,26 @@ +"use client"; + +import Section from "../../components/Section"; +import { useState } from "react"; + +export default function ContactPage() { + const [sent, setSent] = useState(false); + return ( +
+ {!sent ? ( +
{e.preventDefault(); setSent(true);}}> + + + + +

This is a demo form. Hook your API or email service here.

+
+ ) : ( +
+

Thanks!

+

We‘ll be in touch shortly.

+
+ )} +
+ ); +} \ No newline at end of file diff --git a/src/app/(public)/distribution/page.tsx b/src/app/(public)/distribution/page.tsx new file mode 100644 index 0000000..9cfda35 --- /dev/null +++ b/src/app/(public)/distribution/page.tsx @@ -0,0 +1,19 @@ +import Section from "../../components/Section"; +import { channels } from "../../lib/data"; + +export default function DistributionPage() { + return ( +
+
+ {channels.map((c, i) => ( +
+

{c.name}

+
    + {c.items.map((it, idx) =>
  • {it}
  • )} +
+
+ ))} +
+
+ ); +} \ No newline at end of file diff --git a/src/app/(public)/founders/page.tsx b/src/app/(public)/founders/page.tsx new file mode 100644 index 0000000..e7e348c --- /dev/null +++ b/src/app/(public)/founders/page.tsx @@ -0,0 +1,18 @@ +import Section from "../../components/Section"; +import { founders } from "../../lib/data"; + +export default function FoundersPage() { + return ( +
+
+ {founders.map((f, i) => ( +
+

{f.name}

+

{f.role}

+

{f.bio}

+
+ ))} +
+
+ ); +} \ No newline at end of file diff --git a/src/app/(public)/future/page.tsx b/src/app/(public)/future/page.tsx new file mode 100644 index 0000000..e5e8f2d --- /dev/null +++ b/src/app/(public)/future/page.tsx @@ -0,0 +1,17 @@ +import Section from "../../components/Section"; +import { futurePlans } from "../../lib/data"; + +export default function FuturePage() { + return ( +
+
+ {futurePlans.map((p, i) => ( +
+

{p.title}

+ {p.details &&

{p.details}

} +
+ ))} +
+
+ ); +} \ No newline at end of file diff --git a/src/app/(public)/milestones/page.tsx b/src/app/(public)/milestones/page.tsx new file mode 100644 index 0000000..7128569 --- /dev/null +++ b/src/app/(public)/milestones/page.tsx @@ -0,0 +1,13 @@ +import Section from "../../components/Section"; +import Timeline from "../../components/Timeline"; +import { milestones } from "../../lib/data"; + +export default function MilestonesPage() { + return ( +
+
+ +
+
+ ); +} \ No newline at end of file diff --git a/src/app/(public)/performance/page.tsx b/src/app/(public)/performance/page.tsx new file mode 100644 index 0000000..497557d --- /dev/null +++ b/src/app/(public)/performance/page.tsx @@ -0,0 +1,39 @@ +"use client"; + +import Section from "../../components/Section"; +import { kpis } from "../../lib/data"; +import { useMemo } from "react"; + +export default function PerformancePage() { + const rows = useMemo(() => kpis.map(k => ({ + year: k.year, + sales: k.salesMillionBaht.toFixed(1), + note: k.note ?? "" + })), []); + + return ( +
+
+ + + + + + + + + + {rows.map((r) => ( + + + + + + ))} + +
YearSales (M ฿)Notes
{r.year}{r.sales}{r.note}
+
+

* 2024: Strategic shift to profitability; profit +2.5%.

+
+ ); +} \ No newline at end of file diff --git a/src/app/(public)/products/page.tsx b/src/app/(public)/products/page.tsx new file mode 100644 index 0000000..beb1719 --- /dev/null +++ b/src/app/(public)/products/page.tsx @@ -0,0 +1,12 @@ +import Section from "../../components/Section"; +import ProductGrid from "../../components/ProductGrid"; +import { products } from "../../lib/data"; + +export default function ProductsPage() { + return ( +
+ +

Note: This is a catalog overview — images, shades, and details can be added later.

+
+ ); +} \ No newline at end of file diff --git a/src/app/font/dbheavent/DBHeavent-Bold.woff2 b/src/app/font/dbheavent/DBHeavent-Bold.woff2 new file mode 100644 index 0000000..022e442 Binary files /dev/null and b/src/app/font/dbheavent/DBHeavent-Bold.woff2 differ diff --git a/src/app/font/dbheavent/DBHeavent-Regular.woff2 b/src/app/font/dbheavent/DBHeavent-Regular.woff2 new file mode 100644 index 0000000..022e442 Binary files /dev/null and b/src/app/font/dbheavent/DBHeavent-Regular.woff2 differ diff --git a/src/app/fonts.ts b/src/app/fonts.ts new file mode 100644 index 0000000..e69de29 diff --git a/src/app/lib/data.ts b/src/app/lib/data.ts new file mode 100644 index 0000000..90180ab --- /dev/null +++ b/src/app/lib/data.ts @@ -0,0 +1,89 @@ +export type KPI = { year: number; salesMillionBaht: number; note?: string }; +export type Milestone = { year: number; items: string[] }; +export type Founder = { name: string; role: string; bio: string }; +export type ChannelGroup = { name: string; items: string[] }; +export type Company = { name: string; focus: string }; +export type Product = { category: string; items: string[] }; +export type FuturePlan = { title: string; details?: string }; + +export const company = { + name: "Amrez Co., Ltd.", + tagline: "Counter-brand quality at an affordable price for Thai consumers.", + about: "Amrez is a Thai beauty & wellness company operating online-first, offering cosmetics, skincare, and supplements with counter-brand quality and accessible pricing.", + vision: "To be recognized for innovative, high-quality yet affordable products that meet customer needs while operating with good governance.", + mission: "Create and deliver innovative products at reasonable cost from Thai and international suppliers, ensuring top product quality and excellent customer service." +}; + +export const founders: Founder[] = [ + { + name: "Ms. Kratae Boonyaleung", + role: "Founder", + bio: "Born in Lampang, she won multiple Muay Thai and singing accolades, later becoming a popular Thai singer. She brings creativity and brand vision, aiming to make Kathy Cosmetics globally recognized." + }, + { + name: "Mr. Jirateep \"Toshi\" Panthi", + role: "Co‑Founder", + bio: "World Hip‑Hop Dance Champion and Thailand Ballroom champion. Former 316 Boy Band trainee. He choreographed for Ms. Kratae and co‑built the brand’s product strategy and operations." + } +]; + +export const milestones: Milestone[] = [ + { year: 2019, items: ["Company established", "Launched 'Kate’' supplement for skin glow"] }, + { year: 2020, items: ["Launched 'Kate’ Detox' for weight control & detox"] }, + { year: 2021, items: ["AMREZ Factory opened (Chiang Mai)", "First cosmetic '3B Cream Gold' launched", "Follow‑ups: Lip Golden, Lip Duo, Lip Minimatte"] }, + { year: 2023, items: ["AMREZ logo improved", "On Stage Powder launched", "Jelly Biotox (pre/probiotic) launched", "STARFACE (blush+contour+highlight) launched", "Established KATHY LABZ & KATHY SKIN", "Lip Juicy, Lip Glaze, Lip Light Minimatte V2, Lip Duo (new packaging)", "KARISTA, LAVIESTE, 4D Placenta Serum, Serum in Oil, Sunscreen, Lash & Brow Serum, Cleansing Oil"] }, + { year: 2024, items: ["Good Morning Powder (first light facial puffed powder)", "Women Probiotics (pre/probiotic blend)"] }, + { year: 2025, items: ["Lip Trio On Stage (Thailand’s first 3‑color lipstick, upcoming)"] } +]; + +export const kpis: KPI[] = [ + { year: 2019, salesMillionBaht: 12.2 }, + { year: 2020, salesMillionBaht: 78.9 }, + { year: 2021, salesMillionBaht: 157.6 }, + { year: 2022, salesMillionBaht: 539.9 }, + { year: 2023, salesMillionBaht: 700.8 }, + { year: 2024, salesMillionBaht: 485, note: "Management & strategy shift; profit +2.5%" }, + { year: 2025, salesMillionBaht: 1000 } +]; + +export const channels: ChannelGroup[] = [ + { name: "E‑commerce & Marketplace", items: ["Facebook", "LINE", "TikTok", "Shopee", "Lazada"] }, + { name: "Live Streaming", items: ["In‑house live", "MCN live‑streaming"] }, + { name: "Offline Retail", items: ["EVEANDBOY", "Beautium", "KIS", "Konvy (online & offline)"] }, + { name: "Convenience & Drug Stores", items: ["7‑Eleven", "Watsons", "Chain drug stores"] }, + { name: "Traditional Stores", items: ["Independent retailers"] } +]; + +export const groupCompanies: Company[] = [ + { name: "Amrez Co., Ltd.", focus: "Distributor of cosmetics, supplements, skincare" }, + { name: "Amerz Co., Ltd.", focus: "Manufacturing unit for cosmetics" }, + { name: "KT Entertainment Co., Ltd.", focus: "Concerts, shows, production house" }, + { name: "Kathy Labz Co., Ltd.", focus: "Owner/developer of supplements & skincare" }, + { name: "Mataranee Co., Ltd.", focus: "Belief/spiritual products" }, + { name: "KT Kids Co., Ltd.", focus: "Pet products business" }, + { name: "KT Trading", focus: "Local & international general trading" } +]; + +export const products: Product[] = [ + { category: "Lip", items: ["Lip Duo (Matte & Shine Fix)", "Lip Juicy (tint)", "Lip Glaze (oil treatment)", "Golden HYA Lip Serum", "Lip Trio (upcoming)"] }, + { category: "Face / Makeup", items: ["3B Cream Gold", "3B Cream Matte", "Onstage Perfect Skin Powder", "STARFACE Pro Makeup", "Fix Glow", "Makeup Remover"] }, + { category: "Eye & Brow", items: ["Dolly Eye Stick", "Superslim 2B Brow", "3B Brow", "4D Brow Lift", "Super Sharp Eyeliner", "Waterproof Gel Liner"] }, + { category: "Accessories", items: ["Lip Brush", "Mini Powder Brush", "Large Powder Brush", "Body Brush"] }, + { category: "Hair & Body", items: ["Hair Shadow Stick", "Body Oil"] }, + { category: "Food Supplement", items: ["KARISTA", "LAVIESTE", "Biotox Jelly", "Women Probiotics (upcoming)"] }, + { category: "Skincare", items: ["4D Placenta Serum", "Hydrating 4D HYA Oil in Serum", "HYA Aqua Sunscreen SPF50+ PA++++", "Lash & Brow Booster Serum", "Cleansing Oil", "Bright Up Underarm & Body Cream", "Bright Secret Whitening Underarm Cream"] } +]; + +export const futurePlans: FuturePlan[] = [ + { title: "Export Business", details: "China, India, Dubai" }, + { title: "Global Artist", details: "Elevate Ms. Kratae internationally" }, + { title: "Fulfillment & Warehouse Services" }, + { title: "Belief‑based Business (Matarenee)" }, + { title: "School of Dance" }, + { title: "School of Live Streaming & Affiliate Marketing" }, + { title: "Multinational Networking" }, + { title: "AI‑Assisted Marketing Services" }, + { title: "Real Estate Ventures" }, + { title: "International Trading (Hong Kong Office)" }, + { title: "Holding Company Formation" } +]; \ No newline at end of file