🚀 Introduction
Forjnot is a clean, scalable, and professional monorepo template built for developers who want a solid foundation for both backend and frontend apps using modern tooling.
It aims to eliminate the repetitive setup work and lets you focus on building features right away — while still being highly customizable and production-ready.
🏗️ Project Structure
forjnot/
├── apps/
│ ├── backend/ # NestJS application
│ └── frontend/ # Next.js application
├── packages/
│ ├── shared-configs/ # Shared configurations
│ ├── shared-constants/ # Shared constants
│ ├── shared-dtos/ # Shared DTOs
│ ├── shared-env/ # Environment configuration
│ ├── shared-logger/ # Shared logger
│ ├── shared-types/ # Shared TypeScript types
│ └── shared-utils/ # Shared utilities
└── package.json
📁 Key Directories Explained
Directory Functions
apps/backend/
NestJS application with modular architecture:
backend/
├── src/
│ ├── modules/ # Feature modules (auth, users, etc.)
│ │ ├── auth/ # (Example) Authentication module
│ │ │ ├── dto/ # Data Transfer Objects
│ │ │ ├── guards/ # Auth guards
│ │ │ └── ... # Other auth files & folders
│ │ └── users/ # (Example) Users module
│ │ ├── dto/ # User DTOs
│ │ ├── entities/# User entities
│ │ └── ... # Other user files & folders
│ ├── app.controller.spec.ts # Main controller tests
│ ├── app.controller.ts # Main application controller
│ ├── app.module.ts # Root application module
│ ├── app.service.ts # Main application service
│ └── main.ts # Application entry point
├── test/ # e2e tests
├── nest-cli.json # NestJS CLI configuration
└── tsconfig.json # TypeScript configuration
apps/frontend/
Next.js application with app directory:
frontend/
├── public/ # Static assets
├── src/
│ ├── app/ # Next.js app directory
│ │ ├── (auth)/ # (Example) Authentication routes group
│ │ ├── (dashboard)/ # (Example) Dashboard routes group
│ │ ├── docs/ # (Example) Documentation pages
│ │ ├── layout.tsx # Root layout
│ │ └── page.tsx # Home page
│ ├── components/ # React components
│ │ ├── dashboard/ # (Example) Dashboard components
│ │ ├── auth/ # (Example) Authentication components
│ │ ├── docs/ # (Example) Documentation components
│ │ ├── landing/ # (Example) Landing page components
│ │ ├── shared/ # (Example) Shared/common components
│ │ └── ui/ # UI component library
│ ├── hooks/ # Custom React hooks
│ │ ├── auth/ # (Example) Authentication related hooks
│ │ ├── data/ # (Example) Data fetching hooks
│ │ └── ui/ # (Example) UI related hooks
│ ├── lib/ # Utilities and helpers
│ │ ├── utils.ts # (Example) Helper functions
│ │ └── docs.ts # (Example) Documentation utilities
│ ├── services/ # API and external services
│ │ ├── api/ # (Example) API client and endpoints
│ │ ├── auth/ # (Example) Authentication services
│ │ └── external/ # (Example) Third-party service integrations
│ ├── styles/ # Styling files
│ │ ├── globals.css # Global styles
│ │ └── themes/ # (Example) Theme configurations
│ ├── types/ # Frontend-specific types
│ │ ├── components.ts # (Example) Component prop types
│ │ └── common.ts # (Example) Common type definitions
│ └── config/ # Frontend configurations
│ ├── api.ts # (Example) API configuration
│ ├── auth.ts # (Example) Auth configuration
│ └── site.ts # (Example) Site-wide configuration
├── tailwind.config.ts # Tailwind configuration
└── next.config.ts # Next.js configuration
packages/
Shared packages for code reuse across frontend and backend:
packages/
├── shared-configs/ # Shared configurations
├── shared-constants/ # Shared constants
├── shared-dtos/ # Shared DTOs
├── shared-env/ # Environment configuration
├── shared-logger/ # Shared logger
├── shared-types/ # Shared TypeScript types
└── shared-utils/ # Shared utilities
💡 What is Forjnot?
- Shared packages for configuration, types, DTOs, environment, and utilities.
- NestJS backend with modular architecture and optional CLI module generator.
- Optional Next.js frontend set up with Tailwind CSS and app directory support.
- Biome for formatting and linting — clean, fast, and consistent code.
- Scalable folder structure that feels organized from day one.
- Developer tools like Turbo, PM2, health checks, and more.
- Optional docs branch for public documentation and Vercel deployment.
🌟 Why Forjnot?
- Skip the boilerplate — common patterns and configs are already done for you.
- Monorepo-first — built with Turborepo to handle multiple apps and packages smoothly.
- Clean architecture — promotes separation of concerns, reusability, and testability.
- Fast development — generate modules and folders with a single CLI command.
- Modern DX — everything works out of the box with Biome, Turbo, pnpm, and more.
👥 Who is it for?
Developers building fullstack apps using NestJS and optionally Next.js. Teams looking to scale with modular backend services and shared logic. Anyone who wants a professional starting point that actually saves time.
📦 What's Included
apps/backend
– A NestJS application built with best practices.apps/frontend
– Optional Next.js app with Tailwind and app dir support.packages/
– Shared packages like env, config, types, logger, etc.- Dev tooling – Biome, Turbo, PM2, Git hooks, and more.