Skip to content

Portfolio

Fixing Solutions That Build Strong Fasteners

  • JNM Fixing — Portfolio Page
  • Production-ready, single-file React component styled with Tailwind + shadcn/ui.
  • Drop into a Next.js or Vite-React app. Replace placeholder images/links with real assets.
    */

const INDUSTRIES = [
{ value: “all”, label: “All Industries”, icon: Globe },
{ value: “Infrastructure”, label: “Infrastructure”, icon: Construction },
{ value: “Commercial”, label: “Commercial”, icon: Building2 },
{ value: “Industrial”, label: “Industrial”, icon: Factory },
{ value: “Residential”, label: “Residential”, icon: Wrench },
];

const PRODUCT_FILTERS = [
“Wedge Anchors”,
“Drop-in Anchors”,
“Chemical Anchors”,
“Spring Nuts”,
“Threaded Rods”,
“Dispenser Guns”,
“Sausage Guns”,
“SS 316 Anchors”,
];

const CLIENTS = [
{ name: “DMRC”, hint: “Delhi Metro Rail Corporation” },
{ name: “L&T”, hint: “Larsen & Toubro” },
{ name: “DLF”, hint: “DLF Ltd.” },
{ name: “Tata Projects”, hint: “Engineering & Construction” },
{ name: “NBCC”, hint: “National Buildings Construction Corporation” },
];

const CERTS = [
{ label: “ISO 9001:2015”, desc: “Quality Management”, icon: ShieldCheck },
{ label: “MSME Registered”, desc: “Govt. of India”, icon: Award },
{ label: “GST Registered”, desc: “Compliant”, icon: Award },
];

function StatPill({ k, v }: { k: string; v: string }) {
return (
{k}: {v}
);
}

function ProjectCard({ project }: { project: (typeof PROJECTS)[number] }) {
return (

{project.title}{project.industry}{project.year} {project.title} {project.location} {project.productTags.map((t) => ( {t} ))} {project.metrics.map((m) => ( ))} View details

);
}

function ClientMarquee() {
return (

{CLIENTS.map((c) => (

{c.name}

{c.hint}

))}

);
}

function Certifications() {
return (

{CERTS.map((c) => (

{c.label}

{c.desc}

))}

);
}

export default function PortfolioPage() {
const [industry, setIndustry] = useState(“all”);
const [q, setQ] = useState(“”);
const [product, setProduct] = useState(“all”);

const filtered = useMemo(() => {
return PROJECTS.filter((p) => {
const byIndustry = industry === “all” || p.industry === industry;
const byProduct = product === “all” || p.productTags.includes(product);
const byQ = q.trim()
? [p.title, p.location, p.productTags.join(” “), p.industry]
.join(” “)
.toLowerCase()
.includes(q.toLowerCase())
: true;
return byIndustry && byProduct && byQ;
});
}, [industry, q, product]);

return (

{/* SEO / Structured Data */}

Your Attractive Heading

Marketing Strategy

Lorem ipsum dolor sit amet, consectetur adipiscing, luctus ullamcorper mattis.

Omnichannel Optimization

Lorem ipsum dolor sit amet, consectetur adipiscing, luctus ullamcorper mattis.

Brand Positioning Map

Lorem ipsum dolor sit amet, consectetur adipiscing, luctus ullamcorper mattis.

Food Magazine Ad

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis, pulvinar dapibus. Whatever shabby chic gatekeep flannel echo park, pinterest semiotics. Plaid kickstarter squid, swag street art yr pabst distillery blue bottle dreamcatcher ramps.

“Their expertise and their data-driven approach allowed us to optimize our campaigns for maximum impact.”

MARIA STEVENS

Social Media Management

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis.

Influencer Marketing

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Ut elit tellus, luctus nec ullamcorper mattis.

Let’s work together on your next marketing project

Review My Order

0

Subtotal