Website portofolio pribadi yang dibangun dengan Next.js, TypeScript, dan Tailwind CSS. Website ini menggunakan Notion sebagai CMS untuk mengelola konten blog dan portofolio.
Edit file lib/site-config.ts
untuk mengubah informasi dasar website:
export const siteConfig = {
name: "Your Name's Portfolio", // Ganti dengan nama Anda
description: "Personal portfolio about technology, programming, and insights",
url: "https://yourusername.github.io", // Ganti dengan username GitHub Anda
author: {
name: "Your Name", // Ganti dengan nama Anda
twitter: "@yourtwitter", // Ganti dengan Twitter handle Anda
linkedin: "yourlinkedin", // Ganti dengan username LinkedIn Anda
github: "yourgithub", // Ganti dengan username GitHub Anda
email: "your.email@example.com", // Ganti dengan email Anda
},
social: {
twitter: "https://twitter.com/yourtwitter",
linkedin: "https://linkedin.com/in/yourlinkedin",
github: "https://github.com/yourgithub",
}
}
Edit file app/page.tsx
untuk mengubah metadata halaman utama:
export const metadata: Metadata = {
title: "Your Name | Your Title", // Ganti dengan nama dan title Anda
description: "Personal website of Your Name, a [your profession] from [your location].",
keywords: ["your", "keywords", "here"], // Ganti dengan keyword yang relevan
// ... lainnya
}
Edit file components/home-page-client.tsx
bagian AboutSection:
const AboutSection = memo(() => (
<div className="container px-4 py-16 mx-auto max-w-7xl" id="about">
<h2 className="mb-8 text-3xl font-bold tracking-tight">About Me</h2>
<div className="grid gap-8 md:grid-cols-2">
<div className="space-y-4">
<p className="text-lg">
I'm a [your profession] based in [your location]. Currently working on [your current focus/role].
</p>
<p className="text-lg">
I specialize in [your main skills/technologies] and have experience in [your areas of expertise].
I'm passionate about [your interests/passions] and always eager to learn new technologies.
</p>
{/* Ganti dengan konten Anda */}
</div>
<div className="flex items-center justify-center">
<div className="relative w-64 h-64 overflow-hidden rounded-full border-4 border-primary/20">
<FallbackImage
src="https://avatars.githubusercontent.com/u/yourgithubid" // Ganti dengan GitHub ID Anda
alt="Your Name"
width={256}
height={256}
className="object-cover rounded-full"
priority
/>
</div>
</div>
</div>
</div>
))
Edit file components/hero-section.tsx
untuk mengubah konten hero:
const tabs = [
{
id: "developer", // Ganti dengan tab yang sesuai
label: "Developer",
icon: <Code className="w-5 h-5" />,
color: "neon-text-green",
},
// Tambahkan tab lain sesuai kebutuhan
]
const tabContent = {
developer: {
title: "Full Stack Developer", // Ganti dengan title Anda
subtitle: "Web Developer & Problem Solver", // Ganti dengan subtitle
description: "Your description here...", // Ganti dengan deskripsi
stats: [
{ label: "Years of Experience", value: "X+" },
{ label: "Projects Completed", value: "X+" },
{ label: "Technologies", value: "X+" },
],
},
// Tambahkan konten tab lain
}
components/skills-section.tsx
components/experience-section.tsx
components/projects-section.tsx
components/ctf-section.tsx
jika tidak relevanpublic/og-image.jpg
dengan gambar Open Graph Andapublic/favicon.svg
dengan favicon AndaWebsite ini menggunakan Notion sebagai CMS. Untuk mengatur konten blog:
Buat file .env.local
:
NOTION_TOKEN=your_notion_integration_token
NOTION_DATABASE_ID=your_database_id
POSTS_DIR=public/posts
NEXT_PUBLIC_BASE_URL=https://yourusername.github.io
NEXT_PUBLIC_BASE_PATH=/repository-name
npm run refresh-content
Script ini akan:
public/posts/
public/blog-index.json
# Install dependencies
npm install
# Build untuk production
npm run build
# Deploy ke GitHub Pages
npm run deploy
Buat file .github/workflows/deploy.yml
:
name: Deploy to GitHub Pages
on:
push:
branches: [ main ]
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup Node.js
uses: actions/setup-node@v2
with:
node-version: '18'
- name: Install dependencies
run: npm install
- name: Build
run: npm run build
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: $
publish_dir: ./out
# Install dependencies
npm install
# Run development server
npm run dev
# Build for production
npm run build
# Start production server
npm start
# Lint code
npm run lint
βββ app/ # Next.js app directory
β βββ page.tsx # Halaman utama
β βββ layout.tsx # Layout utama
β βββ globals.css # Global styles
βββ components/ # React components
β βββ home-page-client.tsx
β βββ hero-section.tsx
β βββ skills-section.tsx
β βββ ...
βββ lib/ # Utilities dan konfigurasi
β βββ site-config.ts # Konfigurasi situs
β βββ ...
βββ public/ # Static assets
β βββ posts/ # Blog posts (generated)
β βββ ...
βββ scripts/ # Build scripts
βββ generate-blog-content.js
βββ generate-blog-index.js
tailwind.config.ts
untuk custom themecomponents/ui/
MIT License - lihat file LICENSE untuk detail.