Haxe->Elixir documentation for Phoenix/OTP integration
This index helps you find the right docs quickly, whether you're building apps with Phoenix or working on the compiler.
Note
Reflaxe.Elixir's documented subset is considered stable in v1.x.
Experimental/opt‑in features remain clearly labeled; see docs/06-guides/PRODUCTION_READINESS.md for the hardening checklist.
01-getting-started/ - Setup, quickstart, and basic concepts
- Start Here (Beginner Quickstart) - Run the todo-app and learn the mental model (Haxe/Phoenix newcomers)
- Installation Guide - Setup Haxe, Reflaxe, and dependencies
- Development Workflow - Day-to-day development practices
- Compiler Flags Guide - Recommended flags and anti-patterns
- Cross-hx Guide - Target-conditional stdlib overrides
- Quickstart - Fast track to productivity
02-user-guide/ - Complete user documentation for application developers
- Haxe Language Fundamentals - Core concepts
- Imperative→Functional Lowering - How mutation/loops become immutable Elixir
- Writing Idiomatic Haxe - Guidelines for clean, idiomatic Elixir output
- Authoring Styles: Portable vs Elixir-First - Choose module-level strategy without changing compiler mode
- Interop With Existing Elixir Modules - Typed extern-first workflow for calling hand-written Elixir from Haxe
- Haxe→Elixir Mappings - Language conversion guide
- Elixir Idioms & Hygiene - Naming, unused vars, enum shapes, loop semantics
- Porting stdlib code (JS→Elixir) - Practical portability example
- Phoenix Integration - Building Phoenix applications
- Type-Safe Phoenix Abstractions - Assigns/Socket/Flash typed surfaces
- Phoenix LiveView Architecture - Real-time UI patterns
- Haxe for Phoenix - Why Haxe makes Phoenix better
- HXX Syntax & Comparison - Typed HXX UX and comparison with Coconut UI & TSX
- Ecto Integration Patterns - Database integration patterns (canonical)
- User Guide - Comprehensive development guide
03-compiler-development/ - For contributors to the compiler itself
- Compilation Pipeline - How TypedExpr becomes Elixir
- Macro Principles - Macro-time compilation rules
- Testing Infrastructure - Snapshot + integration testing system
- XRay Debugging - Debugging methodology
- Best Practices - Development patterns
04-api-reference/ - Technical reference documentation
- API Index - User-facing API/tag index and coverage map
- Annotations - @:router, @:liveview, @:schema reference
- Phoenix API Reference - LiveView/Component/Channel/Presence user APIs
- LiveSocket Assign API -
assign(_.field, value)vsassign({...})vs typed keys - Ecto API Reference - Schema/Changeset/Repo/Query/Migration user APIs
- Elixir Runtime API Reference - Core runtime and OTP extern surfaces
- Type-Safe ChildSpec API - Typed OTP child-spec surfaces and explicit
*Unsafeescape hatches - Atom Type - Type-safe atoms for Elixir APIs
- Standard Library - Stdlib strategy + guidance
- Stdlib Support Matrix - What’s overridden vs upstream vs missing
- Feature Flags - User-facing codegen toggles (gradual rollout / debugging)
- Haxe Macro APIs - Correct macro API usage
- Source Mapping - Experimental source map design/status
- Router DSL - Phoenix router DSL reference
- Mix Tasks - Custom Mix task reference
- Mix Task Generators -
mix haxe.gen.*scaffolds (Haxe-first)
05-architecture/ - System design and implementation details
- Architecture - Overall system design
- Cross Overrides & Multi-Target Hardening -
.cross.hx/_stdownership and sibling-target coexistence risks - HXML Architecture - Build file patterns and anti-patterns
- File Naming - snake_case conversion rules
- HXX Templates - Template compilation system
- Elixir Injection -
__elixir__()/ Syntax.code() patterns
06-guides/ - Practical guides for specific tasks
- Quickstart - Fast track to productivity
- Phoenix (New App) - Greenfield Phoenix setup
- Phoenix (Existing App) - Gradual adoption in an existing app
- Scaffolding System - How generators + marker blocks work
- Adding Elixir Libraries From Haxe - Thin extern + wrapper pattern
- Phoenix Chat Tutorial (Hybrid) - Gradual adoption: feature logic in Haxe, core app/router wiring in Elixir
- Phoenix Chat Tutorial (Haxe-First) - App/router/live/presence authored in Haxe
- Portable Chat Tutorial - Shared Haxe domain logic pattern
- Dogfooding - External Phoenix app upgrade validation
- Todo-app Cowboy Toolchain - Why the todo-app pins Cowboy deps
- Production Hardening - Non‑alpha criteria + checklist
- Strict Mode - Opt-in Gleam-like safety profile
- Versioning & Stability - SemVer + stability tiers + deprecation policy
- Production Deployment - CI/Docker/release patterns
- VS Code Debugging (Source Maps) - Jump from
.exruntime locations back to Haxe - Performance Guide - Compilation performance
- Troubleshooting - Common issues and solutions
- Known Limitations - Sharp edges and experimental surfaces
- Support Matrix - CI-tested toolchain versions
- Licensing & Distribution - GPL notes (not legal advice)
Legacy guides (kept for link stability):
07-patterns/ - Code patterns and best practices
- Quick Start Patterns - Copy-paste patterns
- Functional Patterns - Result/Option and idioms
- LiveView Patterns - Phoenix LiveView patterns
- Ecto Patterns - Ecto/Phoenix integration patterns
- JavaScript Patterns - JS generation patterns
08-roadmap/ - Planning notes and long-term ideas
- Vision - Long-term ideas (not a stability contract)
Historical notes and experiments are kept in git history to keep the working tree focused and current.
Prefer CHANGELOG.md and ROADMAP.md for curated history.
10-contributing/ - Contribution guidelines and processes
- Contributing Guide - How to contribute
- Releasing - semantic-release + GitHub Releases
- Updating AGENTS.md - AI context and unified documentation strategy
- LLM Documentation Guide - How to write LLM-friendly documentation
- Documentation Philosophy - How docs are organized and maintained
- LLM Integration Index - Entry point for AI-facing docs
This documentation is optimized for AI assistant development with AGENTS.md files providing specialized context:
- AGENTS.md - Main AI instructions for documentation navigation
- 03-compiler-development/AGENTS.md - Compiler-specific AI context
- Start Here - Beginner quickstart (Haxe/Phoenix newcomers)
- Installation - Get started in 5 minutes
- Quickstart - Your first Haxe→Elixir project
- Phoenix (New App) - Greenfield Phoenix setup
- Phoenix (Existing App) - Add Haxe to an existing Phoenix app
- Interop With Existing Elixir - Call pure Elixir modules from Haxe with typed boundaries
- Type-Safe ChildSpec API - Canonical typed child-spec reference
- Phoenix Guide - Building Phoenix applications
- Troubleshooting - Solve common issues
- Known Limitations - Sharp edges and experimental surfaces
- Support Matrix - CI-tested versions
- Contributing - Help improve the project
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: You're looking at it!
Next Steps: Start with 01-getting-started/installation.md to begin your Haxe→Elixir journey.