Nixi Roadmap

This document outlines how Nixi will evolve from its current state to a full-featured web framework comparable to Next.js, with unique advantages like zero build step, native Lua implementation, and HTMX integration.

Current Status

Phase 1: Core Experience Complete

  • Native CSS DSL ✅ Done
  • HTMX bindings ✅ Done
  • GTK bindings ✅ Done
  • File-based routing ✅ Done
  • Live reload ✅ Done
  • CLI tool ✅ Done

Evolution Timeline

Phase 2: CLI & Tooling Planned

Essential development tools to improve developer experience.

  • nixi new <project> - Project scaffolding Planned
  • nixi generate component - Component generator Planned
  • nixi generate route - Route generator Planned
  • nixi dev - Dev server with live reload Planned
  • nixi build - Production build Planned
  • nixi add <package> - Install Lua packages Planned
  • nixi doctor - Check system requirements Planned

Phase 3: Full-Stack Features Future

Server-side rendering, layouts, middleware, and API routes.

  • Layouts & templates Future
  • API routes Future
  • Server-Side Rendering (SSR) Future
  • Static Site Generation (SSG) Future
  • Middleware system Future
  • Session management Future
  • Cookie handling Future

Phase 4: Component Library Future

Pre-built UI components for rapid development.

button input select checkbox radio switch modal drawer toast table form card badge avatar tabs accordion dropdown pagination loader progress tooltip alert nav

Phase 5: Database Integration Future

ORM, migrations, and query builder for data persistence.

  • Nixi.db - Database connector (SQLite, Postgres, MySQL) Future
  • Nixi.model - ORM/ActiveRecord style Future
  • Schema migrations Future
  • Fluent query API Future
  • Database seeding Future

Phase 6: State Management Future

Store, session, and caching utilities.

  • Nixi.store - State management (Redux/Zustand equivalent) Future
  • Nixi.session - Session handling Future
  • Nixi.cache - Caching (React Query/SWR equivalent) Future

Phase 7: Advanced Features Future

Real-time, i18n, validation, auth, and more.

WebSocket/SSE i18n Validation DSL File uploads Auth scaffolding Email templates Testing utils PWA support Image processing CLI commands

Phase 8: Async & Multi-threading Future

High-performance concurrent I/O for demanding applications.

  • Promise implementation Future
  • Nixi.async() - Coroutine wrapper Future
  • Nixi.await() - Async/await support Future
  • Thread pool manager Future
  • Nixi.http - Async HTTP client Future
  • Nixi.fs - Async file system Future
  • Multi-thread request handling Future

Competitive Advantages

Feature React Vue Next.js Nixi
Zero build step
Pure Lua
HTMX-native
Web + Desktop
Native CSS DSL
File-based routing ⚠️ ⚠️
Live reload ⚠️ ⚠️ ⚠️
Virtual DOM ❌ (faster)
TypeScript ⚠️ (LuaLS)
CLI tool ⚠️
Nix shell support
Learning curve High Medium High Low

Module Structure

The Nixi framework is organized into focused modules:

src/nixi/
├── types.lua       # LuaLS type definitions (central)
├── init.lua        # Core router + response helpers
├── style.lua       # CSS DSL
├── htmx.lua        # HTMX bindings & extensions
├── anim.lua        # Animation system (CSS + HTMX)
├── gtk.lua         # GTK bindings for desktop GUI
├── router.lua      # File-based routing
├── livereload.lua  # Live reload module
├── component.lua   # HTML DSL components
├── db.lua          # Database connector (planned)
├── ui/             # Component library (planned)
│   └── init.lua
└── middleware.lua  # Middleware system

Design Decisions

Decision Choice
CSS property syntax camelCase (backgroundColor, marginTop)
Selector structure Flat (no nesting)
CSS delivery Auto-inject in Layout + /style.css endpoint
HTMX approach Native attribute bindings + HTMX extensions
Animation approach CSS keyframes + HTMX OOB swaps
Type safety Full LuaLS (EmmyLua) annotations for all modules

Get Involved

Nixi is an open-source project. Contributions, feedback, and feature requests are welcome!

GitHub

Star, fork, and contribute to Nixi on GitHub.

Issues

Report bugs and suggest new features.