crystal-world

Frameworkless Crystal blog engine with server-driven UI using HTMX

the-crystal-world

A small blog engine written in Crystal, built without a front-end or back-end framework, and intended as a learning and consolidation project rather than a general-purpose platform.

Although the application is server-centric and dynamically rendered, it aims to provide a fast, fluid user experience through selective use of HTMX and Hyperscript, avoiding full page reloads and heavy client-side state.

Goals

  • Understand and implement core web application concerns without a framework
  • Explore a server-driven architecture with a modern interaction model
  • Learn and evaluate Crystal as a production language
  • Build a usable foundation for small, real-world projects
  • Keep the system readable, explicit, and enjoyable to work with

Context

This project was deliberately “reinvented from first principles” as a way to test assumptions about contemporary web stacks. Rather than reproducing a full SPA architecture, it explores how far a traditional server-rendered application can be taken using incremental enhancement. The result is a thin-client system that behaves more like a static-site-style application in use, while remaining operationally simple.

Structure

At a high level, the system is organised as follows:

HTTP requests → Crystal application (routing, auth, rendering) → HTML responses with incremental updates → static assets and client-side enhancement

All application logic lives on the server. Client-side code is used only to support interaction, not to manage application state.

Implementation notes

The application implements core concerns explicitly, including:

  • routing and request handling
  • authentication and session management
  • template rendering
  • database access
  • CSRF and XSS mitigation
  • image upload and hosting

Content is authored in Markdown and rendered server-side. The admin interface acts as a small CMS, intended for single-user or low-friction use rather than multi-tenant deployment.

The emphasis throughout is on clarity and control rather than abstraction.

Features

  • Admin interface for managing content
  • Markdown-based article editing with live previews
  • CRUD operations for articles, authors, pages, and settings
  • Image management via a cloud API
  • Reactive UI behaviour without full page reloads

Screenshots

Home page

Article page

Glassmorphism

Admin: articles

Admin: articles 2

Admin: edit article

Admin: article preview

Admin: article properties

Admin: article properties 2

Admin: article properties 3

Admin: image gallery

Admin: authors

Status

This project is exploratory. It is complete enough to be used, but primarily serves as a reference point for architectural and language-level experimentation.

Repository

crystal-world

Owner
Statistic
  • 0
  • 0
  • 0
  • 0
  • 8
  • 17 days ago
  • November 22, 2023
License

Links
Synced at

Thu, 08 Jan 2026 14:31:56 GMT

Languages