Tech swag marketplace for Kenya - built with Next.js App Router, TypeScript, and Tailwind CSS.
- Node.js 22+
- pnpm (v10.33+)
- Merch KE API running (default: http://localhost:8080)
We use pnpm exclusively to manage dependencies for faster and stricter installs.
# Install dependencies
pnpm install
# Run development server
pnpm devOpen http://localhost:3000 in your browser.
NEXT_PUBLIC_API_BASE_URL=http://localhost:8080
NEXT_PUBLIC_SITE_URL=http://localhost:3000Deployed securely via Google Cloud Run. Production environment variables are securely injected at build time by our GitHub Actions CI/CD pipeline using secrets.
├── app/ # Next.js 15 App Router
│ ├── globals.css # Global styles
│ ├── layout.tsx # Root layout
│ └── page.tsx # Home page
├── components/ # React components
├── lib/ # Utilities and API client
│ ├── api/ # API client and endpoints
│ └── utils.ts # Helper functions
├── types/ # TypeScript types
└── public/ # Static assets
The frontend communicates with the Merch KE API via Axios:
lib/api/client.ts- Axios client with interceptorslib/api/endpoints.ts- API endpoint functions
# Run dev server
pnpm dev
# Build for production
pnpm build
# Start production server
pnpm start
# Lint code
pnpm lintEvery Pull Request to main automatically runs strict pnpm lint and pnpm build checks. Merging into main automatically triggers a zero-downtime deployment to Google Cloud Run.
Built with ❤️ by Hacklabs