Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Fireinthebellyy/ftb-web/llms.txt

Use this file to discover all available pages before exploring further.

Core Framework

Next.js 15

Version: ^15.3.6 FTB Hustle is built on Next.js 15, leveraging the latest features:
  • App Router: File-system based routing with layouts and nested routes
  • React Server Components: Reduced client-side JavaScript for better performance
  • Server Actions: Type-safe server mutations
  • Turbopack: Fast development builds (experimental)
  • Image Optimization: Automatic image optimization with next/image
  • Font Optimization: Web font optimization with next/font
Why Next.js?
  • Full-stack framework with API routes
  • Excellent SEO support with SSR and SSG
  • Built-in performance optimizations
  • Great developer experience
  • Large ecosystem and community

Language & Runtime

TypeScript 5

Version: ^5 Strict type safety throughout the codebase:
  • Interface-based type definitions
  • Explicit function parameters and return types
  • Type inference from Zod schemas
  • Generic type parameters for reusable components

React 19

Version: ^19.0.0 Latest React features:
  • React Server Components
  • Server Actions
  • Improved Suspense
  • Concurrent rendering
  • Automatic batching

Database & ORM

PostgreSQL

Production-grade relational database:
  • Provider: Neon (Serverless PostgreSQL)
  • Connection: @neondatabase/serverless (^1.0.1)
  • Features: ACID compliance, complex queries, full-text search

Drizzle ORM

Version: ^0.44.3 Type-safe, lightweight ORM:
  • SQL-like syntax with TypeScript types
  • Zero runtime overhead
  • Migration generation with drizzle-kit (^0.31.2)
  • PostgreSQL-specific features (arrays, JSONB, enums)
Example Usage:
import { db } from "@/lib/db";
import { opportunities } from "@/lib/schema";
import { eq } from "drizzle-orm";

// Type-safe query
const opportunity = await db
  .select()
  .from(opportunities)
  .where(eq(opportunities.id, opportunityId))
  .limit(1);

Authentication

Better Auth

Version: ^1.4.17 Modern authentication library:
  • Email/Password: With email verification
  • OAuth Providers: Google, LinkedIn
  • Session Management: Cookie-based sessions
  • Database Adapter: Drizzle ORM integration
  • Role-Based Access: Custom user roles
Configuration (lib/auth.ts):
import { betterAuth } from "better-auth";
import { drizzleAdapter } from "better-auth/adapters/drizzle";

export const auth = betterAuth({
  database: drizzleAdapter(db, { provider: "pg", schema }),
  emailAndPassword: { enabled: true },
  socialProviders: {
    google: { clientId: "...", clientSecret: "..." },
    linkedin: { clientId: "...", clientSecret: "..." },
  },
});

Styling & UI

Tailwind CSS 4

Version: ^4 Utility-first CSS framework:
  • Just-in-Time (JIT) compilation
  • Custom design tokens
  • Dark mode support
  • PostCSS integration (@tailwindcss/postcss ^4)
  • Animation library: tw-animate-css (^1.3.0)

Radix UI

Core Libraries:
  • @radix-ui/react-dialog - Modals and dialogs
  • @radix-ui/react-dropdown-menu - Dropdown menus
  • @radix-ui/react-select - Select inputs
  • @radix-ui/react-tooltip - Tooltips
  • @radix-ui/react-tabs - Tab interfaces
  • And 20+ more component primitives
Why Radix?
  • Unstyled, accessible components
  • Full keyboard navigation
  • ARIA attributes built-in
  • Flexible styling with Tailwind

Additional UI Libraries

  • Lucide React (^0.542.0): Icon library with 1000+ icons
  • Framer Motion (^12.23.12): Animation library
  • next-themes (^0.4.6): Dark mode support
  • Sonner (^2.0.7): Toast notifications
  • cmdk (^1.1.1): Command palette
  • vaul (^1.1.2): Bottom sheet drawer

Forms & Validation

React Hook Form

Version: ^7.61.1 Performant form library:
  • Uncontrolled components for better performance
  • Built-in validation
  • TypeScript support
  • Easy integration with Zod

Zod

Version: ^3.25.76 TypeScript-first schema validation:
import { z } from "zod";

const loginSchema = z.object({
  email: z.string().email("Invalid email"),
  password: z.string().min(8, "Password too short"),
});

type LoginInput = z.infer<typeof loginSchema>;
Integration:
  • @hookform/resolvers (^5.2.1): Connect Zod with React Hook Form

