update readme
This commit is contained in:
parent
6497f5dfb8
commit
b41afca053
47
README.md
47
README.md
@ -1,5 +1,48 @@
|
|||||||
# justin.deal
|
# justin.deal
|
||||||
|
|
||||||
My personal website and blog.
|
A personal website featuring a blog, project portfolio, and homelab dashboard.
|
||||||
|
|
||||||
Visit the site at https://justin.deal
|
## About
|
||||||
|
|
||||||
|
This site serves as my digital home on the web, built with modern web technologies and a focus on performance, accessibility, and user experience.
|
||||||
|
|
||||||
|
- **Visit**: [https://justin.deal](https://justin.deal)
|
||||||
|
- **Built with**: Astro, TypeScript, TailwindCSS, and Alpine.js
|
||||||
|
|
||||||
|
## Key Features
|
||||||
|
|
||||||
|
### Content
|
||||||
|
- Blog with searchable posts and tag filtering
|
||||||
|
- Project portfolio with detailed case studies
|
||||||
|
- Homelab dashboard for self-hosted services
|
||||||
|
- Dark/light mode with Gruvbox-inspired theme
|
||||||
|
|
||||||
|
### Technical
|
||||||
|
- Component-based architecture
|
||||||
|
- Responsive design for all devices
|
||||||
|
- Advanced search with keyboard navigation
|
||||||
|
- Optimized loading with skeleton states
|
||||||
|
- Accessibility-first approach
|
||||||
|
|
||||||
|
## Quick Start
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Install dependencies
|
||||||
|
pnpm install
|
||||||
|
|
||||||
|
# Development server
|
||||||
|
pnpm dev
|
||||||
|
|
||||||
|
# Production build
|
||||||
|
pnpm build
|
||||||
|
```
|
||||||
|
|
||||||
|
## Adding Content
|
||||||
|
|
||||||
|
- **Blog**: Create markdown files in `src/pages/blog/`
|
||||||
|
- **Projects**: Add project details in `src/pages/projects/`
|
||||||
|
- **Homelab**: Update services in `src/pages/homelab/services.ts`
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
MIT
|
||||||
|
@ -38,7 +38,7 @@ export type ProjectFrontmatter = {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* The URL of the project on the website
|
* The URL of the project on the website
|
||||||
* (eg. https://zaggonaut.dev/projects/my-project)
|
* (eg. https://justin.deal/projects/my-project)
|
||||||
*/
|
*/
|
||||||
filename: string;
|
filename: string;
|
||||||
};
|
};
|
||||||
@ -77,7 +77,7 @@ export type ArticleFrontmatter = {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* The URL of the article on the website
|
* The URL of the article on the website
|
||||||
* (eg. https://zaggonaut.dev/blog/my-article)
|
* (eg. https://justin.deal/blog/my-article)
|
||||||
*/
|
*/
|
||||||
filename: string;
|
filename: string;
|
||||||
};
|
};
|
||||||
|
@ -5,10 +5,10 @@ export const GLOBAL = {
|
|||||||
username: "Justin Deal",
|
username: "Justin Deal",
|
||||||
rootUrl: "https://justin.deal",
|
rootUrl: "https://justin.deal",
|
||||||
shortDescription: "My personal slice of the internet",
|
shortDescription: "My personal slice of the internet",
|
||||||
longDescription: "Zaggonaut is a retro-inspired theme for Astro, built using TypeScript, TailwindCSS, and Astro.",
|
longDescription: "My personal blog, portfolio, and homelab dashboard built with Astro, TypeScript, TailwindCSS, and Alpine.js.",
|
||||||
|
|
||||||
// Social media links
|
// Social media links
|
||||||
githubProfile: "https://github.com/RATIU5/zaggonaut",
|
githubProfile: "https://github.com/justindeal",
|
||||||
twitterProfile: "https://twitter.com/",
|
twitterProfile: "https://twitter.com/",
|
||||||
linkedinProfile: "https://www.linkedin.com/",
|
linkedinProfile: "https://www.linkedin.com/",
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ tags: ["code", "html", "homelab"]
|
|||||||
time: 4
|
time: 4
|
||||||
featured: true
|
featured: true
|
||||||
timestamp: 2024-12-18T02:39:03+00:00
|
timestamp: 2024-12-18T02:39:03+00:00
|
||||||
filename: html-intro
|
filename: jellyfin-at-home
|
||||||
---
|
---
|
||||||
|
|
||||||
## The Beginning of an Obsession
|
## The Beginning of an Obsession
|
@ -23,7 +23,7 @@ import FeaturedArticles from "../components/home/FeaturedArticles.astro";
|
|||||||
property="og:description"
|
property="og:description"
|
||||||
content={GLOBAL.longDescription}
|
content={GLOBAL.longDescription}
|
||||||
/>
|
/>
|
||||||
<meta property="og:image" content={`${GLOBAL.rootUrl}/zaggonaut.png`} />
|
<meta property="og:image" content={`${GLOBAL.rootUrl}/${GLOBAL.profileImage}`} />
|
||||||
<meta property="og:url" content={GLOBAL.rootUrl} />
|
<meta property="og:url" content={GLOBAL.rootUrl} />
|
||||||
<meta name="twitter:card" content="summary_large_image" />
|
<meta name="twitter:card" content="summary_large_image" />
|
||||||
<meta
|
<meta
|
||||||
@ -34,7 +34,7 @@ import FeaturedArticles from "../components/home/FeaturedArticles.astro";
|
|||||||
name="twitter:description"
|
name="twitter:description"
|
||||||
content={GLOBAL.longDescription}
|
content={GLOBAL.longDescription}
|
||||||
/>
|
/>
|
||||||
<meta name="twitter:image" content={`${GLOBAL.rootUrl}/zaggonaut.png`} />
|
<meta name="twitter:image" content={`${GLOBAL.rootUrl}/${GLOBAL.profileImage}`} />
|
||||||
<meta http-equiv="content-language" content="en" />
|
<meta http-equiv="content-language" content="en" />
|
||||||
<meta name="language" content="English" />
|
<meta name="language" content="English" />
|
||||||
<link rel="canonical" href={GLOBAL.rootUrl} />
|
<link rel="canonical" href={GLOBAL.rootUrl} />
|
||||||
|
@ -6,7 +6,7 @@ tags: ["astro", "typescript", "tailwindcss", "alpinejs", "responsive-design", "a
|
|||||||
githubUrl: https://code.justin.deal
|
githubUrl: https://code.justin.deal
|
||||||
timestamp: 2025-02-24T02:39:03+00:00
|
timestamp: 2025-02-24T02:39:03+00:00
|
||||||
featured: true
|
featured: true
|
||||||
filename: zaggonaut
|
filename: this-site
|
||||||
---
|
---
|
||||||
|
|
||||||
## The Details
|
## The Details
|
||||||
@ -67,3 +67,7 @@ The architecture follows a component-based approach with a focus on reusability
|
|||||||
- **Interactivity**: Alpine.js
|
- **Interactivity**: Alpine.js
|
||||||
- **Build Tools**: Vite, npm/pnpm
|
- **Build Tools**: Vite, npm/pnpm
|
||||||
- **Deployment**: Self-hosted
|
- **Deployment**: Self-hosted
|
||||||
|
|
||||||
|
## The Future
|
||||||
|
|
||||||
|
Future enhancements will include expanded blog functionality, integration with more homelab services, and additional interactive features. The component library will continue to grow with new UI elements and patterns.
|
Loading…
x
Reference in New Issue
Block a user