/* global React */ /* ---------------- Work / Case Studies ---------------- */ function Work() { const [filter, setFilter] = React.useState("All"); const filters = ["All", "Product", "Web", "Brand", "App"]; const cases = [ { id: "bhealth", span: "span-7", viz: "viz-bhealth", img: "assets/portfolio-bhealth.png", mock: false, tag: "HEALTHTECH · 2023–2024", title: "bHealth EHR", industry: "Electronic Health Records", desc: "End-to-end EHR platform powering 50+ diagnostic centers, 120+ doctors and 200K+ users in Bangladesh.", chips: ["React Native", "Next.js", "Node.js", "Firebase"], cat: ["Product", "App"], stat: "200K" }, { id: "geeoo", span: "span-5", viz: "viz-geeoo", img: "assets/portfolio-geeoo.png", tag: "E-COMMERCE · JAN–JUN 2023", title: "GEEOO", industry: "Electronics Distribution", desc: "A merchandising-first commerce stack for the country's largest electronics distributor.", chips: ["UI/UX", "Interface", "System Design"], cat: ["Product", "Web"], stat: "GO" }, { id: "kabab", span: "span-4", viz: "viz-kabab", img: "assets/portfolio-kabab.png", tag: "F&B · 2024–RUNNING", title: "Kabab Factory", industry: "Restaurant Group", desc: "Branding plus a social-integrated ordering experience for the country's fastest-growing kabab chain.", chips: ["Brand", "Web", "Social"], cat: ["Brand", "Web"], stat: "KF" }, { id: "flipper", span: "span-4", viz: "viz-flipper", img: "assets/portfolio-flipper.png", tag: "RE-COMMERCE", title: "Flipper", industry: "Refurbished Electronics", desc: "A trust-first interface for buying and trading certified pre-owned electronics.", chips: ["UI/UX", "Website", "System"], cat: ["Product", "Web"], stat: "01" }, { id: "malique", span: "span-4", viz: "viz-malique", img: "assets/portfolio-malique.png", tag: "NON-PROFIT · 2026", title: "M A Malique Foundation", industry: "NGO · Sylhet", desc: "Strategy, identity and digital footprint for a regional foundation working on rural welfare.", chips: ["Strategy", "Brand", "Web"], cat: ["Brand", "Web"], stat: "NGO" }, { id: "baycsr", span: "span-7", viz: "viz-baycsr", img: "assets/portfolio-baycsr.png", mock: false, tag: "CSR · 2024–RUNNING", title: "Bay CSR", industry: "Corporate Social Responsibility", desc: "Social content strategy and visual storytelling for Bay Group's CSR initiatives across education, health and women's empowerment.", chips: ["Brand", "Social", "Content"], cat: ["Brand"], stat: "BAY" }, { id: "exs", span: "span-5", viz: "viz-exs", img: "assets/portfolio-exs.png", mock: false, tag: "FMCG · 2024–RUNNING", title: "EXS Condoms", industry: "Consumer Goods", desc: "Product marketing and visual content for EXS's Bangladesh launch — bold, expressive creative built around the 'Express Yourself' brand platform.", chips: ["Brand", "Social", "Content"], cat: ["Brand"], stat: "EXS" }, ]; const visible = filter === "All" ? cases : cases.filter((c) => c.cat.includes(filter)); return (
Selected work · 2020 → now

Work that shipped, in markets that matter.

{filters.map((f) => ( ))}
{visible.map((c) => (
{c.img && {c.title}/} {c.img &&
}
{c.mock && !c.img && (
)}
{c.stat}
{c.tag}

{c.title}

{c.industry}

{c.desc}

{c.chips.map((ch) => {ch})}
))}
See the full portfolio
); } function ArrowSm2() { return ( ); } /* ---------------- Process ---------------- */ function Process() { const steps = [ { n: "01", title: "Discover", desc: "We start with research. Stakeholders, users, competitors, business model — until the brief is sharper than when it arrived.", items: ["Stakeholder interviews", "Competitive audit", "User research", "Opportunity map"] }, { n: "02", title: "Define", desc: "Strategy turns into shape. Information architecture, user flows, brand pillars, and a measurable success spec.", items: ["IA & user flows", "Brand strategy", "Success metrics", "Roadmap"] }, { n: "03", title: "Design", desc: "Wireframes harden into a design system. Every decision documented so engineering can move at full speed.", items: ["Wireframes", "Design system", "Hi-fi screens", "Prototyping"] }, { n: "04", title: "Deploy", desc: "Engineering ships. We pair with your team or run the whole stack — and stay after launch to grow what we built.", items: ["Full-stack build", "QA & launch", "Analytics", "Iterate & scale"] }, ]; return (

A four-act operating system for shipping.

The process

Engagements run 3–5 months on average, sized between $10K–$40K+. Same operating system, every time, regardless of scope.

{steps.map((s) => (
{s.n}

{s.title}

{s.desc}

    {s.items.map((it) =>
  • {it}
  • )}
))}
); } /* ---------------- Client Ticker ---------------- */ function ClientTicker() { const [active, setActive] = React.useState(null); const ref = React.useRef(null); React.useEffect(() => { const io = new IntersectionObserver( ([entry]) => { if (entry.isIntersecting) { ref.current.classList.add("ticker-visible"); ref.current.querySelector(".ticker-outer").classList.add("ticker-visible"); } }, { threshold: 0.2 } ); if (ref.current) io.observe(ref.current); return () => io.disconnect(); }, []); const clients = [ { name: "Bay CSR", logo: "assets/clients/bay-csr.png" }, { name: "Nagad", logo: "assets/clients/nagad.png" }, { name: "Geeoo", logo: "assets/clients/geeoo.png" }, { name: "Valerie Taylor", logo: "assets/clients/valerie-taylor.png" }, { name: "Kabab Factory", logo: "assets/clients/kabab-factory.png" }, { name: "MA Malique", logo: "assets/clients/ma-malique.png" }, { name: "Give Us A Lift", logo: "assets/clients/give-us-a-lift.png" }, { name: "BNP", logo: "assets/clients/bnp.png" }, { name: "SchoolEdge", logo: "assets/clients/schooledge.png" }, { name: "Kenda", logo: "assets/clients/kenda.png" }, { name: "Neer Resort", logo: "assets/clients/neer-resort.png" }, { name: "BCSIR", logo: "assets/clients/bcsir.png" }, { name: "Flipper", logo: "assets/clients/flipper.png" }, { name: "Sharif Group", logo: "assets/clients/sharif-group.png" }, { name: "Hi-Speed", logo: "assets/clients/hi-speed.png" }, { name: "iQQra", logo: "assets/clients/iqqra.png" }, ]; const track = [...clients, ...clients]; return (
Our Happy Clients
{track.map((c, i) => (
setActive(active === i ? null : i)} > {c.name}
))}
); } /* ---------------- Capabilities ---------------- */ function Capabilities() { const groups = [ { n: "A", title: "Branding & Identity", pills: ["Brand research", "Architecture", "Naming", "Identity guidelines", "Rebranding", "Marketing collateral"] }, { n: "B", title: "UI/UX & Product", pills: ["Competitive benchmarking", "Customer research", "User flows", "Wireframes", "Design systems", "Prototyping"] }, { n: "C", title: "Digital Experience", pills: ["Promo video", "2D / 3D illustration", "Motion design", "AR & VR", "Brand films", "Social systems"] }, { n: "D", title: "Engineering", pills: ["Websites", "Webflow / WordPress", "Headless CMS", "Front-end", "Back-end", "Full-stack apps", "QA"] }, ]; return (

One studio, four deep stacks.

Pick a single discipline or commission the whole studio. We've engineered our workflow so each capability compounds the others — research informs design, design informs engineering, engineering informs growth.

{groups.map((g) => (
STACK · {g.n} {String(g.pills.length).padStart(2, "0")} capabilities

{g.title}

{g.pills.map((p) => {p})}
))}
); } /* ---------------- Big wordmark band ---------------- */ function BigMark() { return (
Grabsoft Digital
); } /* ---------------- Contact ---------------- */ function Contact() { return (
Start a project · Q3 ’26 open

Let's build the next good one, together.

Start the conversation

Engagements typically run $10K–$40K+ over 3–5 months. We'll reply within one business day with a short questionnaire and a 30-minute intro call.

Studio House No. 6, 3rd Lane,
Kalabagan, Dhaka, Bangladesh
Write grabsoftdigital@gmail.com
Call +880 176 3734 883
Hours · GMT+6 Sun–Thu, 10:00 → 19:00
); } function ArrowLgInline() { return ( ); } /* ---------------- Footer ---------------- */ function Footer() { return ( ); } window.Work = Work; window.ClientTicker = ClientTicker; window.Process = Process; window.Capabilities = Capabilities; window.BigMark = BigMark; window.Contact = Contact; window.Footer = Footer;