Aplikasi web modern untuk membuat undangan digital dengan mudah. Dibangun menggunakan React, TypeScript, dan Vite untuk performa yang optimal.
- π Interface yang User-Friendly - Desain yang bersih dan mudah digunakan
- π Generator Undangan Otomatis - Buat undangan dengan format yang rapi
- π Copy to Clipboard - Salin teks undangan dengan satu klik
- π± Responsive Design - Tampil sempurna di desktop dan mobile
- β‘ Fast & Lightweight - Dibangun dengan Vite untuk performa terbaik
- React 19.1.1 - Library UI modern
- TypeScript - Type safety dan developer experience yang lebih baik
- Vite - Build tool yang cepat dan efisien
- CSS3 - Styling modern dengan responsive design
- ESLint - Code quality dan consistency
Pastikan Anda sudah menginstall:
- Clone repository ini:
git clone https://github.com/rifkidocs/tebar-undangan-generator.git
cd tebar-undangan-generator
- Install dependencies:
yarn install
# atau
npm install
- Jalankan development server:
yarn dev
# atau
npm run dev
- Buka browser dan kunjungi
http://localhost:5173
yarn build
# atau
npm run build
- Masukkan Nama - Ketik nama penerima undangan di field yang tersedia
- Generate Undangan - Klik tombol "Generate Undangan" untuk membuat teks undangan
- Salin Teks - Gunakan tombol "Salin Teks Undangan" untuk menyalin ke clipboard
- Reset - Klik "Reset" untuk membuat undangan baru
Untuk mengkustomisasi template undangan, edit file src/App.tsx
pada bagian generateUndangan
function:
const teksUndangan = `Assalamualaikum Warahmatullahi Wabarakatuh
Tanpa mengurangi rasa hormat, perkenankan kami mengundang Bapak/Ibu/Saudara/i ${nama} untuk menghadiri acara kami.
Berikut link undangan kami, untuk info lengkap dari acara bisa kunjungi :
${linkUndangan}
Merupakan suatu kebahagiaan bagi kami apabila Bapak/Ibu/Saudara/i berkenan untuk hadir dan memberikan doa restu.
Terima kasih banyak atas perhatiannya.
Wassalamualaikum Warahmatullahi Wabarakatuh`;
Ubah URL undangan di bagian ini:
const linkUndangan = `https://undangan-dandi-ayu.rifkidocs.eu.org/?to=${encodeURIComponent(
nama
)}`;
Ganti dengan URL undangan Anda sendiri.
Edit bagian header di src/App.tsx
:
<header>
<h1>π Tebar Undangan Generator</h1>
<p>Buat undangan digital dengan mudah untuk acara Anda</p>
</header>
Edit file src/App.css
untuk mengubah:
- Warna tema - Ubah variabel CSS atau warna langsung
- Font - Ganti font family
- Layout - Modifikasi spacing, padding, margin
- Responsive design - Sesuaikan untuk mobile/desktop
// Template untuk acara pernikahan
const teksUndangan = `Assalamualaikum Warahmatullahi Wabarakatuh
Dengan memohon rahmat dan ridho Allah SWT, perkenankan kami mengundang Bapak/Ibu/Saudara/i ${nama} untuk menghadiri acara pernikahan putra-putri kami.
Detail acara:
π
Tanggal: [Tanggal Acara]
π Waktu: [Waktu Acara]
π Tempat: [Alamat Lengkap]
Link undangan lengkap: ${linkUndangan}
Atas kehadiran dan doa restu Bapak/Ibu/Saudara/i, kami ucapkan terima kasih.
Wassalamualaikum Warahmatullahi Wabarakatuh`;
Anda bisa menambah input field untuk variabel lain seperti tanggal, waktu, tempat:
const [tanggal, setTanggal] = useState("");
const [waktu, setWaktu] = useState("");
const [tempat, setTempat] = useState("");
// Dalam template
const teksUndangan = `...untuk menghadiri acara kami pada:
π
Tanggal: ${tanggal}
π Waktu: ${waktu}
π Tempat: ${tempat}
${linkUndangan}...`;
const [templateType, setTemplateType] = useState("default");
const generateUndangan = () => {
let teksUndangan = "";
switch (templateType) {
case "pernikahan":
teksUndangan = `Template pernikahan untuk ${nama}...`;
break;
case "ulangtahun":
teksUndangan = `Template ulang tahun untuk ${nama}...`;
break;
default:
teksUndangan = `Template default untuk ${nama}...`;
}
setHasilUndangan(teksUndangan);
setShowResult(true);
};
const generateUndangan = () => {
if (!nama.trim()) {
alert("Mohon masukkan nama terlebih dahulu");
return;
}
if (nama.length < 2) {
alert("Nama harus minimal 2 karakter");
return;
}
// Generate undangan...
};
const [preview, setPreview] = useState("");
useEffect(() => {
if (nama.trim()) {
const previewText = `Preview: Undangan untuk ${nama}...`;
setPreview(previewText);
}
}, [nama]);
yarn build
# Install Vercel CLI
npm i -g vercel
# Deploy
vercel
# Build dulu
yarn build
# Upload folder 'dist' ke Netlify
# Install gh-pages
yarn add -D gh-pages
# Tambahkan script di package.json
"homepage": "https://username.github.io/tebar-undangan-generator",
"scripts": {
"predeploy": "yarn build",
"deploy": "gh-pages -d dist"
}
# Deploy
yarn deploy
Aplikasi ini secara otomatis membuat format undangan yang rapi dengan:
- Salam pembuka yang sopan
- Nama penerima yang dipersonalisasi
- Link undangan yang dapat dikustomisasi
- Penutup yang hangat
Fitur ini memungkinkan Anda untuk:
- Menyalin teks undangan dengan satu klik
- Mengirim undangan melalui WhatsApp, email, atau platform lainnya
- Menghemat waktu dalam proses distribusi undangan
yarn dev
- Menjalankan development serveryarn build
- Build aplikasi untuk productionyarn preview
- Preview build productionyarn lint
- Menjalankan ESLint untuk code quality
tebar-undangan-generator/
βββ public/ # Static assets
βββ src/
β βββ App.tsx # Main application component
β βββ App.css # Main styles
β βββ main.tsx # Application entry point
β βββ index.css # Global styles
βββ package.json # Dependencies dan scripts
βββ vite.config.ts # Vite configuration
βββ README.md # Documentation
Kontribusi sangat diterima! Jika Anda ingin berkontribusi:
- Fork repository ini
- Buat branch fitur baru (
git checkout -b feature/AmazingFeature
) - Commit perubahan Anda (
git commit -m 'Add some AmazingFeature'
) - Push ke branch (
git push origin feature/AmazingFeature
) - Buat Pull Request
Distributed under the MIT License. See LICENSE
for more information.
Jika Anda memiliki pertanyaan atau saran, silakan hubungi:
- Email: [email protected]
- GitHub: @rifkidocs
- Terima kasih kepada semua kontributor yang telah membantu mengembangkan proyek ini
- Dibuat dengan β€οΈ untuk memudahkan proses pembuatan undangan digital
β Jangan lupa untuk memberikan star jika proyek ini membantu Anda!
β Jangan lupa untuk memberikan star jika proyek ini membantu Anda!