Skip to content
/ hexastack Public template

Hexastack is a comprehensive monorepo starter kit designed for modern full-stack development. Hexastack is the perfect foundation for your next big project.

License

Notifications You must be signed in to change notification settings

ahmedhesham6/hexastack

Repository files navigation

Hexastack Logo

Hexastack

A modern, type-safe, and scalable monorepo template built with the best tools in the TypeScript and full-stack ecosystem.


Tech Stack

Component Description Link
Monorepo Managed with Turborepo for high-performance monorepo workflows. Turborepo
TypeScript Type-safety is a core principle across all packages and apps. TypeScript
Next.js The main web app is built with Next.js for SSR, API routes, and more. Next.js
Drizzle ORM Type-safe, modern ORM for SQL databases. Drizzle ORM
PostgresDB Reliable, open-source SQL database. PostgreSQL
Tailwind CSS Utility-first CSS framework for rapid UI development. Tailwind CSS
shadcn/ui Beautiful, accessible React components. shadcn/ui
Better Auth Modern authentication patterns and utilities. Better Auth
Biome All-in-one toolchain for formatting, linting, and more. Biome
Fumadocs Documentation framework for Next.js, powering the docs app. Fumadocs
oRPC End-to-end type-safe APIs, OpenAPI support, and contract-first development. oRPC

Monorepo Structure

.
├── apps/
│   ├── web/                # Next.js application
│   └── docs/               # Fumadocs-powered documentation site
├── packages/
│   ├── ui/                 # shadcn/ui components
│   ├── api/                # oRPC API definitions and procedures
│   ├── db/                 # Drizzle ORM & Postgres setup
│   ├── auth/               # Authentication logic
│   └── typescript-config/  # Shared TypeScript configs
├── turbo.json              # Turborepo config
├── pnpm-workspace.yaml     # pnpm workspace config
└── ...

Getting Started

  1. Install dependencies:

    pnpm install
  2. Set up environment variables:

    • Copy .env.example to .env in each package/app and fill in the required values.
  3. Run the development server:

    pnpm dev

Usage

  • Add shadcn/ui components:

    pnpm dlx shadcn@latest add button -c apps/web

    Components will be placed in packages/ui/src/components.

  • Use UI components:

    import { Button } from "@hexastack/ui/components/button"
  • Database migrations: See packages/db/README.md for Drizzle ORM migration commands.

  • Documentation (Fumadocs):

    The documentation site is powered by Fumadocs.

    To run the docs locally:

    pnpm --filter docs dev

    See apps/docs/README.md for more details and customization options.


Type Safety

  • All packages and apps are written in TypeScript.
  • Shared types and configs are in packages/typescript-config.

Linting & Formatting

  • Powered by Biome.

  • Run:

    pnpm biome check .
    pnpm biome format .

Authentication

  • Modern authentication patterns are implemented in packages/auth.
  • See package README for setup and usage.

Contributing

  1. Fork the repo
  2. Create your feature branch (git checkout -b feat/my-feature)
  3. Commit your changes
  4. Push to the branch
  5. Open a Pull Request

License

MIT


About

Hexastack is a comprehensive monorepo starter kit designed for modern full-stack development. Hexastack is the perfect foundation for your next big project.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Packages

No packages published