Payments

Razorpay

Version: ^2.9.6 Payment gateway for India:
  • Payment collection
  • Order management
  • Webhook handling
  • Subscription billing
  • Refunds and settlements

File Storage

Appwrite

Version: ^18.2.0 Backend-as-a-Service for file storage:
  • User avatar uploads
  • Document storage (resumes, certificates)
  • Image optimization
  • Access control and permissions

Email

Resend

Version: ^5.0.0 Modern email API:
  • Transactional emails
  • Email verification
  • Password reset emails
  • React email templates (@react-email/components ^0.5.0)

Data Fetching & State Management

TanStack Query (React Query)

Version: ^5.84.1 Powerful data synchronization:
  • Automatic caching
  • Background refetching
  • Optimistic updates
  • Pagination and infinite queries
  • Devtools for debugging
Usage Pattern:
import { useQuery } from "@tanstack/react-query";

const { data, isLoading, error } = useQuery({
  queryKey: ["opportunities"],
  queryFn: () => fetch("/api/opportunities").then(res => res.json()),
});

Tables & Data Display

TanStack Table

Version: ^8.21.3 Headless table library:
  • Sorting, filtering, pagination
  • Row selection
  • Column visibility
  • Virtualization support

Content & Markdown

React Markdown

Version: ^10.1.0 Markdown rendering:
  • react-markdown: Markdown parser
  • remark-gfm (^4.0.1): GitHub Flavored Markdown
  • rehype-highlight (^7.0.2): Syntax highlighting
  • gray-matter (^4.0.3): Frontmatter parsing

Rich Text Editor

react-quill-new (^3.8.3): WYSIWYG editor for content creation

Utilities

Core Utilities

  • clsx (^2.1.1): Class name composition
  • tailwind-merge (^3.4.0): Merge Tailwind classes intelligently
  • class-variance-authority (^0.7.1): Component variants
  • date-fns (^4.1.0): Date manipulation
  • dayjs (^1.11.13): Date parsing and formatting

Utility Function: cn()

Defined in lib/utils.ts:
import { clsx } from "clsx";
import { twMerge } from "tailwind-merge";

export function cn(...inputs: ClassValue[]) {
  return twMerge(clsx(inputs));
}

Testing

Vitest

Version: ^2.1.8 Fast unit testing framework:
  • Vite-powered testing
  • Jest-compatible API
  • UI mode: @vitest/ui (^2.1.8)
  • React Testing Library: @testing-library/react (^16.0.1)
  • JSDOM: jsdom (^25.0.1)
Test Commands:
npm run test        # Run tests
npm run test:ui     # Run with UI

Analytics & Monitoring

Vercel Analytics

Version: ^1.5.0 Web analytics and performance monitoring:
  • Page views and user sessions
  • Web Vitals tracking
  • Real-time metrics

Code Quality

ESLint

Version: ^9 Linting with Next.js config:
  • eslint-config-next (15.3.2)
  • @eslint/eslintrc (^3)

Prettier

Version: ^3.6.2 Code formatting:
  • prettier-plugin-tailwindcss (^0.6.14): Sort Tailwind classes

Husky

Version: ^9.1.7 Git hooks for pre-commit linting and formatting.

Additional Libraries

Media & Interactions

  • embla-carousel-react (^8.6.0): Carousel component
  • react-dropzone (^14.3.8): File upload
  • input-otp (^1.4.2): OTP input component
  • react-resizable-panels (^3.0.3): Resizable layouts

Charts & Visualization

  • recharts (^2.15.4): Charting library for data visualization

Content Management

  • Sanity Client (@sanity/client ^7.3.0): Headless CMS integration
  • Open Graph Scraper (open-graph-scraper ^6.10.0): URL metadata extraction

Social Sharing

  • next-share (^0.27.0): Social media share buttons

Sanitization

  • DOMPurify (dompurify ^3.3.1): HTML sanitization for XSS protection

Development Tools

  • TypeScript (^5): Static type checking
  • tsx (^4.20.3): Execute TypeScript files
  • @vitejs/plugin-react (^4.3.4): Vite React plugin

Browser Compatibility

FTB Hustle supports:
  • Modern evergreen browsers (Chrome, Firefox, Safari, Edge)
  • ES2020+ features
  • CSS Grid and Flexbox
  • JavaScript modules

Package Manager

Supports all major package managers:
  • npm (default)
  • yarn
  • pnpm
  • bun

Next Steps

Build docs developers (and LLMs) love