noalphjs adalah framework JavaScript/TypeScript modern buatan Indonesia yang mengusung konsep Single-File Component (SFC) melalui ekstensi .eno.
Menggabungkan kemudahan menulis komponen bergaya deklaratif (seperti Vue dan Svelte) dengan kecepatan perkakas modern berbasis Vite, noalphjs dirancang agar ringan, modular, dan menyenangkan untuk dipelajari oleh siapapun.
- 🇮🇩 Dokumentasi Bahasa Indonesia Kelas Satu: Dirancang agar mudah dipelajari langsung oleh komunitas pengembang di Indonesia.
- ⚡ Super Cepat dengan Vite: Dibangun di atas Vite dengan dukungan Hot Module Replacement (HMR) bawaan.
- 🧩 Modular & Clean: Arsitektur pipeline terpisah dengan jelas antara Parser, Compiler, dan Renderer DOM.
- 📦 Ekosistem Lengkap: Mendukung SSR, client router, optimasi gambar, dan CLI generator interaktif.
Buat aplikasi baru hanya dengan satu perintah:
npx create-noalph-app my-app
cd my-app
npm install
npm run devBuka http://localhost:3000 di browsermu — aplikasi default siap dijalankan dari src/App.eno.
File .eno menyatukan skrip logika, template HTML, dan gaya CSS dalam satu file yang rapi:
<script>
let salam = 'Halo Indonesia'
let hitungan = 0
function tambah() {
hitungan++
document.querySelector('[data-count]').textContent = String(hitungan)
}
</script>
<div class="wadah">
<h1>{salam}!</h1>
<p>Komponen .eno pertamamu berjalan di browser.</p>
<div class="counter">
<button @click="tambah">Tambah</button>
<span>Total: <strong data-count="0">{hitungan}</strong></span>
</div>
</div>
<style>
.wadah {
padding: 2rem;
font-family: system-ui, sans-serif;
color: #334155;
}
h1 { color: #6366f1; }
.counter { margin-top: 1rem; display: flex; gap: 1rem; align-items: center; }
button {
background: #6366f1;
color: white;
border: none;
padding: 0.5rem 1rem;
border-radius: 6px;
cursor: pointer;
}
</style>
📖 Pelajari aturan sintaks lengkapnya di Panduan Sintaks .eno.
┌─────────────┐ ┌─────────────────┐ ┌───────────────────┐ ┌──────────────┐
│ File .eno │ ────► │ noalph-parser │ ────► │ noalph-compiler │ ────► │ renderer-dom │ ────► DOM Browser
│ (Source SFC)│ │ (Parse AST) │ │(Kompilasi JS/CSS) │ │(Mount & Event│
└─────────────┘ └─────────────────┘ └───────────────────┘ └──────────────┘
| Package | Deskripsi |
|---|---|
@alphaisyour/core |
Runtime entry point & re-export API publik |
@alphaisyour/parser |
Parser file .eno menjadi Abstract Syntax Tree (AST) |
@alphaisyour/compiler |
Mengompilasi AST .eno menjadi modul JavaScript dan CSS |
@alphaisyour/renderer-dom |
Runtime renderer untuk me-mount komponen ke DOM browser |
@alphaisyour/vite-plugin |
Plugin Vite resmi untuk kompilasi file .eno & HMR |
@alphaisyour/cli |
Perintah command line interface framework |
create-noalph-app |
CLI scaffolding interaktif untuk membuat proyek baru |
@alphaisyour/server |
Dukungan Server-Side Rendering (SSR) untuk .eno |
@alphaisyour/router |
Sistem client routing untuk navigasi halaman |
@alphaisyour/image |
Komponen gambar teroptimasi |
@alphaisyour/shared |
Konstanta, utilitas bersama, dan definisi tipe dasar |
Ingin tahu fitur apa yang sedang dikembangkan dan bagaimana masa depan noalphjs? Lihat dokumen ROADMAP.md kami untuk detail status fitur dan area yang membutuhkan bantuan kontributor.
Kami sangat menyambut kontribusi dari siapa saja—baik berupa perbaikan dokumentasi, penambahan unit test, pelaporan bug, maupun fitur baru.
- Buka CONTRIBUTING.md untuk panduan instalasi monorepo lokal, cara menjalankan tes, dan konvensi commit.
- Cari issue berlabel
good first issuedi GitHub Issues untuk memulai kontribusi pertamamu. - Diskusi atau tanyakan ide barumu di GitHub Discussions.
Terima kasih banyak kepada seluruh kontributor yang telah membantu mengembangkan noalphjs!
noalphjs adalah proyek open-source gratis dan terbuka untuk umum. Jika proyek ini bermanfaat bagimu atau menginspirasi belajarmu, kamu bisa memberikan dukungan sukarela untuk pengembangan berkelanjutan melalui:
☕ Dukung noalphjs di Buy Me a Coffee
Dukunganmu—baik berupa kontribusi kode, feedback, maupun secangkir kopi—sangat berarti bagi kemajuan proyek ini!
MIT © AlphaIsYour dan kontributor noalphjs.