Skip to content

Latest commit

Β 

History

History
125 lines (90 loc) Β· 2.71 KB

File metadata and controls

125 lines (90 loc) Β· 2.71 KB

create-gleam-lustre-fullstack

A scaffolding tool for creating full-stack Gleam applications with Lustre, featuring client-server hydration.

Features

  • πŸš€ Full-stack Gleam/Lustre application setup
  • πŸ”„ Client-server hydration out of the box
  • ✨ Optimistic UI updates using the optimist package
  • πŸ“¦ Separate client, server, and shared modules
  • ⚑ Vite for fast client-side development
  • πŸ§ͺ Test setup for all modules

Usage

Using npm create (recommended)

npm create gleam-lustre-fullstack@latest

Using npx

npx create-gleam-lustre-fullstack@latest

Using pnpm

pnpm create gleam-lustre-fullstack@latest

Using yarn

yarn create gleam-lustre-fullstack

What's Included

The scaffolded project includes:

  • Client: Lustre frontend application with Vite

    • Hot module replacement
    • TypeScript declarations
    • CSS styling
    • Optimistic UI updates for better UX
  • Server: Gleam backend server

    • Static file serving
    • API endpoints ready
  • Shared: Common code between client and server

    • Shared types and logic
    • Reusable utilities

Project Structure

your-project/
β”œβ”€β”€ client/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ {name}_client.gleam
β”‚   β”‚   β”œβ”€β”€ main.js
β”‚   β”‚   └── main.css
β”‚   β”œβ”€β”€ test/
β”‚   β”œβ”€β”€ gleam.toml
β”‚   β”œβ”€β”€ package.json
β”‚   └── vite.config.js
β”œβ”€β”€ server/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ {name}_server.gleam
β”‚   β”‚   └── manifest.gleam
β”‚   β”œβ”€β”€ test/
β”‚   β”œβ”€β”€ priv/
β”‚   └── gleam.toml
└── shared/
    β”œβ”€β”€ src/
    β”‚   └── shared.gleam
    β”œβ”€β”€ test/
    └── gleam.toml

Getting Started

After scaffolding your project:

cd your-project

# Start development servers
# Terminal 1 - Start the client dev server
cd client && npm install && npm run dev

# Terminal 2 - Start the server
cd server && gleam run

# Or build for production
cd client && npm install && npm run build
cd server && gleam run

Requirements

Credits

License

MIT

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

Issues

If you find any bugs or have feature requests, please file an issue on the GitHub repository.