Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Latest commit

ย 

History

164 Commits

Folders and files

NameName
Last commit message
Last commit date
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ—๏ธ HexDDD: Your Blueprint for Building Apps That Last

CI License: MPL 2.0 TypeScript Python Nx


๐ŸŽฌ Picture This

It's 2 AM. Your mobile app just crashed because someone changed a database field. Your frontend is showing the wrong data. Your Python backend is throwing errors. And nobody knows which piece broke first.

Sound familiar?

Now imagine a different world: You change your database schema, press save, and watch as your entire appโ€”from mobile screens to backend APIsโ€”updates itself automatically. No hunting for broken code. No surprise bugs. Just smooth, predictable progress.

That's HexDDD.

๐ŸŒŸ Think of it as a master blueprint for building homes: where every room (feature) has clear walls (boundaries), every pipe and wire (data flow) connects exactly right, and you can renovate the kitchen without tearing down the bedroom.


๐Ÿงฉ The Problem (You've Lived It)

You're building a modern app. Maybe it's a customer portal, an admin dashboard, or a mobile experience. You hire great developers, choose the latest frameworks, and start coding.

Then reality hits:

  • ๐Ÿš๏ธ The House of Cards: Frontend says the user has a "firstName", backend expects "first_name", database stores "user_first_name". One typo, three different names, infinite bugs.

  • ๐Ÿ Spaghetti Junction: Your payment logic is tangled with your UI components. Changing one thing breaks three others. Testing becomes a nightmare.

  • ๐ŸŽฒ Team Chaos: Sarah writes clean code. Tom shortcuts everything. Maria uses a different pattern. Six months later, nobody understands the codebase.

  • โฐ Time Drain: You spend 70% of your week fixing bugs and untangling messes instead of building features customers actually want.

The hidden cost? Talented developers burning out. Launches delayed. Opportunities missed. All because the foundation was shaky from day one.


๐Ÿ’ก The Solution (In Plain English)

HexDDD is like hiring an expert architect who ensures every part of your app fits together perfectlyโ€”automatically.

Here's how it works, step by step:

๐Ÿ—บ๏ธ Step 1: One Source of Truth

Instead of typing the same thing in ten different files, you define your data structure once (in your database). HexDDD instantly generates perfectly matching code for:

  • Your React/Next.js/Remix frontend
  • Your Python backend
  • Your mobile app
  • All validation rules

Like a blueprint: draw once, build everywhere.

๐Ÿ›๏ธ Step 2: Clear Rooms, Clear Walls

Remember that master blueprint analogy? HexDDD organizes your code into distinct "rooms":

  • ๐Ÿ’Ž The Vault (Domain): Your pure business logic. "A user can't have a negative balance." No clutter, no dependenciesโ€”just the rules that never change.

  • โš™๏ธ The Control Center (Application): Your workflows. "When someone updates their profile, save it and send a notification." Coordinates everything but doesn't do the heavy lifting itself.

  • ๐Ÿ”Œ The Utility Room (Infrastructure): All the messy real-world stuffโ€”databases, email services, payment processors. Swap them out without touching your business logic.

  • ๐ŸŽจ The Showroom (Interface): Your beautiful UI that customers see. Mobile apps, web dashboards, admin panelsโ€”all talking to the same solid foundation.

The magic? These rooms have "doors" (we call them ports and adapters) that only open in one direction. You literally cannot accidentally tangle your UI with your database code. The system won't let you.

๐Ÿ”„ Step 3: Automatic Harmony

Change your database? HexDDD updates your types everywhere. Add a new field? Your forms, validators, and API contracts update automatically. Refactor your backend? Your frontend knows immediately if something brokeโ€”while you're still coding, not when customers complain.

It's like having a brilliant assistant who keeps all your documents in sync, catches every inconsistency, and never sleeps.

๐Ÿงช Step 4: Confidence Through Testing

Because your code has clear walls, testing becomes obvious:

  • Test your business rules (the Vault) with zero setupโ€”no databases, no APIs, just pure logic
  • Test your workflows (Control Center) with simple mock doors
  • Test everything together only when you need to

Result? Tests that run in seconds, not minutes. Bugs caught before your first coffee, not after your customer's complaint.


โœจ What This Feels Like (The Payoff)

Imagine starting your workday and:

๏ฟฝ Morning Coffee: You update a user field in your database schema. Before you take your first sip, HexDDD has already updated 47 files across your frontend, backend, and mobile app. All tests pass. Nothing broke.

โ˜€๏ธ Midday Flow: A new developer joins your team. Instead of spending weeks deciphering "the way we do things," they run one command and generate a perfectly structured featureโ€”matching exactly how the rest of the codebase works.

๐ŸŒ™ Evening Calm: You deploy a major refactor with confidence. Not because you tested every edge case manually, but because the architecture prevents the bugs from existing in the first place.

The feeling? Like driving a car with perfect alignmentโ€”effortless, smooth, and you arrive faster than you expected.


๐Ÿ› ๏ธ Under the Hood (How It Actually Works)

While you experience the magic above, here's what HexDDD does behind the scenes:

The Foundation: One Truth, Everywhere

  • Your database schema becomes the single source of reality
  • TypeScript types (with runtime validation) auto-generate for your React apps
  • Python types (with API contracts) auto-generate for your FastAPI backend
  • Mobile, web, admin panelโ€”all speak the same language automatically

The Structure: Organized Like a Pro Kitchen

Think of a Michelin-star restaurant kitchenโ€”every station has a specific role:

  • ๐Ÿ’Ž The Prep Station (Domain): Pure ingredients, no cooking yet. Your business rules in their simplest form.
  • โš™๏ธ The Line Cooks (Application): Take orders, coordinate prep station and expeditors. Your use cases and workflows.
  • ๐Ÿ”Œ The Expeditors (Infrastructure): Connect to suppliers, manage inventory, handle equipment. Your databases, APIs, and external services.
  • ๐ŸŽจ The Dining Room (Interface): Beautiful presentation for guests. Your user-facing apps.

Each station has clear hand-off points (ports). You can change suppliers (databases) or update presentation (UI) without touching the recipes (business logic).

The Safety Net: Guardrails That Guide

  • Automated boundaries: The system physically prevents you from breaking architectural rules
  • Instant feedback: Type errors show up while you're typing, not when customers click
  • Test at the speed of thought: Most tests run without databases or APIsโ€”just pure logic

๐Ÿ“ Your Project at a Glance

Here's how your app organizes itselfโ€”like a well-designed office building where every department knows its role:

๏ฟฝ Your HexDDD Project
โ”‚
โ”œโ”€โ”€ ๏ฟฝ apps/                    โ†’ The Customer-Facing Floor
โ”‚   โ”œโ”€โ”€ ๐Ÿ”— backend-api/         โ†’ Your API reception desk (FastAPI)
โ”‚   โ”œโ”€โ”€ โš›๏ธ web-next/            โ†’ Modern web experience (Next.js)
โ”‚   โ”œโ”€โ”€ ๐ŸŽต web-remix/           โ†’ Progressive web app (Remix)
โ”‚   โ””โ”€โ”€ ๐Ÿ“ฑ web-expo/            โ†’ Mobile experience (React Native)
โ”‚
โ”œโ”€โ”€ ๏ฟฝ๏ธ libs/                    โ†’ The Departments & Shared Resources
โ”‚   โ”œโ”€โ”€ ๐Ÿ”ง ddd/                 โ†’ Your toolkit (the HexDDD plugin itself)
โ”‚   โ”œโ”€โ”€ ๐ŸŒ shared/              โ†’ Company-wide resources
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“Š database-types/  โ†’ Universal data definitions (TypeScript)
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ”Œ api-types/       โ†’ Contract agreements (API specs)
โ”‚   โ”‚   โ”œโ”€โ”€ ๏ฟฝ web/             โ†’ Shared web utilities
โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ type_system/     โ†’ Python data definitions
โ”‚   โ”‚
โ”‚   โ””โ”€โ”€ ๐Ÿ—๏ธ <your-domain>/       โ†’ Feature Departments (e.g., "user-management")
โ”‚       โ”œโ”€โ”€ ๐Ÿ’Ž domain/          โ†’ The Strategy Room (business rules)
โ”‚       โ”œโ”€โ”€ โš™๏ธ application/     โ†’ The Operations Center (workflows)
โ”‚       โ””โ”€โ”€ ๐Ÿ”Œ infrastructure/  โ†’ The Utilities (databases, APIs, integrations)
โ”‚
โ”œโ”€โ”€ ๐Ÿ› ๏ธ tools/                   โ†’ The Maintenance Crew
โ”‚   โ”œโ”€โ”€ ๐Ÿ”„ type-generator/      โ†’ Keeps everyone speaking the same language
โ”‚   โ””โ”€โ”€ ๐Ÿ—„๏ธ supabase/            โ†’ Local development playground
โ”‚
โ””โ”€โ”€ ๐Ÿงช tests/                   โ†’ Quality Assurance Department
    โ”œโ”€โ”€ ๐ŸŒŠ e2e/                 โ†’ Full customer journey tests
    โ”œโ”€โ”€ ๐Ÿ”— cross/               โ†’ Translation verification tests
    โ””โ”€โ”€ ๏ฟฝ fixtures/            โ†’ Test scenarios & examples

The beauty of this layout?

  • New team members instantly know where to find things
  • Features live in isolated departmentsโ€”change one without affecting others
  • Shared resources eliminate duplicationโ€”write once, use everywhere
  • Tests mirror your structureโ€”obvious what to test and where

It's like a city with clear districts and well-marked streets. No one gets lost.


๐Ÿš€ Getting Started in 5 Minutes

Let's get you building. No PhD required.

๐Ÿ“ฅ Step 1: Grab the Code

# Get HexDDD on your machine
git clone https://github.com/GodSpeedAI/HexDDD.git
cd HexDDD

# Install everything
npm install

๏ฟฝ Step 2: See It in Action

Pick your favorite flavor and watch it run:

๐Ÿ”— Backend API (FastAPI)

nx serve backend-api
# ๐ŸŒ Visit: http://localhost:8000
# ๐Ÿ“š Interactive API Docs: http://localhost:8000/docs

โš›๏ธ Next.js Web App

nx run web-next:dev
# ๐ŸŒ Visit: http://localhost:4200

๐ŸŽต Remix Web App

nx run web-remix:dev
# ๐ŸŒ Visit: http://localhost:4201

๐Ÿ“ฑ Expo Mobile App

nx run web-expo:start
# ๐Ÿ“ฑ Scan the QR code with Expo Go on your phone

๐Ÿ’ก Notice something cool? All these apps share the exact same types and validation. Change one thing, and everything stays in sync.

๐Ÿ—„๏ธ Step 3: Optional Database Power

Want to see the full type generation magic? Spin up a local database:

# Set up your local environment
cp example.env .env.supabase.local

# Start your local Supabase stack
nx run supabase-devstack:start
# ๐ŸŒ Supabase Studio: http://localhost:54323

# When you're done experimenting
nx run supabase-devstack:stop

What just happened? You now have a complete PostgreSQL database, authentication, and API running locally. Change the schema, and watch HexDDD update your entire codebase automatically.


๐ŸŽจ Building Your First Feature

Ready to create something? Let's build a complete feature in seconds, not hours.

๐Ÿ—๏ธ Create a New Business Domain

Think of a domain as a complete "department" in your appโ€”like User Management, Order Processing, or Notifications.

# Generate everything you need for user management
nx g @ddd-plugin/ddd:hex-domain user-management

What you just created:

  • โœจ libs/user-management/domain/ โ†’ Your business rules (pure logic, no tech)
  • โœจ libs/user-management/application/ โ†’ Your workflows and contracts
  • โœจ libs/user-management/infrastructure/ โ†’ Database connections and APIs
  • โœจ Proper boundaries that prevent architectural mistakes

๐ŸŒ Add a Beautiful Frontend

Now let's give users a way to interact with it:

# Create a Next.js admin portal with all the connections
nx g @ddd-plugin/ddd:web-app admin-portal --framework=next

# Or a Remix customer portal that shares the same backend
nx g @ddd-plugin/ddd:web-app customer-portal --framework=remix

# Or a mobile app for on-the-go access
nx g @ddd-plugin/ddd:web-app mobile-app --framework=expo

Your options:

  • --framework=next โ†’ Modern Next.js with App Router
  • --framework=remix โ†’ Progressive web app with Remix
  • --framework=expo โ†’ React Native mobile app
  • --apiClient=true โ†’ Include shared, type-safe API client (default)
  • --includeExamplePage=true โ†’ Get example routes to learn from (default)

The magic moment: Every frontend automatically understands your backend. The types flow through. The validation just works. You focus on the user experience, not plumbing.

๐Ÿ”ง Extend Your Domain

As your app grows, add exactly what you need:

# Add an event notification system
nx g @ddd-plugin/ddd:port notification-service

# Add database transaction handling
nx g @ddd-plugin/ddd:uow user-management

# Add an event bus for decoupled features
nx g @ddd-plugin/ddd:event-bus user-management

โœจ Pro move: All generators are idempotentโ€”run them multiple times safely. They'll only add what's missing, never break what exists.


๐Ÿ”„ Keep Everything in Perfect Sync

Here's where HexDDD becomes your silent partnerโ€”keeping your entire stack harmonized without you lifting a finger.

๐Ÿ”ง Manual Type Generation (When You Want Control)

# Generate TypeScript + Python types from your database schema
nx run type-generator:generate

# Verify everything matches perfectly across languages
nx run type-generator:verify

๐Ÿค– Automatic Synchronization (While You Sleep)

Our CI/CD watches your back:

  • โœ… Schema change? โ†’ Types regenerate automatically
  • โœ… Type mismatch? โ†’ Build fails before merge (catches bugs early)
  • โœ… Updates needed? โ†’ Pull request created with all changes
  • โœ… Weekly check? โ†’ Scheduled validation ensures nothing drifts

Triggers:

  • You modify schema files in supabase/
  • You manually trigger from GitHub Actions
  • Weekly scheduled verification (every Sunday at 2 AM)

Result: Your TypeScript, Python, and database speak the same language, always. No silent drift. No surprise runtime errors.


๐ŸŽฏ The Technical Foundation (For the Curious)

Want to peek behind the curtain? Here's what makes HexDDD tickโ€”explained like you're explaining it to a bright 12-year-old.

๐Ÿ›๏ธ The "Clean Architecture" Secret

Imagine building with LEGO blocks. Each block (layer) only connects in specific ways:

๐Ÿ’Ž Domain Layer (The Pure Gold)

// โœ… Pure business logicโ€”no tech dependencies, no framework imports
export class User {
  constructor(
    private readonly id: UserId,
    private readonly email: Email,
    private readonly profile: UserProfile
  ) {}

  updateProfile(newProfile: UserProfile): UserProfileUpdated {
    // Just the business rulesโ€”nothing else
    return new UserProfileUpdated(this.id, newProfile);
  }
}

Why this matters: Your core business rules never change when you swap databases or frameworks. They're timeless.

โš™๏ธ Application Layer (The Orchestra Conductor)

// โœ… Coordinates domain logic with external services
export class UpdateUserProfileUseCase {
  constructor(
    private readonly userRepository: UserRepository,  // A contract, not the real thing
    private readonly eventBus: EventBus               // Another contract
  ) {}

  async execute(request: UpdateProfileRequest): Promise<void> {
    const user = await this.userRepository.findById(request.userId);
    const event = user.updateProfile(request.profile);
    await this.userRepository.save(user);
    await this.eventBus.publish(event);
  }
}

Why this matters: This layer doesn't care how users are saved or where events go. It just knows what should happen.

๐Ÿ”Œ Infrastructure Layer (The Real World Adapter)

# โœ… Actual implementation with real databases and APIs
class SupabaseUserRepository(UserRepository):
    async def find_by_id(self, user_id: UserId) -> User:
        # Real database queries here
        pass

    async def save(self, user: User) -> None:
        # Real persistence here
        pass

Why this matters: Swap Supabase for MongoDB tomorrow? Just change this file. The rest of your app doesn't even notice.

๐Ÿ”— Type Safety Across the Universe

Here's how one schema change ripples perfectly through everything:

1. ๐Ÿ“Š You update: Supabase Schema (database)
        โ†“
2. ๐Ÿ”„ HexDDD generates: TypeScript types (with runtime validation)
        โ†“
3. ๐Ÿ HexDDD generates: Python types (with API contracts)
        โ†“
4. โš›๏ธ React apps get: Auto-updated interfaces and forms
        โ†“
5. ๐Ÿ”— FastAPI gets: Auto-updated request/response models
        โ†“
6. โœ… Tests verify: Everything still works together

Benefits you feel:

  • ๐Ÿ›ก๏ธ Errors caught while coding, not when customers complain
  • ๐Ÿ”„ Schema changes propagate everywhere, automatically
  • ๐Ÿงช Mock implementations match real ones, always
  • ๐Ÿ“ˆ New features don't break old code, by design

๐Ÿงช Testing with Confidence (Not Dread)

Traditional testing feels like untangling Christmas lights. HexDDD makes it feel like clicking LEGO blocks together.

๐ŸŽฏ Run Your Tests

# Test everything at once
nx run-many --target=test --all

# Check for architectural violations (boundaries, imports)
nx run-many --target=lint --all

# Verify Python types are bulletproof
npm run type-check:py

# Full end-to-end customer journey
nx run ddd-e2e:e2e

๐Ÿ“š Testing by Layer (Smart, Not Hard)

๐Ÿ’Ž Domain Tests (The Easy Wins)

  • โœ… Pure unit testsโ€”no databases, no APIs, no setup
  • โœ… Test business rules in isolation
  • โœ… Run in milliseconds, not minutes

โš™๏ธ Application Tests (The Coordination Check)

  • โœ… Use case testing with simple mock "doors" (ports)
  • โœ… In-memory implementationsโ€”fast and reliable
  • โœ… Verify workflows without real infrastructure

๐Ÿ”Œ Infrastructure Tests (The Integration Layer)

  • โœ… Real adapter tests with actual databases
  • โœ… Contract verificationโ€”does your adapter match its contract?
  • โœ… Database migration validation

๐ŸŒŠ End-to-End Tests (The Customer Journey)

  • โœ… Full stack validation from button click to database
  • โœ… API contract verification across languages
  • โœ… Type safety confirmation between frontend and backend

๐Ÿ›ก๏ธ Automatic Quality Gates

Boundary Enforcement (Your Architectural Guardian):

{
  "rules": {
    "@nx/enforce-module-boundaries": [
      "error",
      {
        "depConstraints": [
          {
            "sourceTag": "type:domain",
            "onlyDependOnLibsWithTags": ["type:domain"]
          },
          {
            "sourceTag": "type:application",
            "onlyDependOnLibsWithTags": ["type:domain", "type:application"]
          }
        ]
      }
    ]
  }
}

Translation: Your domain code cannot accidentally import database stuff. The linter won't let it compile. Mistakes become impossible.

CI/CD Verification:

  • ๐Ÿค– Every pull request validates architectural boundaries
  • ๐Ÿ” Type drift detection catches schema mismatches
  • ๐Ÿ“Š Test coverage reporting shows what's protected
  • ๐Ÿšจ Breaking change detection prevents surprise bugs

๐Ÿ› ๏ธ The Tech Stack (What Powers This Magic)

Frontend Excellence โš›๏ธ

Technology Version Purpose
Next.js 14+ (App Router) ๐ŸŒ Full-stack React framework
Remix 2.15+ ๐ŸŽต Progressive web apps
Expo 54+ ๐Ÿ“ฑ React Native mobile development
TypeScript 5.0+ (Strict) ๐Ÿ”’ Type-safe development
Zod 3.23+ โœ… Runtime type validation
React 19.0 โš›๏ธ Component library

Backend Power ๐Ÿ

Technology Version Purpose
FastAPI Latest ๐Ÿš€ High-performance async API
Python 3.11+ ๐Ÿ Backend development
Pydantic 2.x ๐Ÿ“ Data validation & serialization
SQLAlchemy 2.x ๐Ÿ—„๏ธ Async ORM
mypy Latest ๐Ÿ” Static type checking
pytest Latest ๐Ÿงช Testing framework

Infrastructure & DevOps ๐Ÿ—๏ธ

Technology Version Purpose
Nx 21.5+ ๐Ÿ”ง Monorepo tooling
Supabase Latest ๐Ÿ—„๏ธ PostgreSQL + Auth + API
Docker Latest ๐Ÿ“ฆ Containerization
GitHub Actions - ๐Ÿค– CI/CD pipelines
ESLint Latest ๐Ÿ” Code quality enforcement

๐Ÿค Join the Movement

HexDDD is better because of contributors like you. Here's how to get involved:

๐Ÿ”„ Your Development Journey

1. ๐ŸŒฟ Start Your Branch

# Update your local dev branch
git checkout dev
git pull origin dev

# Create your feature branch from dev
git checkout -b feat/your-awesome-feature

2. ๐Ÿงช Quality First

# Test your changes locally
nx run-many --target=test --all

# Ensure code quality
nx run-many --target=lint --all

# Verify Python types
npm run type-check:py

3. ๐Ÿ“ Document Your Work

  • README.md โ†’ User-facing changes or new features
  • AGENTS.md โ†’ Architectural patterns or AI guidance updates
  • ADRs (in docs/) โ†’ Significant architectural decisions
  • Generator schemas โ†’ New generator options or behaviors

4. ๐Ÿ”„ Generator Development Tips

Test that your generator is idempotent (safe to run twice):

# First run - creates everything
nx g @ddd-plugin/ddd:web-app test-app --framework=next

# Second run - should show "no changes"
nx g @ddd-plugin/ddd:web-app test-app --framework=next

5. ๐Ÿ“จ Submit Your Pull Request

  • Target the dev branch (not main)
  • Provide clear context: what changed and why
  • Include test evidence (screenshots, logs, test results)
  • Document any breaking changes prominently

๐ŸŽฏ Where We Need Help

  • ๐ŸŽจ New Frameworks (Vite, SvelteKit, Astro)
  • ๐Ÿ”Œ Additional Adapters (Redis, Kafka, GraphQL, gRPC)
  • ๐Ÿ“ฑ Mobile Patterns (React Navigation, offline-first, native modules)
  • ๐Ÿงช Testing Utilities (Test builders, factories, fixtures)
  • ๐Ÿ“š Documentation (Tutorials, video guides, blog posts)
  • ๐Ÿ—๏ธ Generator Enhancements (More options, better error messages, clearer output)

Your expertise mattersโ€”whether you're a designer, developer, or documentation wizard.


๐Ÿ“š Dive Deeper

๐Ÿ“– Essential Reading

๐ŸŽ“ Learn the Principles

๐Ÿ› ๏ธ Master the Tools


๐Ÿ“„ License & Community

HexDDD follows what we call "The Photoshop Rule" โ€” a simple way to understand how you can use HexDDD without getting lost in legal jargon:

๐Ÿ–ผ๏ธ Think of HexDDD like Photoshop. You can use Photoshop to design, paint, or build anything โ€” logos, posters, full digital worlds. You can sell your art, keep it private, or use it inside your company.

What you can't do is sell Photoshop itself or offer "Photoshop as a service."

It's the same with HexDDD:

  • โœ… Use HexDDD freely inside your organization โ€” build applications, generate architecture, support your engineering workflows
  • โœ… Use it to create applications (web apps, mobile apps, APIs, microservices) and use or sell those applications however you like
  • โŒ Don't resell HexDDD itself โ€” you can't package it up and offer it as a hosted platform or SaaS to third parties without a commercial license
  • โŒ Don't strip out HexDDD's core to make a competing scaffolding service

License Details:

HexDDD is released under a dual license:

  • ๐Ÿงฉ MPL-2.0 (Open Source) โ€” for personal, educational, and internal company use
  • ๐Ÿ’ผ Commercial License โ€” required if you want to embed, resell, or offer HexDDD as a hosted service

See LICENSE for complete legal details.

This license balances openness with protectionโ€”use it freely, improve it collaboratively, share it widely.


๐Ÿ™ Standing on the Shoulders of Giants

This project wouldn't exist without:

  • Nx โ†’ The monorepo platform that makes this possible
  • nx-ddd-plugin โ†’ Original inspiration for DDD patterns in Nx
  • @nxlv/python โ†’ Python workspace integration that bridges ecosystems

๐Ÿš€ Ready to Build Something Extraordinary?

The best apps aren't just codedโ€”they're architected.

HexDDD gives you the blueprint, the tools, and the guardrails to build apps that:

โœจ Scale effortlessly as your team grows ๐Ÿ›ก๏ธ Stay maintainable as requirements evolve ๐Ÿš€ Ship faster because the architecture works with you, not against you


โญ Star this repo โ€ข ๐Ÿ› Report issues โ€ข ๐Ÿ’ฌ Join discussions


Built with โค๏ธ by developers who've felt the pain of bad architectureโ€” and decided to do something about it.

About

HexDDD: Your master blueprint where every room (feature) has clear walls (boundaries), every pipe and wire (data flow) connects exactly right, and you can renovate the kitchen without tearing down the bedroomโ€”automatically syncing your entire app from database to mobile screen in the time it takes to sip your morning coffee.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages