A personal website and blog built with Jekyll, featuring a clean, responsive design and dynamic blog functionality.
- Production: sharshi.com
- Development:
http://127.0.0.1:4000(when running locally)
- Ruby (2.7 or higher)
- Bundler gem
- Clone the repository
- Install dependencies:
bundle install
- Start the development server:
bundle exec jekyll serve --livereload - Open
http://127.0.0.1:4000in your browser
Blog posts should be placed in the /_posts/ directory with the following naming convention:
YYYY-MM-DD-title-of-post.md
Each blog post must include front matter at the top:
---
layout: post
title: "Your Post Title"
date: 2025-07-08
excerpt: "A brief description of your post (used for previews and SEO)"
---
# Your content starts here
Write your blog post content in Markdown format below the front matter.---
layout: post
title: "Building Scalable iOS Apps"
date: 2025-07-08
excerpt: "Lessons learned from scaling an iOS app to 35,000+ monthly active users"
---
# Building Scalable iOS Apps
In this post, I'll share what I learned while scaling my prayer app...
## Key Takeaways
1. **Performance matters** - Users notice slow load times
2. **Offline functionality** - Essential for prayer apps
3. **Localization** - Supporting multiple languages increases adoption
[Continue with your content...]βββ _config.yml # Jekyll configuration
βββ _layouts/ # Page templates
β βββ post.html # Blog post template
βββ _posts/ # Blog posts (YYYY-MM-DD-title.md)
βββ assets/ # CSS, JS, images
βββ images/ # Site images
βββ index.html # Homepage
βββ blog.html # All posts page
βββ README.md # This file
- Typography: Crimson Text (serif) for body, Inter (sans-serif) for headings
- Color Scheme: Warm browns and beiges for a professional, readable design
- Responsive: Mobile-first design that works on all devices
- Performance: Optimized fonts and minimal CSS for fast loading
To add new sections to the homepage, edit index.html and add your content between the existing sections.
The main styles are embedded in index.html and _layouts/post.html. For major styling changes, consider extracting CSS to separate files in /assets/css/.
Currently uses a simple back-link system. To add a full navigation menu, update the header sections in both index.html and _layouts/post.html.
- Dynamic Loading: Recent posts automatically appear on homepage
- SEO Optimized: Proper meta tags, structured data
- Excerpt Support: Post previews with custom excerpts
- Date Formatting: Human-readable dates
- Responsive Design: Optimized for mobile and desktop
- Clean URLs:
/blog/YYYY/MM/DD/title/format
This site is configured for GitHub Pages deployment:
- Push changes to your repository
- GitHub Pages will automatically build and deploy
- Site will be available at your custom domain or
username.github.io
To build for production:
bundle exec jekyll buildThe built site will be in the _site/ directory.
- Meta descriptions for better SEO
- Open Graph tags for social sharing
- Responsive viewport meta tag
- Favicon support
To add Google Analytics, insert the tracking code in both index.html and _layouts/post.html before the closing </head> tag.
- Homepage (
/): Overview with recent blog posts - All Posts (
/blog/): Complete list of blog posts - Individual Posts (
/blog/YYYY/MM/DD/title/): Full blog post pages - Things (
/things.html): Index of standalone tools and applets
- Jekyll - Static site generator
- Liquid - Templating language
- Markdown - Content format
- CSS3 - Styling (embedded)
- Google Fonts - Typography (Crimson Text, Inter)
- Email: contact@sharshi.com
- GitHub: github.com/sharshi
- X: x.com/shersheial
The site includes a collection of standalone HTML tools and applets accessible via /things.html.
When creating a new standalone HTML applet:
- Create your HTML file in the root directory (e.g.,
my-tool.html) - Add the marker comment
<!-- APPLET_INDEX_ENTRY -->after the<!DOCTYPE html>declaration:<!DOCTYPE html> <!-- APPLET_INDEX_ENTRY --> <html lang="en">
- Push to the main/master branch
The GitHub Action workflow will automatically detect the new applet and add it to things.html with a placeholder description. You can then update the description manually if needed.
Manual alternative: Add an entry to things.html yourself between the <!-- APPLET_INDEX_START --> and <!-- APPLET_INDEX_END --> markers before pushing. The workflow will detect it's already there and skip auto-addition.
- Chat Portfolio - Interactive chat-style portfolio
- Route 202 Explorer - Interactive map of Route 202 points of interest
- Diff Checker - GitHub-style text comparison tool
- Running Schedule - 4-week VOβMax training plan
- VOβ Max Calculator - Fitness calculator
- Figma Resume - Tailored profile for Figma opportunities
- Virtual Drum Kit - Interactive music applet
- Tanach Timeline - Biblical timeline visualization
Current projects featured:
- Siddur Torah Ohr: 35,000+ monthly active users
- Web Hunt: Product Hunt-inspired web application
- Morning Dash: Daily dashboard application
- Tidy Albatross: Environmental endless runner game