Kembali ke Blog
Framework 15 March 2026

Welcome To Eksa Framework

IshikawaUta

Penulis Artikel

Welcome To Eksa Framework

โœจ 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.txt dan sitemap.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 auth dan eksa feature enable cms dari 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 /cms untuk 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.