โจ 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. - ๐ก๏ธ Built-in Authentication: Sistem keamanan BCrypt dengan proteksi sesi Rack untuk registrasi log-in area Admin.
- ๐ Interactive CMS Dashboard: Panel admin integratif untuk mengedit isi blog Markdown & transisi visibilitas via UI.
- ๐จ Asset Helpers: Library bawaan untuk pengelolaan CSS dan JS yang lebih rapi.
- ๐ Dynamic SEO Engine: Penanganan otomatis file
robots.txtdansitemap.xml. - ๐ JSON-LD Support: Dukungan data terstruktur (Structured Data) otomatis untuk SEO yang lebih optimal.
- ๐ป 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 dengan meta tambahan
eksa g post "Judul Artikel" --category "Kategori" --author "Nama Penulis" --image "url-gambar.jpg"
# Mengaktifkan/menonaktifkan fitur bawaan Eksa (auth / cms)
eksa feature enable auth
eksa feature enable cms
# Mengatur ulang sandi akun admin CMS langsung dari CLI
eksa reset-password admin PasswordBaru123
3. CMS Dashboard & Authentication
Eksa hadir dengan sistem manajemen konten internal bergaya Glassmorphism.
- Aktivasi: Pertama, jalankan
eksa feature enable authdaneksa feature enable cmsdari terminal Anda lalu restart server. - Registrasi: Akses
http://localhost:9292/auth/register(Hanya akun pertama yang bisa mendaftar sebagai Administrator). - Akses Dasbor: Masuk ke rute
/cmsuntuk melihat postingan, mengubah status publikasi (Draft / Aktif), menghapus postingan, hingga melakukan edit data via editor terintegrasi. - Proteksi Taut: Rute login dan CMS sepenuhnya difilter oleh perantara otentikasi sesi Rack. Admin yang berhasil masuk secara otomatis terlindungi dari paparan rute login berlebih.
4. 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.