Our Tech Stack
๐ฏ Why This Combo?
We picked these tools because they make development fast and less confusing. Everything just works together nicely!
๐ What We Use
Frontend Building
- Next.js (Pages Router) - Makes React apps faster and easier to deploy
- JavaScript - The programming language we use
- Ant Design - Ready-made UI components (buttons, forms, tables, etc.)
- Flaticon Uicons - Icon library loaded globally through CDN
Icon usage rule: Always load the needed Uicons CDN in
_document.jsand render icons with the shared<Uicons />component fromcomponents/UI/Uicons.jsx.
Documentation
- MDX - Write docs using simple Markdown + React components
- Nextra - Documentation site generator (made by the creators of Next.js)
Development Tools
- ESLint - Automatically finds mistakes in your code
- Prettier - Makes your code look clean and consistent
๐ Simple Breakdown
What is Next.js (Pages Router)?
Itโs React but with superpowers:
- โ Pages load faster
- โ SEO works automatically
- โ Deploy to web easily
- โ
File-based routing (pages in
/pagesfolder = URLs) - โ
API routes in
/pages/apifolder
What is JavaScript?
Itโs the programming language that powers web apps:
- โ Runs everywhere (browsers, servers, mobile apps)
- โ Lots of tutorials and help online
- โ Simple syntax, easy to learn
- โ Supported by all modern browsers
What is Ant Design?
Itโs a UI library with ready-made components:
- โ Pre-built buttons, forms, tables, modals
- โ Consistent design and colors
- โ Mobile-responsive by default
- โ Professional looking components
Component Organization
We organize the codebase around a clear split between frontend and backend concerns:
src/backend/servicesโ Server-only business logic and integrations reused by API handlerssrc/frontend/hooksโ Custom React hooks (useAuth, useApi)src/frontend/contextsโ Shared state providers such asAuthContextandUserContextsrc/frontend/utilsโ Helper functions and constants used in client codecomponents/UIโ Reusable UI primitives (Button, Input, Modal)components/Viewsโ Page-level compositions (Dashboard, UserProfile)src/DB/connection.jsโ Centralized MongoDB connection utility reused by API routes and jobssrc/DB/modelsโ Mongoose models (User, Role, etc.)
Iconography (Flaticon Uicons)
Flaticon Uicons give us a consistent icon language across all products. Each Uicons โfamilyโ (regular, rounded, solid, bold, etc.) ships with its own CDN stylesheetโinclude only the one the design system calls for.
1. Load the correct CDN in _document.js
<link
rel="stylesheet"
href="https://cdn-uicons.flaticon.com/3.0.0/uicons-regular-rounded/css/uicons-regular-rounded.css"
/>;- Replace the URL when you need a different Uicons family, e.g.
uicons-solid-rounded,uicons-regular-straight, etc. - Because the link lives in
_document.js, every page gets access to the icons with zero extra imports.
2. Use the shared <Uicons /> helper
export default function Uicons({ icon, className = "", onClick, style, size, color, ...props }) {
const classes = ["fi", icon, className].filter(Boolean).join(" ");
return (
<i
className={classes}
onClick={onClick}
style={{ fontSize: size, color, display: "inline-block", ...style }}
{...props}
/>
);
}iconis the class name you copy from Flaticon (e.g.fi-rr-home).sizeandcolormap to the finalfont-sizeandcolorstyles, so components stay lightweight.- Pass
classNamefor utility classes andstylefor one-off overrides. - The helper wraps a plain
<i>tag, but centralizes any future behavior tweaks (ARIA, analytics, etc.). - Example usage:
<Uicons icon="fi-rr-home" size={18} color="#667085" />What is MDX?
Itโs documentation but better:
- โ Write like normal text
- โ Add code examples easily
- โ Can include interactive examples
- โ Looks clean automatically
๐ ๏ธ Development Setup
Prerequisites (Stuff You Need)
- Node.js (Latest version) - Download from nodejs.org
- VS Code (Free code editor) - Download from code.visualstudio.com
Getting Started
- Clone the repository
- Run
npm install - Run
npm run dev - Open http://localhost:3000
Thatโs it! ๐
๐ Project Structure
Click folders to expand and see the interactive file tree!
-
Key Points:
- Every file in
/pagesbecomes a website URL /pages/index.jsโ/(homepage)/pages/_app.jsโ App wrapper component/pages/_document.jsโ HTML document structure- Shared UI lives in
/components: Layout for shells, UI for primitives, Views for page-level blocks, utils for helpers /src/frontendbundles hooks, contexts, utilities, and feature-specific components that run in the browser only/src/backendhouses server-only logicโAPI route helpers, services, background jobs, etc./src/DBholds database-specific code such as the shared connection helper and Mongoose models/src/DB/connection.jscentralizes database connectivity so every API handler reuses the same client- Clean separation keeps frontend imports from ever pulling server code into the bundle
๐ง Common Commands
npm run dev- Start development servernpm run build- Build for productionnpm run lint- Check for code mistakesnpm install- Install new packages
๐ก Why No Complexity?
Simple = Better
- โ Easy for new team members
- โ Fewer bugs
- โ Faster development
- โ Less maintenance
Modern = Reliable
- โ All tools are popular and stable
- โ Great community support
- โ Regular updates and fixes
- โ Lots of documentation online
๐ Learning Resources
Beginner Friendly
- Next.js Tutorial - Official tutorial
- JavaScript Basics - Mozilla docs
- Ant Design Components - Complete component list
Quick References
- React Documentation - Official React docs
- Ant Design Getting Started - Ant Design setup
- MDX Guide - Official MDX docs
๐ Essential Links
Next.js (Pages Router)
- ๐ Pages Router Documentation - Official guide
- ๐ API Routes Documentation - Backend endpoints
- ๐ Pages Router Routing - File-based routing
Ant Design
- ๐จ Ant Design Official Documentation - Complete guide
- ๐งฑ Component List - All available components
- ๐ Getting Started - Installation and setup
๐ค Need Help?
For Coding Questions:
- Google the error message
- Check our code examples in
/pages/patterns/ - Ask team members
For Tool Questions:
- Check official documentation links above
- Look at our
package.jsonfor versions - Most tools have โGetting Startedโ guides
Remember: The goal is to build things quickly, not become experts in every tool. Start simple, learn as you go! ๐