first commit
This commit is contained in:
BIN
public/images/hero.png
Normal file
BIN
public/images/hero.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 792 KiB |
BIN
public/images/logo.jpg
Normal file
BIN
public/images/logo.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
24
src/app/(public)/about/page.tsx
Normal file
24
src/app/(public)/about/page.tsx
Normal file
@@ -0,0 +1,24 @@
|
||||
import Section from "../../components/Section";
|
||||
import { company } from "../../lib/data";
|
||||
|
||||
export default function AboutPage() {
|
||||
return (
|
||||
<Section title="About AMREZ" subtitle={company.tagline}>
|
||||
<div className="grid md:grid-cols-2 gap-6">
|
||||
<div className="card">
|
||||
<h3 className="text-xl font-semibold">Vision</h3>
|
||||
<p className="text-white/80 mt-3">{company.vision}</p>
|
||||
</div>
|
||||
<div className="card">
|
||||
<h3 className="text-xl font-semibold">Mission</h3>
|
||||
<p className="text-white/80 mt-3">{company.mission}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div className="card mt-6">
|
||||
<h3 className="text-xl font-semibold">Company</h3>
|
||||
<p className="text-white/80 mt-3">{company.about}</p>
|
||||
<p className="text-white/60 mt-3 text-sm">Source: Company profile</p>
|
||||
</div>
|
||||
</Section>
|
||||
);
|
||||
}
|
||||
17
src/app/(public)/companies/page.tsx
Normal file
17
src/app/(public)/companies/page.tsx
Normal file
@@ -0,0 +1,17 @@
|
||||
import Section from "../../components/Section";
|
||||
import { groupCompanies } from "../../lib/data";
|
||||
|
||||
export default function CompaniesPage() {
|
||||
return (
|
||||
<Section title="Current Group of Companies">
|
||||
<div className="grid md:grid-cols-2 gap-6">
|
||||
{groupCompanies.map((c, i) => (
|
||||
<div key={i} className="card">
|
||||
<h3 className="text-lg font-semibold">{c.name}</h3>
|
||||
<p className="text-white/70 mt-2">{c.focus}</p>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</Section>
|
||||
);
|
||||
}
|
||||
26
src/app/(public)/contact/page.tsx
Normal file
26
src/app/(public)/contact/page.tsx
Normal file
@@ -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 (
|
||||
<Section title="Contact Us" subtitle="Leave your info and we’ll get back to you">
|
||||
{!sent ? (
|
||||
<form className="card grid gap-4 max-w-xl" onSubmit={(e)=>{e.preventDefault(); setSent(true);}}>
|
||||
<input required placeholder="Name" className="px-4 py-3 rounded-xl bg-white/5 border border-white/10" />
|
||||
<input required type="email" placeholder="Email" className="px-4 py-3 rounded-xl bg-white/5 border border-white/10" />
|
||||
<textarea required placeholder="Message" rows={5} className="px-4 py-3 rounded-xl bg-white/5 border border-white/10"></textarea>
|
||||
<button className="px-5 py-3 rounded-full bg-white text-black font-semibold w-fit">Send</button>
|
||||
<p className="text-white/50 text-sm">This is a demo form. Hook your API or email service here.</p>
|
||||
</form>
|
||||
) : (
|
||||
<div className="card max-w-xl">
|
||||
<h3 className="text-xl font-semibold">Thanks!</h3>
|
||||
<p className="text-white/80 mt-2">We‘ll be in touch shortly.</p>
|
||||
</div>
|
||||
)}
|
||||
</Section>
|
||||
);
|
||||
}
|
||||
19
src/app/(public)/distribution/page.tsx
Normal file
19
src/app/(public)/distribution/page.tsx
Normal file
@@ -0,0 +1,19 @@
|
||||
import Section from "../../components/Section";
|
||||
import { channels } from "../../lib/data";
|
||||
|
||||
export default function DistributionPage() {
|
||||
return (
|
||||
<Section title="Channels of Distribution" subtitle="Online, offline, convenience & drug stores, and traditional retail">
|
||||
<div className="grid md:grid-cols-2 gap-6">
|
||||
{channels.map((c, i) => (
|
||||
<div key={i} className="card">
|
||||
<h3 className="text-xl font-semibold">{c.name}</h3>
|
||||
<ul className="mt-3 grid sm:grid-cols-2 gap-2 text-white/80">
|
||||
{c.items.map((it, idx) => <li key={idx} className="px-3 py-2 bg-white/5 rounded-lg">{it}</li>)}
|
||||
</ul>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</Section>
|
||||
);
|
||||
}
|
||||
18
src/app/(public)/founders/page.tsx
Normal file
18
src/app/(public)/founders/page.tsx
Normal file
@@ -0,0 +1,18 @@
|
||||
import Section from "../../components/Section";
|
||||
import { founders } from "../../lib/data";
|
||||
|
||||
export default function FoundersPage() {
|
||||
return (
|
||||
<Section title="Meet the Founders">
|
||||
<div className="grid md:grid-cols-2 gap-6">
|
||||
{founders.map((f, i) => (
|
||||
<div key={i} className="card">
|
||||
<h3 className="text-xl font-semibold">{f.name}</h3>
|
||||
<p className="text-white/60 mt-1">{f.role}</p>
|
||||
<p className="text-white/80 mt-3">{f.bio}</p>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</Section>
|
||||
);
|
||||
}
|
||||
17
src/app/(public)/future/page.tsx
Normal file
17
src/app/(public)/future/page.tsx
Normal file
@@ -0,0 +1,17 @@
|
||||
import Section from "../../components/Section";
|
||||
import { futurePlans } from "../../lib/data";
|
||||
|
||||
export default function FuturePage() {
|
||||
return (
|
||||
<Section title="Future of the Company" subtitle="Expansion roadmap 2025–2026 and beyond">
|
||||
<div className="grid md:grid-cols-2 gap-6">
|
||||
{futurePlans.map((p, i) => (
|
||||
<div key={i} className="card">
|
||||
<h3 className="text-lg font-semibold">{p.title}</h3>
|
||||
{p.details && <p className="text-white/70 mt-2">{p.details}</p>}
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</Section>
|
||||
);
|
||||
}
|
||||
13
src/app/(public)/milestones/page.tsx
Normal file
13
src/app/(public)/milestones/page.tsx
Normal file
@@ -0,0 +1,13 @@
|
||||
import Section from "../../components/Section";
|
||||
import Timeline from "../../components/Timeline";
|
||||
import { milestones } from "../../lib/data";
|
||||
|
||||
export default function MilestonesPage() {
|
||||
return (
|
||||
<Section title="Milestones">
|
||||
<div className="card">
|
||||
<Timeline entries={milestones} />
|
||||
</div>
|
||||
</Section>
|
||||
);
|
||||
}
|
||||
39
src/app/(public)/performance/page.tsx
Normal file
39
src/app/(public)/performance/page.tsx
Normal file
@@ -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 (
|
||||
<Section title="Historical Performance" subtitle="Sales (Million Baht)">
|
||||
<div className="overflow-auto">
|
||||
<table className="min-w-[480px] w-full text-left border-separate border-spacing-y-2">
|
||||
<thead>
|
||||
<tr className="text-white/70">
|
||||
<th className="px-3 py-2">Year</th>
|
||||
<th className="px-3 py-2">Sales (M ฿)</th>
|
||||
<th className="px-3 py-2">Notes</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{rows.map((r) => (
|
||||
<tr key={r.year} className="bg-white/5">
|
||||
<td className="px-3 py-2 rounded-l-lg font-semibold">{r.year}</td>
|
||||
<td className="px-3 py-2">{r.sales}</td>
|
||||
<td className="px-3 py-2 rounded-r-lg text-white/70">{r.note}</td>
|
||||
</tr>
|
||||
))}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
<p className="text-white/60 mt-6 text-sm">* 2024: Strategic shift to profitability; profit +2.5%.</p>
|
||||
</Section>
|
||||
);
|
||||
}
|
||||
12
src/app/(public)/products/page.tsx
Normal file
12
src/app/(public)/products/page.tsx
Normal file
@@ -0,0 +1,12 @@
|
||||
import Section from "../../components/Section";
|
||||
import ProductGrid from "../../components/ProductGrid";
|
||||
import { products } from "../../lib/data";
|
||||
|
||||
export default function ProductsPage() {
|
||||
return (
|
||||
<Section title="Products">
|
||||
<ProductGrid products={products} />
|
||||
<p className="text-white/60 mt-6 text-sm">Note: This is a catalog overview — images, shades, and details can be added later.</p>
|
||||
</Section>
|
||||
);
|
||||
}
|
||||
BIN
src/app/font/dbheavent/DBHeavent-Bold.woff2
Normal file
BIN
src/app/font/dbheavent/DBHeavent-Bold.woff2
Normal file
Binary file not shown.
BIN
src/app/font/dbheavent/DBHeavent-Regular.woff2
Normal file
BIN
src/app/font/dbheavent/DBHeavent-Regular.woff2
Normal file
Binary file not shown.
0
src/app/fonts.ts
Normal file
0
src/app/fonts.ts
Normal file
89
src/app/lib/data.ts
Normal file
89
src/app/lib/data.ts
Normal file
@@ -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" }
|
||||
];
|
||||
Reference in New Issue
Block a user