Myanmar Software Engineers (MMSWE) — a community platform showcasing Myanmar software engineers with profile listings and blog functionality. Static site deployed to GitHub Pages at mmswe.com.
- Framework: Next.js 16.1.6 (App Router, TypeScript, static export)
- Package Manager: Bun (primary)
- Styling: Tailwind CSS + DaisyUI + Sass
- Content: Contentlayer with MDX (profiles and blogs)
- Animation: Motion (formerly Framer Motion), Three.js / React Three Fiber
- Path alias:
@/*→./src/*
bun install # Install dependencies
bun dev --port 3333 # Dev server (port 3333)
bun run build # Build static site (output: ./out)
bun run serve # Serve static build locally
bun run lint # ESLint
bun run content:build # Build contentlayer content
bun run commit # Interactive gitmoji commit helpersrc/
app/ # Next.js App Router pages (blog, profile, contact-us)
components/ # Reusable React components (Animate, Common, Profile, Ui)
config/ # App configuration
data/ # Static data (animation variants, icon list)
hooks/ # Custom React hooks
styles/ # Global styles (SCSS)
utils/ # Utilities (profileHelper.ts for filtering/search)
content/
profile/ # Developer profiles (.mdx files)
blog/ # Blog posts (.mdx files)
Profile (content/profile/*.mdx):
name: string (required)
description: string
tags: string[] # Technology tags
image: string # GitHub avatar URLBlog (content/blog/*.mdx):
title: string (required)
description: string
date: date (required)
published: boolean (default: true)Uses gitmoji commits enforced by commitlint + Husky. Format: :emoji: type(scope): message
Key types:
:fire: build(profile): add <name> profile— new profiles:beers: build(blog): add <name> blog— new blogs:sparkles: feat: <description>— new features:bug: fix: <description>— bug fixes:lipstick: style: <description>— UI/UX changes:recycle: refactor: <description>— refactoring
When localizing hero sections or large headings with Myanmar text:
- Font: Use
khitHaungg.className(from@/fonts/fonts) directly, NOT Tailwindfont-myanmarclass bg-clip-textissue: Myanmar script has tall stacking diacritics that get clipped bybg-clip-text text-transparentwith gradient backgrounds. For Myanmar, use a solid color (e.g.text-prism-cyan) instead of the gradient clip technique. English can keepbg-clip-textgradient.overflow-hiddenissue: Removeoverflow-hiddenfrom parent containers when Myanmar is active — it clips top/bottom of Myanmar characters- Line height: Use
leading-[1.6]withpy-2for Myanmar large text (vsleading-[1.15]for English) - AnimateText: Disable character-by-character
AnimateTextfor Myanmar — render plain text instead - Pattern:
const mmFont = isMyanmar ? khitHaungg.className : ""then conditionally apply classes - Localization hook: Use
useLanguagefrom@/hooks/useLanguage(NOT from@/context/LanguageContext)
Save all screenshots (including Playwright MCP captures) to the screen-shot/ folder in the project root.
- Use
git switchinstead ofgit checkoutfor branch switching - Use
git switch -c <branch>instead ofgit checkout -b <branch>for creating new branches
GitHub Actions (.github/workflows/build.yml): on push/PR to main, installs with Bun, builds, deploys to GitHub Pages.