Prerequisites
Before you begin, make sure you have the following installed:- Web Browser: Any modern web browser (Chrome, Firefox, Safari, Edge)
- Git: For cloning the repository (Download Git)
- Text Editor: VS Code, Sublime Text, or any code editor of your choice
- Node.js (optional): Version 18 or higher, only needed if you want to modify the blog system
The website uses CDN-hosted libraries (Tailwind CSS, Font Awesome, Showdown.js), so you don’t need to install any dependencies to run it locally.
Installation
Open the project
Open the project folder in your preferred text editor:Or simply navigate to the folder in your file explorer.
VS Code
View the website locally
You can open the website directly in your browser by opening the
index.html file:- Option 1: Double-click
index.htmlin your file explorer - Option 2: Right-click
index.htmland select “Open with” > Your browser - Option 3: Use a local development server (recommended for testing)
Project Structure
Here’s an overview of the key files and directories in the project:Key Technologies Used
Key Technologies Used
- HTML5: Semantic markup for all pages
- Tailwind CSS 3.4.16: Utility-first CSS framework (loaded via CDN)
- JavaScript: Vanilla JS for terminal animation and blog system
- Font Awesome 6.4.0: Icon library for social links and UI elements
- Showdown.js: Markdown to HTML converter for blog posts
- Formspree: Contact form backend service
Running the Site Locally
Basic Setup
The simplest way to run the site:- Open
index.htmldirectly in your browser - Navigate to other pages using the navigation menu
Using a Local Server (Recommended)
For a better development experience with proper URL routing:http://localhost:8000 in your browser.
When using a local server, the site will work just like it does on Netlify, with proper routing and asset loading.
Understanding Key Features
Homepage Terminal Animation
The homepage (index.html:93-103) features a terminal animation effect:
/assets/style/styles.css.
Blog System
The blog system (blog/index.html) dynamically loads Markdown posts from the blog/posts/ directory:
- Blog posts are written in Markdown format
- JavaScript converts Markdown to HTML using Showdown.js
- Posts are listed dynamically on the blog page
- The
update-posts.shscript generates a JSON list of posts during deployment
Contact Form
The contact page (contact.html:78-96) uses Formspree for form handling:
Deployment
The site is configured for deployment on Netlify. Thenetlify.toml file contains the deployment configuration:
Create a Netlify account
Sign up for a free account at netlify.com
Next Steps
Customize Content
Learn how to modify the content, colors, and branding to make the site your own
Add Blog Posts
Discover how to write and publish new blog posts in Markdown format
Configure Contact Form
Set up your own Formspree account to receive contact form submissions
Deploy to Production
Deploy your customized site to Netlify or another hosting platform
Troubleshooting
Styles not loading properly
Styles not loading properly
If styles aren’t loading when opening
index.html directly:- Make sure you have an internet connection (Tailwind CSS and Font Awesome load from CDN)
- Try using a local development server instead of opening the file directly
- Check your browser’s console for any CORS or loading errors
Blog posts not showing
Blog posts not showing
If blog posts aren’t displaying:
- Ensure the
blog/posts/directory contains.mdfiles - Check that the
list-posts.jsscript is running correctly - Verify that Showdown.js is loading from the CDN
- Look for JavaScript errors in the browser console
Contact form not working
Contact form not working
The contact form requires:
- A valid Formspree endpoint URL
- Internet connection to submit forms
- If you forked the repo, create your own Formspree account and update the form action URL
Getting Help
If you encounter any issues:- Check the GitHub repository for updates
- Review the LICENSE for usage terms
- Open an issue on GitHub if you find a bug

