Skip to content

lassediercks/plato

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Plato - Declarative Content Management

A learning project demonstrating Elixir umbrella applications, DSLs, and Phoenix.

πŸ—οΈ Umbrella Architecture

plato/
β”œβ”€β”€ apps/
β”‚   β”œβ”€β”€ plato/          # Core library (Schema DSL + Registry)
β”‚   β”œβ”€β”€ plato_web/      # Phoenix web UI (optional)
β”‚   └── plato_example/  # Example schemas

Quick Start

mix deps.get          # Install dependencies
mix test              # Run tests
mix phx.server        # Start server at http://localhost:4000

How It Works

1. Define schemas:

use Plato.DSL

schema "BlogPost" do
  field(:title, :text, required: true)
  field(:body, :text)
end

2. Get auto-generated web UI!

  • Forms, validation, schema browsing - all automatic

Apps Explained

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

Why Umbrella?

βœ… 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!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published