A minimal, fast, and SEO-friendly personal website built with React and Vite.
- React + Vite: Modern development stack with fast builds
- React Router: Client-side routing for smooth navigation
- Markdown Support: Blog posts written in Markdown
- SEO Optimized: Meta tags, Open Graph, and structured data
- Responsive Design: Works on all devices
- Minimal Design: Clean black and white aesthetic
- GitHub Pages Ready: Configured for easy deployment
- Node.js (v14 or higher)
- npm or yarn
-
Clone the repository:
git clone https://github.com/franbonafina/franbonafina.github.io.git cd franbonafina.github.io -
Install dependencies:
npm install
Start the development server:
npm run devThe site will be available at http://localhost:5173
Build for production:
npm run buildDeploy to GitHub Pages:
npm run deploysrc/
├── components/ # Reusable React components
├── pages/ # Page components
│ ├── Home.jsx # Homepage with profile
│ ├── Blog.jsx # Blog listing page
│ ├── Post.jsx # Individual blog post
│ └── NotFound.jsx # 404 page
├── main.jsx # App entry point
└── index.css # Global styles
Blog posts are currently stored as sample data in src/pages/Blog.jsx and src/pages/Post.jsx.
To add a new blog post:
- Add the post metadata to the
samplePostsarray inBlog.jsx - Add the full markdown content to the
postsobject inPost.jsx
For a more advanced setup, you could:
- Create a
content/blog/directory for markdown files - Use a build process to parse markdown files
- Add frontmatter for metadata
- Dynamic title tags for each page
- Meta descriptions
- Open Graph tags for social sharing
- Structured data (Person schema) for homepage
- Semantic HTML5 markup
Edit src/index.css to customize the design. The current design uses:
- System fonts for optimal performance
- Minimal black and white color scheme
- Responsive breakpoints for mobile devices
Update personal information in src/pages/Home.jsx:
- Name and headline
- Bio text
- Social media links
- Areas of interest
- React 18 - UI framework
- Vite - Build tool and dev server
- React Router - Client-side routing
- React Markdown - Markdown rendering
- React Helmet Async - SEO meta tags
- GH Pages - Deployment to GitHub Pages
MIT License - feel free to use this as a template for your own site.