
Daftar Isi
- Pendahuluan
- Download Node JS
- Download Laragon
- Vite
- Install React & Typescript
- Masuk dan Install
- Tailwind CSS
- Cara Memasukkan Tailwind ke React
- Install Tailwind CSS
- Konfigurasi
- CSS
- Hapus
- Ubah
- Tambah
- Hasil Struktur Folder Setelah di Tambah
- Pastikan Sudah Download Dependency Ini
- Download Template HTML Shaynakit
- Masukin Template ke React
- Copy Gambar & Icon
- Convert ke JSX
- Akses Browser
- Penutup
Pendahuluan
Kalau kamu baru ingin mulai belajar membangun web modern, kombinasi React, Tailwind CSS, dan TypeScript adalah paket lengkap yang layak dicoba. Di artikel ini, kita akan bahas langkah-langkah praktis dari awal hingga kamu berhasil membuat satu halaman web yang rapi, responsif, dan mudah dikembangkan. Tenang, semuanya akan dijelaskan dengan sederhana dan jelas. Dimuali dari mendownload Node JS dulu.
Download Node JS

Node.js itu ibarat dapur tempat JavaScript bisa masak. Kalau biasanya JavaScript hanya bisa dipakai untuk mengatur tampilan di halaman web, dengan Node.js kamu bisa pakai JavaScript untuk bikin hal-hal di belakang layar, seperti menyajikan data dari database, membuat server sendiri, menjalankan React JS atau menjalankan alat bantu seperti Tailwind CSS. Dibangun di atas mesin cepat milik Google (V8), Node.js memungkinkan developer membangun aplikasi yang ringan dan responsif hanya dengan satu bahasa untuk frontend dan backend.
Pastiin kamu sudah menginstall dan kalau mau cek hasilnnya ketik perintah ini di terminal kamu:
node -v
npm -v
Kalau memang sudah terinstall bakal muncul kayak gini yang artinya udah siap di pake nanti :

Download Laragon

Laragon itu ibarat kotak perkakas praktis untuk ngoding PHP dan web development di Windows. Daripada repot install Apache, MySQL, PHP, dan lain-lain satu per satu, Laragon menyatukannya dalam satu aplikasi ringan yang siap pakai. Dengan antarmuka yang simpel, kamu bisa langsung buat proyek Laravel, WordPress, atau lainnya hanya dengan beberapa klik. Selain itu, Laragon juga cepat, portabel, dan nggak bikin sistem berat. Cocok banget buat kamu yang ingin mulai belajar backend tanpa ribet konfigurasi sana-sini.
Pastiin kamu juga udah install Laragon ini, santai boleh pakai XAMPP karena sama aja, yang kita butuhin itu MySQL nya agar bisa nyambung React kita ke Database kita. Kalau udah berhasil install Laragon dan udah siap ciri-cirinya kayak gini:

Biar makin yakin udah bener, ketik http://localhost
di browser kamu dan hasilnya harus gini:

Vite

Vite adalah build tool modern yang bikin proses ngoding frontend jadi lebih cepat dan menyenangkan, terutama buat proyek React, Vue, atau lainnya. Saat kamu mulai ngoding, Vite langsung nyala dan tampilkan hasilnya tanpa loading lama, karena dia cuma memproses file yang benar-benar dibutuhkan. Pas udah siap dibuild untuk production, dia juga ngerapihin semuanya jadi ringan dan siap online. Selain itu, Vite didesain dengan arsitektur yang memanfaatkan kemampuan browser modern, jadi proses pengembangan terasa lebih responsif dan minim hambatan. Dengan fitur hot module replacement (HMR) yang super cepat, perubahan kode langsung terlihat tanpa perlu reload halaman penuh, membuat workflow kamu jadi jauh lebih efisien dan menyenangkan. Bisa dibilang, Vite itu seperti mesin kopi instan, sekali tekan, langsung jadi, beda dengan alat lama yang harus dipanaskan dulu dan bikin kamu nunggu lama sebelum bisa mulai ngoding.
Vite ini bakal kita pake buat install React nya biar nanti jalannya lebih powerful.
Install React & Typescript
Nah, sekarang setelah kita udah ngerti apa yang dibutuhin dan alat-alatnya juga udah siap, tinggal gas bikin proyeknya! Buat dulu folder terserah kamu mau kasih nama apa, terus buka folder itu di VSCode atau text editor favorit kamu sampai tampilannya kayak gambar ini:

