A modern personal blog built with React, Vite, and Tailwind CSS. This blog serves as a platform for sharing self-hosting projects, automation experiments, and infrastructure insights.
- Modern Design: Clean, responsive layout with dark/light mode support
- Markdown Support: Write blog posts in Markdown with syntax highlighting
- SEO Optimized: Built-in SEO with React Helmet and Open Graph tags
- Fast Performance: Built with Vite for optimal development and build performance
- GitHub Pages Ready: Automated deployment with GitHub Actions
- Search & Filter: Find posts by search term or tags
- RSS Feed: Subscribe to updates (coming soon)
- Accessibility: WCAG compliant design
- Frontend: React 18, Vite
- Styling: Tailwind CSS
- Routing: React Router DOM
- Markdown: React Markdown with syntax highlighting
- Animations: Framer Motion
- SEO: React Helmet Async
- Deployment: GitHub Pages + GitHub Actions
-
Clone the repository
git clone https://github.com/amar-r/sshthings.git cd sshthings
-
Install dependencies
npm install
-
Start development server
npm run dev
-
Open your browser Navigate to
http://localhost:5173
- Create a new markdown file in the
posts/
directory - Add frontmatter at the top of the file:
--- title: "Your Post Title" date: "2024-01-15" excerpt: "A brief description of your post" tags: ["tag1", "tag2", "tag3"] readTime: 5 ---
- Write your content in Markdown format
- Commit and push - the site will automatically rebuild and deploy
This project is configured for automatic deployment to GitHub Pages:
- Push to main branch - GitHub Actions will automatically build and deploy
- Enable GitHub Pages in your repository settings
- Set custom domain (optional) - configure
sshthings.com
in repository settings
SSHthings/
├── src/
│ ├── components/ # Reusable React components
│ ├── pages/ # Page components
│ ├── utils/ # Utility functions
│ ├── App.jsx # Main app component
│ └── main.jsx # Entry point
├── posts/ # Markdown blog posts
├── public/ # Static assets
├── .github/ # GitHub Actions workflows
└── package.json # Dependencies and scripts
- Edit
tailwind.config.js
to customize the color scheme - Modify
src/index.css
for additional custom styles
- Update
src/pages/About.jsx
with your personal information - Modify
src/pages/Contact.jsx
with your contact details - Replace placeholder images in
public/
directory
- Update meta tags in
index.html
- Modify Open Graph settings in individual pages
npm run dev
- Start development servernpm run build
- Build for productionnpm run preview
- Preview production buildnpm run lint
- Run ESLint
This project is licensed under the MIT License - see the LICENSE file for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
If you have any questions or need help, feel free to:
- Open an issue on GitHub
- Contact me through the Contact page
Built with ❤️ by Amar