Skip to content

Phoenix TUI Framework v0.1.0 - Production Ready ๐Ÿš€

Choose a tag to compare

@kolkov kolkov released this 04 Nov 20:59
· 30 commits to main since this release

Phoenix TUI Framework v0.1.0 - FIRST STABLE RELEASE ๐Ÿš€

Status: โœ… PRODUCTION READY - API Quality 9/10

Phoenix TUI Framework v0.1.0 is the first stable release! This marks the completion of 20 weeks of development with comprehensive features, professional documentation, and production-ready API validated against Go best practices 2025.

โœจ Highlights

  • 8 production-ready libraries with 91.8% average test coverage
  • Perfect Unicode/Emoji support (fixes Charmbracelet Lipgloss #562)
  • 489x faster than 60 FPS target (29,000 FPS achieved!)
  • Professional documentation (10,568 lines)
  • API quality: 9/10 (validated against Go 2025 best practices)
  • Zero external TUI dependencies (stdlib + platform APIs only)

๐Ÿ“ฆ What's Included

Core Libraries (10 modules):

  • core v0.1.0 - Terminal primitives (98.4% coverage)
  • style v0.1.0 - CSS-like styling (100% coverage)
  • layout v0.1.0 - Box model + Flexbox (98.5% coverage)
  • tea v0.1.0 - Elm Architecture (82.1% coverage)
  • render v0.1.0 - High-performance rendering (93.0% coverage)
  • components v0.1.0 - UI components (100% coverage)
  • mouse v0.1.0 - Mouse interaction (100% coverage)
  • clipboard v0.1.0 - Clipboard operations (72.7% coverage)
  • terminal v0.1.0 - Platform abstraction
  • testing v0.1.0 - Testing utilities (72.1% coverage)

UI Components (6 ready-to-use):

  • TextInput, List, Viewport, Table, Modal, Progress

๐ŸŽฏ Week 20: API Validation & Compliance

Comprehensive API review and compliance with modern Go standards:

  1. Zero Value Documentation (20 types documented)

    • Consistent zero value behavior docs across all modules
    • Clear guidance: "will panic if used" vs "valid but empty"
    • Template-based documentation for consistency
  2. API Quality Research

    • Comprehensive Go API best practices research (42KB document)
    • Validated against top Go libraries (Cobra, Zap, Testify, Prometheus)
    • Phoenix API Quality Assessment: 9/10 - Excellent!
  3. Cobra + Phoenix Integration Example

    • Production-ready CLI+TUI hybrid pattern
    • Real-world pattern for DevOps/database/config tools

๐Ÿ“š Professional Documentation (Week 19)

Complete documentation overhaul (10,568 lines):

  • API documentation for all 10 modules
  • Architecture patterns and DDD guide
  • Testing guide with strategies
  • Performance optimization guide
  • Migration guides (Bubbletea โ†’ Phoenix)
  • Troubleshooting and FAQ

โšก Performance

  • 29,000 FPS rendering (489x faster than 60 FPS target)
  • Zero allocations in hot paths
  • Optimized Unicode width calculations
  • Efficient differential rendering algorithm

๐ŸŒ Cross-Platform Support

  • โœ… Windows (native)
  • โœ… macOS (tested in CI)
  • โœ… Linux (primary platform)
  • โœ… WSL2 (Gentoo/Ubuntu tested)

๐Ÿ“Š Project Statistics

  • Lines of Code: ~45,000+ (production code)
  • Test Coverage: 91.8% (all modules >70%)
  • Documentation: 10,568 lines
  • Modules: 10 (all production-ready)
  • Components: 6 (fully functional)
  • Development: 20 weeks (6 months)
  • API Quality: 9/10 (validated)

๐Ÿš€ Getting Started

# Install Phoenix
go get github.com/phoenix-tui/phoenix@v0.1.0

# Or specific module
go get github.com/phoenix-tui/phoenix/core@v0.1.0
go get github.com/phoenix-tui/phoenix/tea@v0.1.0
go get github.com/phoenix-tui/phoenix/components@v0.1.0

Quick Example:

package main

import (
    "fmt"
    "github.com/phoenix-tui/phoenix/tea"
    "github.com/phoenix-tui/phoenix/core"
)

type model struct {
    count int
}

func (m model) Init() tea.Cmd { return nil }

func (m model) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
    switch msg := msg.(type) {
    case tea.KeyMsg:
        switch msg.String() {
        case "q", "ctrl+c":
            return m, tea.Quit
        case "up":
            m.count++
        case "down":
            m.count--
        }
    }
    return m, nil
}

func (m model) View() string {
    return fmt.Sprintf("Count: %d\n\nPress โ†‘/โ†“ to change, q to quit", m.count)
}

func main() {
    p := tea.NewProgram(model{})
    if _, err := p.Run(); err != nil {
        panic(err)
    }
}

๐Ÿ“– Documentation

๐Ÿ”ฎ Version Strategy

Phoenix follows cautious versioning:

  • v0.1.0 = First public release (API may evolve based on feedback)
  • v0.2.0, v0.3.0 = Iterations with community input
  • v1.0.0-RC = API freeze (6-12 months after v0.1.0)
  • v1.0.0 = Production certification (backwards compatibility guaranteed)

This approach allows us to gather real-world feedback before committing to API stability.

๐ŸŽฏ Next: v0.2.0

Planned features:

  • Signals integration (reactive views with hybrid approach)
  • Form components (Select, MultiSelect, Confirm)
  • Theme system with presets
  • Animation framework
  • Advanced layout (Grid support)
  • Context support (Add *Context() methods for async operations)

๐Ÿ™ Acknowledgments

Built with:

  • Domain-Driven Design (DDD) architecture
  • Test-Driven Development (TDD) methodology
  • Elm Architecture pattern (MVU)
  • Go 1.25+ modern features (generics, workspace mode)
  • Community feedback from beta testing

Full Changelog: https://github.com/phoenix-tui/phoenix/blob/main/CHANGELOG.md

Installation: go get github.com/phoenix-tui/phoenix@v0.1.0