Bgheneti.Github.Io
Personal portfolio website built with Astro featuring responsive design, content collections for projects and links, and modern CSS. Optional Integration with Obsidian for content. Auto-deployed to GitHub Pages and/or Cloudflare.
Astro-Powered Static-Site with Obsidian Integration
Personal portfolio website built with Astro, featuring projects, links, and a clean, responsive design.
The design was originally adapted from the Gridsome x Forestry starter template for Vue.js. This repo only uses Astro.
⨠Features
- Responsive Design - Mobile-first with hamburger navigation
- Content Collections - Markdown-based projects and links
- Code Highlighting - Prism.js syntax highlighting
- Modern CSS - Custom properties, animations, and utilities
- Touch-Friendly - Proper mobile interactions and hover states
- Fast Performance - Static site generation with Astro
š Project Structure
/
āāā public/ # Static assets
ā āāā code-highlight.css # Prism.js styling
ā āāā favicon.png
āāā src/
ā āāā components/
ā ā āāā Header.astro # Navigation with mobile menu
ā ā āāā Hero.astro # Home page hero section
ā ā āāā Footer.astro # Site footer
ā ā āāā ProjectsGrid.astro # Project display grid
ā ā āāā LinksGrid.astro # Links display grid
ā āāā content/
ā ā āāā config.ts # Content collections config
ā ā āāā assets/ # Images and other assets for projects
ā ā āāā projects/ # Project markdown files
ā ā āāā links/ # Link markdown files
ā ā āāā settings/ # Site settings and theme config
ā āāā layouts/
ā ā āāā Layout.astro # Base layout with global styles
ā āāā pages/
ā ā āāā index.astro # Home page
ā ā āāā projects/
ā ā ā āāā index.astro # Projects listing
ā ā ā āāā [...slug].astro # Individual project pages
ā ā āāā links/
ā ā āāā index.astro # Links page
ā āāā plugins/
ā āāā remark-relative-images.js # Plugin for relative image paths
āāā data/
ā āāā theme.json # Site configuration and content
āāā .github/workflows/
ā āāā deploy.yml # GitHub Pages deployment
āāā astro.config.mjs # Astro configuration
š§ Commands
All commands are run from the root of the project:
| Command | Action |
|---|---|
npm install | Install dependencies |
npm run dev | Start local dev server at localhost:4321 |
npm run build | Build production site to ./dist/ |
npm run preview | Preview build locally before deploying |
npm run astro check | Run type checking |
š§ Configuration
Content Management
- Projects: Add
.mdfiles to/src/content/projects/ - Links: Add
.mdfiles to/src/content/links/ - Assets: Add images and media to
/src/content/assets/ - Site Data: Edit
/data/theme.jsonfor site settings - Theme Settings: Edit
/src/content/settings/theme.mdfor additional theme configuration - Obsidian Integration: Optional - open
/src/content/as an Obsidian vault for rich markdown editing. Obsidian settings, templates (for Links and Projects), and all content (Links, Projects, and Front Matter) are stored here.
Styling
- Global Styles:
/src/layouts/Layout.astro - CSS Variables: Defined in Layout.astro for consistent theming
- Component Styles: Scoped styles in each
.astrocomponent
Deployment
-
Auto-deploy: Pushes to
templatebranch trigger GitHub Actions -
Build: Creates static files in
/dist/ -
Deploy: Files deployed to
gh-pagesbranch and Cloudflare.- disable CloudFlare or gh-pages deployment by commenting out steps in
.github/workflows/deploy.yml - If you use Cloudflare:
- set
CLOUDLFARE_API_TOKENin repo secrets - set
CLOUDLFARE_ACCOUNT_IDin repo secrets - update
CLOUDFLARE_PROJECT_NAMEin.github/workflows/deploy.yml
- set
- disable CloudFlare or gh-pages deployment by commenting out steps in
-
Live: Available at https://gheneti.com via Cloudflare
šØ Design System
The site uses a custom CSS design system with:
- Color tokens:
--color-base,--color-accent, etc. - Typography scale:
--font-size-xsto--font-size-3xl - Spacing system:
--spacing-xsto--spacing-3xl - Animation utilities: Fade-in animations with staggered delays
- Responsive utilities: Mobile-first breakpoints
How to Install
- Download the repository ZIP below
- Unzip it and find the CSS snippet file
- Move the CSS file into your vault's
.obsidian/snippets/folder - Open Obsidian ā Settings ā Appearance ā CSS Snippets ā Enable it
Stats
Stars
24
Forks
2
License
MIT
Last updated 11mo ago
Categories
Tags