โจ Eksa Framework
Eksa Framework adalah micro-framework MVC (Model-View-Controller) modern yang dibangun di atas Ruby dan Rack. Didesain untuk pengembang yang menginginkan kecepatan, kode yang bersih, dan tampilan antarmuka Glassmorphism yang elegan secara out-of-the-box.
๐ Fitur Unggulan
- ๐ Modern Glassmorphism UI: Tampilan transparan yang indah dengan Tailwind CSS & Lucide Icons.
- โก Rack 3 & Middleware Support: Mendukung standar terbaru dan pembuatan pipeline middleware kustom.
- ๐ ๏ธ Powerful CLI: Inisialisasi project (
eksa init), jalankan server (eksa run), generate komponen, dan auto-routing otomatis. - ๐พ Dynamic Database Engine: Database SQLite otomatis dengan schema yang ditentukan oleh model Anda sendiri.
- ๐งช Built-in Testing: Lingkungan pengujian otomatis siap pakai menggunakan RSpec dan
rack-test. - ๐จ Asset Helpers: Library bawaan untuk pengelolaan CSS dan JS yang lebih rapi.
- ๐ Dynamic SEO Engine: Penanganan otomatis file
robots.txtdansitemap.xml. - ๐ป Aesthetic Error Pages: Halaman 404 dengan desain Glassmorphism yang elegan secara native.
๐ ๏ธ Instalasi Cepat
1. Install via Gem
gem install eksa-framework
2. Inisialisasi Project Baru
mkdir my-app && cd my-app
eksa init
3. Jalankan Server
bundle install
eksa run
๐ป Panduan Pengembangan
1. Konfigurasi Aplikasi (config.ru)
Eksa kini menggunakan blok inisialisasi untuk konfigurasi yang lebih fleksibel:
app = Eksa::Application.new do |config|
config.config[:db_path] = "./db/production.db"
config.use Rack::Static, urls: ["/css", "/img"], root: "public"
config.use Rack::ShowExceptions
end
2. CLI Generator
Hemat waktu dengan menggunakan generator bawaan:
# Membuat controller dan view template
eksa g controller Blog
# Membuat model dan schema database
eksa g model Post
# Membuat postingan blog baru
eksa g post "Judul Artikel"
3. Markdown Blog Engine
Eksa memiliki sistem blog bawaan yang cara kerjanya mirip Jekyll. Cukup buat file .md di folder _posts/ dengan metadata YAML (Front Matter):
---
title: "Halo Eksa"
date: 2026-03-15 14:00:00
---
Isi konten blog menggunakan **Markdown**.
Fitur Blog:
- Dynamic Slug: Otomatis mengenali rute
/posts/:slug. - Syntax Highlighting: Kode di dalam blog otomatis berwarna & punya tombol copy.
- Aesthetic UI: Template blog bawaan dengan desain Glassmorphism.
4. Database & Model
Definisikan schema tabel Anda langsung di dalam model:
class Post < Eksa::Model
def self.setup_schema
db.execute <<~SQL
CREATE TABLE IF NOT EXISTS posts (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT,
content TEXT
)
SQL
end
end
4. Asset Helpers
Gunakan helper di dalam view untuk menyisipkan asset:
<%= stylesheet_tag "style" %>
<%= javascript_tag "app" %>
5. Menjalankan Test
Pastikan aplikasi Anda berjalan dengan benar menggunakan RSpec:
bundle exec rspec
๐ Lisensi
Proyek ini dilisensikan di bawah MIT License. Lihat file LICENSE untuk detail lebih lanjut.