Website resmi Desa Curah Dringu β sebuah desa pesisir di tepi Selat Madura, Kecamatan Tongas, Kabupaten Probolinggo, Jawa Timur.
Tujuan utama website ini adalah melayani dan memberikan informasi yang akurat kepada masyarakat dengan tampilan yang modern, ramah, dan mudah diakses dari perangkat apa pun (mobile-friendly).
Identitas visual mengangkat tema pesisir β perpaduan warna teal laut dan amber senja β agar berbeda dari website desa pada umumnya.
- Fitur Utama
- Teknologi
- Memulai (Getting Started)
- Struktur Proyek
- Halaman & Rute
- Mengelola Konten
- Sistem Desain
- Komponen Penting
- Deploy
- Kontak
- Beranda informatif β hero pesisir, pintasan layanan, statistik desa (angka beranimasi), berita terbaru, potensi desa, agenda kegiatan, ajakan pengaduan, dan peta lokasi.
- Layanan administrasi β daftar layanan surat-menyurat beserta persyaratan dan alur pengurusan yang jelas.
- Profil desa β sejarah, visi & misi, serta struktur perangkat desa.
- Berita & pengumuman β kanal informasi terkini untuk warga.
- Potensi desa β etalase wisata pesisir, UMKM, dan hasil pertanian.
- Kontak & pengaduan β formulir aspirasi/pengaduan dengan validasi dan notifikasi (toast).
- Mobile-friendly β navigasi drawer di perangkat kecil, tata letak responsif di seluruh halaman.
- SEO & berbagi β meta tag, Open Graph, dan Twitter Card di setiap halaman.
| Kategori | Teknologi |
|---|---|
| Framework | Next.js 14 (Pages Router) |
| Bahasa | TypeScript |
| UI Library | Chakra UI v2 |
| Animasi | Framer Motion |
| Ikon | React Icons |
| Font | Plus Jakarta Sans (Google Fonts) |
- Node.js v18 atau lebih baru (diuji pada v22)
- Yarn atau npm
# 1. Instal dependency
yarn install # atau: npm install
# 2. Jalankan mode pengembangan
yarn dev # atau: npm run dev
# Buka http://localhost:3000
# 3. Build untuk produksi
yarn build # atau: npm run build
# 4. Jalankan hasil build
yarn start # atau: npm run start| Perintah | Fungsi |
|---|---|
yarn dev |
Menjalankan server pengembangan |
yarn build |
Membuat build produksi yang teroptimasi |
yarn start |
Menjalankan server dari hasil build |
yarn lint |
Menjalankan ESLint |
curahdringu/
βββ public/ # Aset statis (logo, favicon, gambar konten)
β βββ logo.png
β βββ favicon.ico
β βββ content.jpeg
βββ src/
β βββ data/
β β βββ site.ts # β Pusat semua data konten (lihat di bawah)
β βββ theme/
β β βββ index.ts # Tema Chakra: warna, font, gaya komponen
β βββ components/
β β βββ Layout/ # Pembungkus halaman (Head + Navbar + Footer)
β β βββ Head/ # Meta tag & SEO
β β βββ Navbar/ # Navigasi sticky + drawer mobile
β β βββ Footer/ # Footer multi-kolom
β β βββ ui/ # Komponen UI reusable
β β β βββ Reveal.tsx # Animasi muncul saat di-scroll
β β β βββ CountUp.tsx # Angka beranimasi (statistik)
β β β βββ SectionHeading.tsx # Judul section konsisten
β β β βββ PageHero.tsx # Header untuk halaman dalam
β β β βββ NewsCard.tsx # Kartu berita
β β βββ views/ # Komposisi tiap halaman
β β βββ Home/
β β β βββ index.tsx
β β β βββ Fragments/ # Section-section beranda
β β β βββ Hero.tsx
β β β βββ Stats.tsx
β β β βββ ServicesPreview.tsx
β β β βββ NewsSection.tsx
β β β βββ PotensiSection.tsx
β β β βββ AgendaSection.tsx
β β β βββ CtaSection.tsx
β β β βββ Maps.tsx
β β βββ Profil/
β β βββ Layanan/
β β βββ Berita/
β β βββ Potensi/
β β βββ Kontak/
β βββ pages/ # Rute (Next.js Pages Router)
β β βββ _app.tsx # Bungkus ChakraProvider + tema
β β βββ _document.tsx # HTML dasar + pemuatan font
β β βββ index.tsx # / β Beranda
β β βββ profil.tsx # /profil
β β βββ layanan.tsx # /layanan
β β βββ berita.tsx # /berita
β β βββ potensi.tsx # /potensi
β β βββ kontak.tsx # /kontak
β β βββ about.tsx # /about β redirect ke /profil
β β βββ api/hello.ts # Contoh API route bawaan
β βββ styles/
β βββ globals.css
βββ next.config.js
βββ tsconfig.json
βββ package.json
Pola arsitektur: file di pages/ sengaja dibuat tipis β hanya merender
komponen View terkait dari components/views/. Seluruh logika tampilan ada di
views, sehingga rute mudah dibaca dan tampilan mudah dirawat.
| Rute | Halaman | Isi |
|---|---|---|
/ |
Beranda | Hero, statistik, layanan, berita, potensi, agenda, CTA, peta |
/profil |
Profil Desa | Sejarah, visi & misi, struktur perangkat desa |
/layanan |
Layanan | Daftar layanan + persyaratan + alur "Cara Mengurus Surat" |
/berita |
Berita | Daftar berita & pengumuman |
/potensi |
Potensi Desa | Wisata pesisir, UMKM, pertanian |
/kontak |
Kontak | Info kontak, peta, formulir pengaduan/aspirasi |
/about |
β | Pengalihan permanen (301) ke /profil |
Semua konten website terpusat di satu file: src/data/site.ts. Untuk
memperbarui informasi desa, cukup ubah file ini β tidak perlu menyentuh kode
tampilan.
| Konstanta | Mengatur |
|---|---|
VILLAGE |
Nama, tagline, alamat, telepon, email, jam layanan, embed peta |
NAV_LINKS |
Menu navigasi navbar & footer |
STATS |
Statistik desa (penduduk, KK, luas wilayah, RT/RW) |
SERVICES |
Daftar layanan administrasi + persyaratan |
NEWS |
Berita & pengumuman |
POTENSI |
Potensi desa (wisata/UMKM/agro) |
AGENDA |
Jadwal kegiatan desa |
OFFICERS |
Nama & jabatan perangkat desa |
MISI |
Poin-poin misi desa |
QUICK_ACTIONS |
Pintasan cepat di hero beranda |
export const OFFICERS: Officer[] = [
{ name: "Tiyayah", role: "Kepala Desa" },
{ name: "Siti Maesaroh", role: "Sekretaris Desa" },
// ...tambah/ubah sesuai data asli
];export const VILLAGE = {
name: "Desa Curah Dringu",
phone: "(0335) 123-456", // β ganti dengan nomor asli
email: "halo@curahdringu.site",
// ...
};Catatan: sebagian data saat ini masih berupa contoh/placeholder (statistik, berita, agenda). Ganti dengan data sebenarnya sebelum publikasi.
Tema Chakra kustom mendefinisikan identitas visual desa:
brand(teal laut) β warna utama: tombol, aksen, tautan aktif.sand(amber senja) β warna sekunder: CTA & sorotan.ink(abu kebiruan) β teks & latar netral.- Font: Plus Jakarta Sans (dimuat via
_document.tsx). - Default komponen: tombol membulat penuh (
borderRadius: full), warna bawaanbrand.
Untuk mengganti warna utama, cukup sunting palet brand/sand di
src/theme/index.ts.
Layoutβ membungkus setiap halaman denganHead(SEO),Navbar, danFooter. Menerima proptitle&descriptionuntuk SEO per halaman.Revealβ animasi fade-up halus saat elemen masuk ke layar (Framer Motion + IntersectionObserver).CountUpβ menganimasikan angka statistik saat terlihat di layar.PageHeroβ header standar untuk halaman dalam (judul + breadcrumb).NewsCardβ kartu berita yang dipakai ulang di beranda & halaman berita.
Cara termudah men-deploy adalah lewat Vercel (pembuat Next.js):
- Hubungkan repository GitHub ini ke Vercel.
- Vercel mendeteksi Next.js otomatis β tanpa konfigurasi tambahan.
- Setiap
pushke branchmainakan ter-deploy otomatis.
Lihat dokumentasi deployment Next.js untuk opsi lain (Netlify, server sendiri, dll).
Ingin ikut memperbarui konten atau mengembangkan website? Baca CONTRIBUTING.md β tersedia panduan untuk pengelola desa (update konten tanpa coding) maupun pengembang (alur cabang, konvensi commit, gaya kode, menambah halaman).
Untuk diskusi lebih lanjut dengan pemilik repository ini, hubungi via WhatsApp.
Dibuat dengan π untuk warga Desa Curah Dringu