Skip to content

sekeco/sekeco.github.io

Repository files navigation

Sekeco Portfolio Website

A modern portfolio website built with Nuxt 4, showcasing projects, articles, and testimonials with high performance and elegant design.

✨ Features

  • 🎨 Modern UI/UX - Built with Nuxt UI and custom components with smooth animations
  • πŸ“ Content Management - Nuxt Content for managing articles and projects with markdown
  • 🎯 SEO Optimized - Built-in SEO with @nuxtjs/seo for maximum visibility
  • πŸŒ“ Dark/Light Mode - Automatic theme switching based on user preference
  • πŸ“± Fully Responsive - Perfect design across all devices
  • ⚑ Performance First - SSR/SSG with Nuxt 4 for lightning-fast loading
  • 🎭 Visual Effects - Aurora background, grid patterns, and neon borders
  • πŸ“Š Analytics Ready - Google Analytics integration with nuxt-gtag
  • πŸ” TypeScript - Full type safety for better development experience

πŸ—οΈ Tech Stack

  • Framework: Nuxt 4 - The Intuitive Vue Framework
  • UI Library: Nuxt UI - Beautiful and accessible UI components
  • Content: Nuxt Content - File-based CMS
  • Styling: TailwindCSS (via Nuxt UI)
  • Icons: Iconify (Lucide & Simple Icons)
  • Animations: Motion-v
  • SEO: @nuxtjs/seo
  • Analytics: nuxt-gtag
  • Utilities: VueUse
  • Package Manager: pnpm

πŸ“‹ Prerequisites

Make sure you have installed:

  • Node.js >= 18.x
  • pnpm >= 10.x (recommended) or npm/yarn/bun

πŸš€ Quick Start

1. Clone Repository

git clone <repository-url>
cd sekeco.github.io

2. Install Dependencies

pnpm install

3. Setup Environment Variables

Create a .env file in the project root:

# Site Configuration
NUXT_SITE_URL=http://localhost:3000
NUXT_SITE_NAME=Sekeco
NUXT_SITE_DESCRIPTION=Making a well furnished branding solely for what you're hoping

# Analytics (Optional)
NUXT_PUBLIC_GTAG_ID=G-XXXXXXXXXX

4. Run Development Server

pnpm dev

Open your browser to http://localhost:3000 πŸŽ‰

πŸ“ Project Structure

sekeco.github.io/
β”œβ”€β”€ app/                          # Nuxt application directory
β”‚   β”œβ”€β”€ app.config.ts            # App configuration & theme
β”‚   β”œβ”€β”€ app.vue                  # Root component
β”‚   β”œβ”€β”€ assets/                  # Static assets
β”‚   β”‚   β”œβ”€β”€ css/
β”‚   β”‚   β”‚   └── main.css        # Global styles
β”‚   β”‚   └── icons/              # Custom icons
β”‚   β”œβ”€β”€ components/              # Vue components
β”‚   β”‚   └── global/             # Auto-imported global components
β”‚   β”‚       β”œβ”€β”€ AuroraBackground.vue
β”‚   β”‚       β”œβ”€β”€ GridBackground.vue
β”‚   β”‚       └── NeonBorder.vue
β”‚   └── pages/                   # File-based routing
β”‚       β”œβ”€β”€ index.vue           # Homepage
β”‚       β”œβ”€β”€ articles/           # Articles pages
β”‚       β”‚   β”œβ”€β”€ index.vue       # Articles list
β”‚       β”‚   └── [slug].vue      # Single article
β”‚       β”œβ”€β”€ projects/           # Projects pages
β”‚       β”‚   β”œβ”€β”€ index.vue       # Projects list
β”‚       β”‚   └── [slug].vue      # Single project
β”‚       └── testimonials/       # Testimonials pages
β”‚           └── index.vue       # Testimonials list
β”‚
β”œβ”€β”€ content/                     # Markdown content files
β”‚   β”œβ”€β”€ index.yml               # Homepage content
β”‚   β”œβ”€β”€ articles/               # Blog articles
β”‚   β”œβ”€β”€ projects/               # Portfolio projects
β”‚   β”œβ”€β”€ team/                   # Team members
β”‚   └── testimonials/           # Client testimonials
β”‚
β”œβ”€β”€ public/                      # Static files (served as-is)
β”‚   └── projects/               # Project images
β”‚
β”œβ”€β”€ server/                      # Server-side code
β”‚   └── tsconfig.json
β”‚
β”œβ”€β”€ shared/                      # Shared utilities & types
β”‚   β”œβ”€β”€ types/
β”‚   β”‚   └── index.d.ts
β”‚   └── utils/
β”‚       └── enum.ts
β”‚
β”œβ”€β”€ content.config.ts            # Nuxt Content configuration
β”œβ”€β”€ nuxt.config.ts              # Nuxt configuration
β”œβ”€β”€ package.json                # Dependencies & scripts
β”œβ”€β”€ pnpm-workspace.yaml         # pnpm workspace config
β”œβ”€β”€ tsconfig.json               # TypeScript configuration
└── eslint.config.mjs           # ESLint configuration

πŸ› οΈ Available Scripts

