A learning project demonstrating Elixir umbrella applications, DSLs, and Phoenix.
plato/
βββ apps/
β βββ plato/ # Core library (Schema DSL + Registry)
β βββ plato_web/ # Phoenix web UI (optional)
β βββ plato_example/ # Example schemas
mix deps.get # Install dependencies
mix test # Run tests
mix phx.server # Start server at http://localhost:40001. Define schemas:
use Plato.DSL
schema "BlogPost" do
field(:title, :text, required: true)
field(:body, :text)
end2. Get auto-generated web UI!
- Forms, validation, schema browsing - all automatic
plato - Core library (no Phoenix dependency)
- Can be used in any Elixir project
- Just the DSL and Registry
plato_web - Optional web interface
- Depends on
plato - Provides Phoenix-based management UI
plato_example - Demo app
- Shows how to use Plato
- Defines example schemas
β Core library stays clean and reusable β Web UI is optional β Clear separation of concerns β Mirrors real-world Elixir apps
See TUTORIAL.md for in-depth learning!