Untuk langkah selanjutnya, buka terminal di dalam VSCode dengan cara tekan tombol CTRL + ` (tombol backtick, biasanya di bawah Esc). Setelah terminal muncul, kamu bisa langsung jalankan perintah di bawah ini untuk mulai setup proyek kamu:
npm create vite@latest
Pilih aja kayak yang di gambar di bawah ini, pilih React, TypeScript + SWC, dan beri nama proyek terserah kalian:

Masuk dan Install
Nah setelah itu tinggal masuk ke folder proyeknya lalu jalanin kayak gini:
cd belajar
npm install
npm run dev
Jadi, cd itu singkatan dari “change directory” alias masuk ke dalam folder. Nah, kalau kamu ketik cd belajar
, artinya kamu lagi pindah masuk ke folder yang namanya “belajar”. Terus, npm install itu perintah buat ngunduh dan memasang semua paket atau library yang dibutuhin proyek kamu supaya bisa jalan dengan lancar. Kalau npm run dev, itu perintah buat ngejalanin proyek kamu dalam mode development, jadi kamu bisa lihat hasilnya langsung dan kalo ada perubahan, tampilannya bakal otomatis update tanpa perlu di-refresh manual.
Lalu akses link dibawah ini, nanti proyeknya bakal tampil:

Kalau sudah kamu akses link itu tampilannya bakal gini:

Tailwind CSS

Jadi, Tailwind CSS itu kayak kotak peralatan serbaguna buat desain website. Bayangin kamu lagi ngegambar dan biasanya harus bikin kuas dan cat sendiri dulu, nah Tailwind ini sudah sediain ratusan kuas kecil yang tinggal kamu pakai langsung buat bikin gambar sesuai keinginan. Nggak perlu ribet nulis kode CSS panjang-panjang, kamu cuma pakai kelas-kelas kecil kayak bg-blue-500
buat warna biru, p-4
buat padding, atau flex
buat atur layout, langsung tempel di HTML kamu. Selain cepat dan praktis, Tailwind juga bikin tampilan website kamu gampang diatur dan konsisten karena semuanya seragam dari alat yang sama. Nah, kalau mau warna atau ukuran yang beda, tinggal atur di file konfigurasi, kayak nge-mix cat supaya warna yang kamu pakai pas banget. Intinya, pakai Tailwind itu kayak punya toolkit yang siap pakai buat bikin tampilan keren tanpa harus repot bikin semuanya dari nol.
Cara Memasukkan Tailwind ke React
Install Tailwind CSS
Sekarang, tinggal jalanin perintah ini di terminal yang ada di dalam folder proyek React kamu. Cukup ketik aja perintahnya, terus pencet Enter, nanti prosesnya bakal jalan otomatis:
npm install tailwindcss @tailwindcss/vite
Perintah npm install tailwindcss @tailwindcss/vite
ini fungsinya buat ngunduh dan pasang paket Tailwind CSS beserta plugin khusus yang bikin Tailwind bisa jalan lancar bareng Vite sebagai build tool-nya. Jadi, dengan perintah ini, kamu nggak cuma dapetin core Tailwind CSS buat styling, tapi juga integrasi yang mulus supaya Vite bisa proses Tailwind dengan cepat dan efisien saat kamu lagi develop proyek frontend-mu. Singkatnya, ini langkah penting supaya styling pakai Tailwind bisa berjalan sempurna di proyek React yang kamu bikin pakai Vite.
Hasilnya

Konfigurasi
Di dalam file vite.config.ts
kamu beri kode ini
import tailwindcss from '@tailwindcss/vite'
Kalimat import tailwindcss from '@tailwindcss/vite'
itu artinya kita lagi ngambil (import) plugin Tailwind CSS khusus yang dibuat untuk Vite ke dalam file konfigurasi atau skrip kita. Dengan nge-import ini, kita kasih tahu Vite supaya bisa pakai Tailwind CSS secara optimal dan nyatu banget sama proses build dan development yang lagi jalan. Jadi, plugin ini semacam jembatan yang bikin Tailwind dan Vite kerja barengan dengan mulus tanpa ribet.
tailwindcss()
tailwindcss()
itu kayak kamu lagi memanggil atau ngejalanin fungsi Tailwind CSS di dalam konfigurasi Vite. Jadi, pas kamu tulis tailwindcss()
, artinya kamu ngasih perintah supaya Vite aktifkan plugin Tailwind CSS yang tadi sudah di-import, supaya bisa langsung digunakan buat proses styling proyek kamu. Bisa dibilang, ini kayak tombol “ON” buat Tailwind di proyek kamu.
Sampai hasilnya gini
import { defineConfig } from "vite";
import react from "@vitejs/plugin-react-swc";
import tailwindcss from "@tailwindcss/vite";
// <https://vite.dev/config/>
export default defineConfig({
plugins: [react(), tailwindcss()],
});
CSS
Di file src/index.css
, hapus semua kode yang ada supaya kosong, lalu tinggal isi cuma dengan satu baris ini saja:
@import "tailwindcss";
Sekarang Tailwind sudah nyantol ke proyek React kita, jadi tinggal ambil css nya terus pake.
Hapus

Hapus file App.css
karena file tersebut enggak akan kita pake.
Ubah
Lalu hapus isi file ini :

Isi dengan:

Kode <BrowserRouter>
, <Routes>
, dan <Route>
yang kamu taruh di file App.tsx
di React itu fungsinya buat ngatur routing atau navigasi antar halaman di aplikasi kamu.
BrowserRouter
itu kayak pembungkus utama yang ngatur semua rute berdasarkan URL di browser, jadi React tahu harus nampilin halaman apa pas user akses URL tertentu.Routes
adalah tempat di mana kamu naro semua daftar rute (alias halaman) yang mau kamu buat.- Nah,
Route
itu satuan rute-nya. Di contoh kamu, pas user buka/
(halaman utama), maka React bakal nampilin komponen<HomePage />
.
Jadi, kode itu intinya nge-set: "Kalau URL-nya adalah /
, tampilkan halaman HomePage
." Simple dan terstruktur banget buat aplikasi yang butuh lebih dari satu halaman. Itu error karna kita belum buat filenya dan belum download depedencynya, tapi santai aja nanti bakal kita lakuin.
Tambah
Buat sekarang tambahin dulu file dan folder-folder keperluannya kayak:
- .env
File .env
di React itu fungsinya buat nyimpen data rahasia atau pengaturan penting yang nggak mau kamu tulis langsung di dalam kode. Misalnya kayak API key, URL backend, token, atau config lain yang bisa beda-beda antara development dan production. Dengan begitu, kamu bisa akses data itu lewat process.env.NAMA_VARIABEL
di dalam kode kamu, dan nilai aslinya diambil dari file .env
.
Nah, di React (pakai Vite atau CRA), nama variabelnya harus diawali dengan VITE_
(kalau pakai Vite) atau REACT_APP_
(kalau pakai CRA), misalnya VITE_API_URL=https://api.example.com
. Jadi, pakai .env
itu bikin proyek kamu lebih aman, rapi, dan gampang diatur.
Buat file ini di path terluar terus isi gini:

VITE_REACT_API_URL = <http://127.0.0.1:8000/api>
VITE_REACT_API_STORAGE_URL = <http://127.0.0.1:8000/storage>
Nah, keduanya itu berfungsi buat nyimpen alamat URL yang bakal dipakai di dalam aplikasi React kita. VITE_REACT_API_URL
biasanya dipakai buat ngarahin semua request API ke backend, misalnya ke Laravel atau server lokal kita yang lagi jalan di http://127.0.0.1:8000/api
, sedangkan VITE_REACT_API_STORAGE_URL
dipakai buat akses file atau gambar yang disimpan di direktori storage
backend. Dengan naruh ini di .env
, kita bisa panggil variabelnya lewat import.meta.env.VITE_REACT_API_URL
atau import.meta.env.VITE_REACT_API_STORAGE_URL
di file React, jadi nanti kalau mau ganti alamat server tinggal ubah di .env
aja tanpa perlu utak-atik banyak file.
- api
Folder api
yang kita taruh di dalam folder src
di proyek React (yang pakai Vite) biasanya dipakai buat nyimpen semua fungsi atau file yang berhubungan sama komunikasi ke backend atau API. Misalnya, di folder api
ini kita bisa bikin file kayak auth.ts
, user.ts
, atau produk.ts
yang isinya fungsi-fungsi buat ngirim request ke server, misalnya login, ambil data user, atau ambil daftar produk. Tujuannya biar kode kita lebih rapi dan terorganisir, jadi logika komunikasi ke server nggak nyampur sama komponen tampilan (UI). Jadi, tiap komponen cukup "minta data" dari folder api
, dan nggak perlu tahu detail cara ambil datanya gimana. Kayak punya bagian khusus buat ngobrol sama server, biar semua rapi dan enak dikelola.
- components
Folder components
di dalam folder src
di proyek React yang pakai Vite fungsinya buat nyimpen semua komponen UI yang kita bangun dan bisa dipakai ulang di berbagai bagian aplikasi. Komponen ini bisa berupa tombol, header, card, form, atau elemen-elemen kecil lainnya yang tampil di layar. Dengan memisahkannya ke dalam folder components
, struktur proyek jadi lebih rapi dan modular, jadi kalau kita mau ubah tampilan tombol misalnya, tinggal edit satu file tanpa harus cari-cari di banyak tempat. Intinya, folder ini jadi tempat ngatur bagian-bagian kecil dari tampilan yang bisa disusun bareng untuk membentuk halaman yang utuh.
- context
Folder context
di dalam folder src
di proyek React (yang pakai Vite) fungsinya buat nyimpen file-file yang berkaitan dengan manajemen state global pakai React Context API. Jadi kalau kita punya data atau state yang perlu diakses dari banyak komponen, misalnya data user yang sudah login, tema aplikasi (dark/light), atau status autentikasi, kita bisa simpan dan kelola datanya lewat Context. Dengan adanya folder context
, kita bisa bikin file seperti AuthContext.tsx
atau ThemeContext.tsx
yang masing-masing isinya menyediakan Provider
dan useContext
supaya komponen lain bisa ikut "nebeng" data dari satu sumber. Jadi, folder ini membantu kita bikin manajemen state lebih terstruktur, konsisten, dan gampang di-maintain.
- hooks
Folder hooks
di dalam folder src
di proyek React yang pakai Vite gunanya buat nyimpen custom hooks, yaitu fungsi-fungsi buatan sendiri yang memanfaatkan fitur React Hooks (kayak useState
, useEffect
, dll) untuk menangani logika tertentu yang bisa dipakai ulang di berbagai komponen. Misalnya, kita bisa bikin useAuth.ts
buat ngecek status login, useFetch.ts
buat ambil data dari API, atau useWindowSize.ts
buat deteksi ukuran layar. Dengan naruh semua custom hooks di folder hooks
, struktur proyek jadi lebih rapi, dan logika yang sering dipakai bisa ditulis sekali lalu dipanggil di mana pun dibutuhkan. Intinya, folder ini bantu kita pisahin logika dari tampilan supaya lebih modular dan mudah dirawat.
- pages
Folder pages
di dalam folder src
di proyek React yang pakai Vite fungsinya buat nyimpen file-file komponen yang mewakili halaman utama dalam aplikasi, seperti halaman beranda (HomePage.tsx
), login (LoginPage.tsx
), atau profil (ProfilePage.tsx
). Berbeda dari folder components
yang isinya bagian-bagian kecil UI, folder pages
biasanya berisi komponen tingkat tinggi yang menyusun berbagai komponen jadi satu tampilan halaman utuh. Folder ini juga sering dikaitkan langsung dengan routing (pakai React Router), jadi setiap file di pages
biasanya cocok dengan satu URL di aplikasi. Dengan begitu, struktur aplikasi jadi lebih teratur dan gampang diatur kalau proyek makin besar.
- providers
Folder providers
di dalam folder src
di proyek React yang pakai Vite biasanya dipakai buat nyimpen komponen-komponen provider yang membungkus aplikasi atau bagian tertentu dengan konteks khusus. Provider ini biasanya berisi komponen yang menggunakan React Context API, Redux Provider, Theme Provider, atau library lain yang butuh “membungkus” komponen supaya data atau fungsi tertentu bisa diakses turun-temurun oleh komponen-komponen di bawahnya. Misalnya, AuthProvider
buat ngatur status login, atau ThemeProvider
buat ngatur tema warna aplikasi. Dengan punya folder providers
, kita bisa kelola dan pisahkan logika penyedia data global secara rapi dan terstruktur, jadi saat mau pakai atau update provider, gampang ditemukan dan di-maintain.
- routes
Folder routes
di dalam folder src
di proyek React yang pakai Vite fungsinya buat ngatur semua konfigurasi routing atau jalur navigasi aplikasi. Di sini kita biasanya bikin file yang mendefinisikan bagaimana URL di aplikasi kita dipetakan ke komponen halaman tertentu, misalnya menentukan kalau path /
tampil HomePage
, /login
tampil LoginPage
, dan seterusnya. Dengan naruh semua aturan routing di folder routes
, kode jadi lebih terorganisir dan terpisah dari logika UI. Jadi kalau mau nambah, ubah, atau cek navigasi aplikasi, kita tinggal buka folder ini tanpa harus nyari di berbagai file. Ini penting banget supaya aplikasi React kita gampang dikelola, apalagi kalau sudah besar dan punya banyak halaman.
- schemas
Folder schemas
di dalam folder src
di proyek React yang pakai Vite biasanya dipakai buat nyimpen definisi struktur data atau aturan validasi yang digunakan di aplikasi. Misalnya, kita bisa bikin schema untuk validasi form dengan library seperti Yup atau Zod, di mana schema ini menjelaskan aturan seperti “email harus valid”, “password minimal 8 karakter”, atau “nama tidak boleh kosong”. Selain itu, folder schemas
juga bisa berisi tipe data atau interface TypeScript yang mendeskripsikan bentuk data yang kita pakai, supaya kode lebih terstruktur dan aman dari kesalahan tipe data. Dengan punya folder schemas
, kita bisa mengatur aturan dan tipe data di satu tempat khusus, bikin aplikasi lebih rapi dan gampang dipelihara.
- services
Folder services
di dalam folder src
di proyek React yang pakai Vite fungsinya buat menyimpan logika bisnis dan fungsi-fungsi yang berhubungan dengan interaksi ke luar aplikasi, seperti komunikasi dengan API, pengolahan data, atau fitur khusus yang butuh dipisah dari komponen UI. Misalnya, di sini kita bisa bikin file untuk fungsi-fungsi yang handle request ke backend, seperti userService.ts
yang isinya fungsi untuk login, register, atau ambil data user, atau paymentService.ts
yang urus proses pembayaran atau piService.ts
untuk mengakses axios. Dengan menaruh semua logika ini di folder services
, kode jadi lebih terorganisir dan komponen UI bisa fokus hanya pada tampilan dan interaksi pengguna tanpa kebingungan dengan logika bisnis. Jadi, folder services
bantu kita pisahkan tanggung jawab kode supaya aplikasi lebih modular dan gampang di-maintain.
Beri file ini dan isi ini:

- types
Folder types
di dalam folder src
di proyek React yang pakai Vite itu tempat kita nyimpen semua definisi tipe data atau interface TypeScript yang dipakai di seluruh aplikasi. Jadi kalau kita mau jelasin bentuk data, properti apa saja yang ada, atau tipe dari variabel tertentu, kita taruh di sini supaya kode lebih terstruktur dan gampang dipakai ulang. Dengan begitu, kita bisa lebih aman dan terhindar dari error tipe data karena semua tipe sudah didefinisikan dengan jelas dan bisa dipanggil di mana saja dalam proyek. Intinya, folder types
bikin pengelolaan tipe data jadi rapi dan efisien.
Contohnya seperti ini:

- utils
Folder utils
di dalam folder src
di proyek React yang pakai Vite itu tempat kita nyimpen berbagai fungsi kecil atau helper yang bisa dipakai ulang di banyak bagian aplikasi. Misalnya, fungsi buat format tanggal, hitung sesuatu, atau ngecek validasi sederhana yang nggak spesifik ke satu fitur tertentu. Dengan naruh fungsi-fungsi ini di folder utils
, kita jadi nggak perlu nulis ulang kode yang sama berkali-kali, dan struktur proyek jadi lebih bersih karena fungsi-fungsi bantuan ini terpisah dari logika utama aplikasi. Jadi, utils
itu kayak kotak alat kecil yang selalu siap dipakai kapan pun dibutuhkan.
Hasil Struktur Folder Setelah di Tambah

Pastikan Sudah Download Depedency Ini
Setelah memasukkan kode ini ke package.json
langsung saja jalankan perintah npm install
"dependencies": {
"@hookform/resolvers": "^5.0.1",
"@tailwindcss/vite": "^4.1.4",
"@tanstack/react-query": "^5.74.4",
"axios": "^1.9.0",
"date-fns": "^4.1.0",
"react": "^19.1.0",
"react-dom": "^19.1.0",
"react-router-dom": "^7.5.2",
"tailwindcss": "^4.1.4",
"zod": "^3.24.3"
},
@hookform/resolvers
: Plugin yang menghubungkan library validasi eksternal (seperti Zod atau Yup) ke React Hook Form, supaya kita bisa validasi form dengan aturan yang lebih kompleks.@tailwindcss/vite
: Plugin resmi Tailwind CSS buat integrasi dengan Vite. Ini bikin proses build dan hot reload Tailwind jadi lebih cepat dan lancar.@tanstack/react-query
: Library buat manajemen data fetching dan caching di React. Ngebantu kita ambil data dari API tanpa ribet urus loading, error, atau re-fetch otomatis.axios
: Library populer buat melakukan request HTTP (GET, POST, dll). Dipakai buat komunikasi antara frontend dan backend secara lebih simpel dibandingfetch
.date-fns
: Kumpulan fungsi JavaScript buat memanipulasi tanggal. Mirip kayak Moment.js, tapi lebih ringan dan modular.react
: Library utama untuk bikin UI berbasis komponen. Semua proyek React pasti butuh ini.react-dom
: Library yang ngurusin gimana komponen React dirender ke dalam DOM browser. Jadi pasangan utamanyareact
.react-router-dom
: Library untuk navigasi dan routing di aplikasi React berbasis web. Ngebantu kita bikin banyak halaman dalam satu aplikasi SPA (Single Page Application).tailwindcss
: Framework CSS utility-first yang bikin styling jadi cepat dan konsisten langsung dari HTML atau JSX tanpa harus nulis CSS panjang-panjang.zod
: Library validasi dan parsing data yang mirip Yup, tapi lebih ketat dan cocok banget dipakai bareng TypeScript karena integrasi tipenya yang solid.
Download Template HTML Shaynakit

Di tutorial kali ini, kita bakal pakai proyek dari Shaynakit buat ngubahnya ke React. Kabar baiknya, proyek ini gratis dan kodenya juga udah disediain. Jadi kamu bisa langsung pakai, atau modif-modif dikit biar sesuai sama kebutuhan. Nggak perlu mulai dari nol proses ngodingnya jadi jauh lebih gampang dan cepet.
Shaynakit sendiri tuh semacam website yang nyediain kumpulan desain bareng sama kodenya. Ada yang gratis, ada juga yang premium. Tapi tenang aja, yang gratis juga nggak pelit-pelit banget kok biasanya cuma dibatesin di jumlah halamannya aja. Nah, kalau yang premium, tentu lebih lengkap dan komplit, semua bagian udah siap pakai. Cara donwloadnya kayak gini:
- Buka situs utama ShaynaKit di https://shaynakit.com/landing.
- Klik menu atau tombol Register atau langsung buka https://shaynakit.com/register untuk membuat akun terlebih dahulu.
- Setelah berhasil mendaftar dan login, buka halaman template kode yang akan digunakan di https://shaynakit.com/details/ngekos-find-house-details-bokking-success-html-tailwind-css-template.
- Klik tombol Download, lalu pada opsi yang tersedia, pilih Free Trial.
- Klik tombol Start Today untuk memulai akses gratis.
- Setelah itu, kembali ke halaman yang sama: https://shaynakit.com/details/ngekos-find-house-details-bokking-success-html-tailwind-css-template, dan klik tombol Download sekali lagi.
- File template code akan terunduh dalam format .zip.
- Simpan file
.zip
tersebut ke dalam folder lokal proyek Anda, misalnya./source-code/ngekos.zip
.
Masukin Template ke React
Kalau udah download selanjutnya kita masukin 1 file ke proyek React.
Copy Gambar & Icon
buat pakai gambar dan icon dari template HTML yang udah kamu download tadi, kamu cukup cari folder yang namanya assets
, biasanya isinya gambar, icon, dan file pendukung lainnya. Nah, tinggal klik folder assets
itu, tekan Ctrl + C
buat copy, lalu buka proyek React kamu, masuk ke folder public
, dan paste di situ (Ctrl + V). Hasil akhirnya nanti folder assets
itu bakal nongkrong di dalam public
, jadi kamu bisa akses gambarnya langsung dari path kayak /assets/nama-file.png
. Letaknya kayak gini:

Convert ke JSX
Setelah kamu download file .zip
-nya, jangan lupa klik kanan → Extract All, biar semua isi file-nya bisa kita akses. Nah, abis itu buka folder hasil ekstrak-nya pakai VSCode. Begitu masuk, cari file yang namanya index.html
, buka, dan salin dari tag <main>
yang pembuka sampai tag </main>
yang penutup, pokoknya seluruh isi <main>
itu. Setelah itu, tinggal paste ke website yang ada di bawah ini:

Lalu tombol “Copy” berwarna biru di pojok atas kanan itu klik untuk mengcopy tag jsxnya, lalu kembali ke VSCode, paste ke dalam HomePage.tsx kayak gini:

Akses Browser
Lalu jalankan perintah
npm run dev
Hasil

Nah, kalau tampilannya sekarang kelihatan berantakan, tenang dulu, itu bukan berarti ada yang salah. Sebenarnya tampilannya cuma belum sempurna karena belum ada Swiper JS-nya yang dipakai buat fitur scroll-slide di template aslinya. Jadi wajar aja kalau elemen yang seharusnya bisa digeser (kayak carousel atau slider) sekarang malah numpuk ke bawah atau nggak bisa digeser sama sekali.
Solusinya simpel: tinggal install Swiper JS untuk React dan terapin di komponen yang butuh scroll. Begitu Swiper-nya udah kepasang dan disetting, tampilannya bakal mirip persis sama template HTML awalnya. Jadi tenang, tinggal satu langkah lagi nih buat bikin semuanya kelihatan rapi dan interaktif.
Dan agar kamu mahir pake Tailwind sekaranglah waktunya challenge coba install dan terapi Swiper JS nya biar React kamu makin gacor.
Penutup
Setelah kamu ikutin semua langkahnya, harapannya kamu nggak cuma berhasil bikin satu halaman web yang keren, tapi juga makin paham cara kerja proyek modern berbasis React, Tailwind CSS, dan TypeScript. Jangan takut buat eksplor lebih jauh, karena dari sini kamu udah punya pondasi kuat buat bangun proyek yang lebih besar dan kompleks ke depannya. Semangat ngoding, dan selamat mencoba! 🚀