Todoit is a task management app built with Elixir, Phoenix LiveView, and Ash Framework. It demonstrates how to combine Ash Resources, UI frameworks, and advanced tooling to create a modern, modular, and scalable application.
- ✅ Task Management: Create, edit, delete, and toggle tasks.
- 🧮 Calculations: Custom Ash calculations (status, overdue, completion state).
- 🎨 Modern UI: Powered by DaisyUI, Mishka UI components, and Chelekom for consistent styling.
- 📊 Cinder Tables: Interactive tables with sorting and row actions.
- ⚡ Live Updates: Built with Phoenix LiveView for reactive experiences.
- 🛠️ Extensible: Structured around Ash Domain & Resource for easy future extensions.
- Elixir – functional programming core
- Phoenix Framework – web & LiveView layer
- Ash Framework – resource-based backend with actions, validations, and calculations
- AshPostgres – data layer integration with PostgreSQL
- AshPhoenix – LiveView form helpers for Ash
- Cinder – data tables and UI helpers
- DaisyUI – Tailwind CSS component library
- Mishka
-
Install dependencies
mix setup
-
Start the Phoenix server
mix phx.server # or inside IEx iex -S mix phx.server -
Open your browser at http://localhost:4000.
Run all tests with:
mix testIncludes:
- Unit tests for Ash resources/domains
- LiveView tests for interactive UI
- Integration tests for end-to-end flows
lib/todoit
├── todo/ # Ash Domain (Tasks context)
│ └── task.ex # Task Resource (attributes, actions, validations, calculations)
├── web/ # Phoenix Web Layer
│ ├── live/ # LiveViews (Form, Index)
│ ├── components/ # UI Components (Alerts, Buttons, etc.)
│ └── layouts/ # Application layouts
Built with ❤️ using:
MIT License © 2025