Skip to content

Steellgold/website

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

OG GitHub

This repository contains the source code for my personal portfolio website, developed with Next.js 15 and TypeScript. This site showcases my development skills through interactive components, responsive design, and modern web technologies.

πŸ“š Tech Stack

  • Framework: Next.js 15 - React framework with App Router and Turbopack
  • Language: TypeScript - for static typing and better maintainability
  • Styling: Tailwind CSS v4 - utility CSS framework with custom configurations
  • UI Components: shadcn/ui - accessible and customizable interface elements
  • Icons: Lucide React - beautiful & consistent icon toolkit
  • Markdown: React Markdown - for blog content rendering
  • State Management: React Context API for lightweight state management
  • Blogging: Simplist SDK - for fetching and displaying blog articles

πŸ”§ API Integrations and Environment Variables

The project integrates multiple services requiring environment variables:

# Blog Content (Required)
SIMPLIST_API_KEY=<Your Simplist API Key>

# URL Shortener (Required for shortener functionality)
UPSTASH_REDIS_REST_URL=<Your Upstash Redis URL>
UPSTASH_REDIS_REST_TOKEN=<Your Upstash Redis Token>

# Spotify Integration (Optional - for music player)
SPOTIFY_CLIENT_ID=<Your Spotify Client ID>
SPOTIFY_CLIENT_SECRET=<Your Spotify Client Secret>
SPOTIFY_REFRESH_TOKEN=<Your Spotify Refresh Token>

Integration Description

  • Simplist: A blogging service with an SDK to retrieve blog articles. The website fetches blog posts from Simplist and displays them with proper markdown rendering. For more information, visit Simplist.
  • Upstash Redis: Used for the integrated URL shortener functionality, storing short links with password protection and expiration features.
  • Spotify: Powers the real-time music player showing currently playing tracks (optional feature).

πŸš€ Running Locally

  1. Clone the repository:
git clone https://github.com/Steellgold/website.git
cd website
  1. Install dependencies:
pnpm install
  1. Configure the environment variables in .env.local:
# Required for blog functionality
SIMPLIST_API_KEY=your_simplist_api_key_here

# Required for URL shortener (optional)
UPSTASH_REDIS_REST_URL=your_upstash_redis_url
UPSTASH_REDIS_REST_TOKEN=your_upstash_redis_token

# Optional Spotify integration
SPOTIFY_CLIENT_ID=your_spotify_client_id
SPOTIFY_CLIENT_SECRET=your_spotify_client_secret
SPOTIFY_REFRESH_TOKEN=your_spotify_refresh_token
  1. Start the development server:
pnpm dev
  1. Access the site locally at http://localhost:3000.

πŸ—οΈ Build and Deploy

To build the project for production:

pnpm build

To start the production server:

pnpm start

πŸ“ Project Structure

website/
β”œβ”€β”€ app/                    # Next.js App Router pages
β”‚   β”œβ”€β”€ (ui)/              # UI components showcase
β”‚   β”œβ”€β”€ (apps)/            # Integrated applications
β”‚   β”‚   └── (shortener)/   # URL shortener functionality
β”‚   β”œβ”€β”€ blog/[slug]/       # Dynamic blog post pages
β”‚   β”œβ”€β”€ api/auth/spotify/  # Spotify OAuth integration
β”‚   β”œβ”€β”€ globals.css        # Global styles with Tailwind
β”‚   β”œβ”€β”€ layout.tsx         # Root layout component
β”‚   └── page.tsx           # Home page
β”œβ”€β”€ components/            # Reusable React components
β”‚   β”œβ”€β”€ sections/          # Page sections (header, skills, etc.)
β”‚   β”œβ”€β”€ markdown/          # Markdown rendering components
β”‚   └── ui/                # shadcn/ui components
β”œβ”€β”€ config/               # Configuration files
β”‚   β”œβ”€β”€ projects.ts       # Projects data
β”‚   └── blog.ts           # Blog posts metadata
β”œβ”€β”€ contexts/             # React context providers
β”œβ”€β”€ hooks/                # Custom React hooks
β”œβ”€β”€ lib/                  # Utility functions and configurations
β”‚   β”œβ”€β”€ actions/          # Server actions
β”‚   β”œβ”€β”€ blog.ts           # Simplist API integration
β”‚   β”œβ”€β”€ shortener.ts      # URL shortener logic
β”‚   └── spotify.ts        # Spotify API integration
β”œβ”€β”€ public/               # Static assets
β”œβ”€β”€ registry/             # shadcn/ui component registry
└── type/                 # TypeScript type definitions

🎨 Features

  • Responsive Design: Mobile-first approach with Tailwind CSS v4
  • Blog Integration: Dynamic blog posts with markdown support via Simplist SDK
  • URL Shortener: Integrated link shortening service with password protection and expiration
  • Real-time Music Player: Spotify integration showing currently playing tracks
  • Component Registry: Custom shadcn/ui component system
  • SEO Optimized: Meta tags, Open Graph, and Twitter Cards
  • Performance: Optimized with Turbopack, Next.js 15, and image optimization
  • Accessibility: Semantic HTML and ARIA attributes
  • Dark Theme: Beautiful dark theme with custom CSS variables

πŸ“ License

This project is open-source and available under the MIT License. Feel free to use this code as inspiration for your own projects!

About

πŸ”€ Personal website

Resources

License

Stars

Watchers

Forks

Contributors 5