# Development
pnpm dev                 # Start dev server
pnpm dev --host          # Expose to network

# Building
pnpm build              # Build for production
pnpm generate           # Generate static site (SSG)
pnpm preview            # Preview production build

# Code Quality
pnpm lint               # Run ESLint
pnpm lint:fix           # Fix ESLint errors
pnpm typecheck          # Check TypeScript types

# Other
pnpm postinstall        # Prepare Nuxt (auto-runs after install)

πŸ“ Content Management

Adding Articles

Create a new markdown file in content/articles/:

---
title: "Article Title"
description: "Brief article description"
publishedAt: "2025-11-20"
category: "Design"
tags: ["branding", "design"]
image: "/images/article-cover.jpg"
author: "Rasyid Ridho"
---

# Article content starts here

Write your article content with markdown...

Adding Projects

Create a new markdown file in content/projects/:

---
title: "Project Name"
description: "Project description"
category: "Web Development"
tags: ["nuxt", "vue", "tailwind"]
image: "/projects/project-cover.jpg"
url: "https://example.com"
year: 2025
---

# Project details

Tell about your project...

Adding Testimonials

Create a new markdown file in content/testimonials/:

---
name: "Client Name"
role: "Position"
company: "Company Name"
avatar: "/avatars/client.jpg"
rating: 5
---

"Testimonial content here..."

🎨 Customization

Theme Colors

Edit app/app.config.ts to change the color scheme:

export default defineAppConfig({
	ui: {
		colors: {
			primary: "blue", // Primary color
			secondary: "purple", // Secondary color
			info: "sky",
			neutral: "zinc",
		},
	},
})

Global Styles

Edit app/assets/css/main.css for custom global CSS.

Component Styling

All UI components use Nuxt UI which can be customized via app.config.ts.

🌐 Deployment

Static Hosting (Recommended)

Generate static site:

pnpm generate

Deploy the .output/public folder to:

  • GitHub Pages
  • Netlify
  • Vercel
  • Cloudflare Pages
  • Firebase Hosting

Server Hosting

Build for SSR:

pnpm build

Deploy the .output folder to:

  • Node.js server
  • Vercel
  • Netlify
  • Railway
  • Render

GitHub Pages

To deploy to GitHub Pages, add a workflow file .github/workflows/deploy.yml:

name: Deploy to GitHub Pages

on:
    push:
        branches: [main]

jobs:
    deploy:
        runs-on: ubuntu-latest
        steps:
            - uses: actions/checkout@v4
            - uses: pnpm/action-setup@v3
              with:
                  version: 10
            - uses: actions/setup-node@v4
              with:
                  node-version: 20
                  cache: "pnpm"
            - run: pnpm install
            - run: pnpm generate
            - uses: peaceiris/actions-gh-pages@v4
              with:
                  github_token: ${{ secrets.GITHUB_TOKEN }}
                  publish_dir: ./.output/public

πŸ”§ Configuration

Nuxt Config

nuxt.config.ts is the application configuration center:

  • Modules: List of modules used
  • App: Transition settings and layout config
  • Site: SEO metadata and site info
  • Runtime Config: Environment variables
  • OG Image: Open Graph image settings
  • Google Analytics: Tracking configuration

TypeScript

This project is fully typed with TypeScript. Type definitions are in:

  • shared/types/index.d.ts - Global types
  • Component props use TypeScript interfaces

πŸ“± Pages Overview

Homepage (/)

Landing page with hero section, featured projects, and call-to-action.

Articles (/articles)

  • List view: Grid of all articles with filter and search
  • Detail view: Full article with markdown rendering

Projects (/projects)

  • List view: Portfolio gallery with categories
  • Detail view: Detailed project case study

Testimonials (/testimonials)

Grid view of all client testimonials.

🎭 Components

Global Components

Components in app/components/global/ are auto-imported:

  • AuroraBackground - Animated gradient background effect
  • GridBackground - Subtle grid pattern overlay
  • NeonBorder - Glowing border effect for cards

Usage Example

<template>
	<AuroraBackground>
		<h1>Your content here</h1>
	</AuroraBackground>
</template>

πŸ” SEO Best Practices

This project includes:

  • βœ… Automatic meta tags per page
  • βœ… Open Graph tags for social sharing
  • βœ… Sitemap generation
  • βœ… robots.txt
  • βœ… Structured data (JSON-LD)
  • βœ… Semantic HTML
  • βœ… Performance optimization

πŸ“Š Analytics

Google Analytics is automatically enabled in production. Set NUXT_PUBLIC_GTAG_ID in environment variables.

Event tracking is integrated for:

  • Page views
  • Navigation clicks
  • External links
  • User interactions

🀝 Contributing

Contributions welcome! Please:

  1. Fork repository
  2. Create feature branch (git checkout -b feature/AmazingFeature)
  3. Commit changes (git commit -m 'Add some AmazingFeature')
  4. Push to branch (git push origin feature/AmazingFeature)
  5. Open Pull Request

πŸ“„ License

This project is licensed under the MIT License.

πŸ‘¨β€πŸ’» Author

Rasyid Ridho

πŸ™ Acknowledgments

πŸ“š Resources


Made with ❀️ by Sekeco Team

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published