A Jekyll blog that can be updated directly from iOS Shortcuts, allowing for instant mobile blogging.
Live Site: https://jesse-blog.github.io
- iOS Shortcut Integration: Post directly from your iPhone
- Jekyll + GitHub Pages: Fast, reliable, and free hosting
- Mobile-First Design: Clean, responsive layout optimized for all devices
- Markdown Support: Rich text formatting with full Markdown support
- Auto-Slugify: Automatic URL-friendly filenames from post titles
- Instant Publishing: Posts go live within 1-2 minutes of publishing
-
GitHub Personal Access Token
- Go to GitHub Settings > Developer Settings > Personal Access Tokens
- Generate a new token with
repopermissions - Copy the token (you'll need it for the shortcut)
-
iOS Shortcuts App
- Download from the App Store if not already installed
-
Download the Shortcut
- Open the
ios-shortcut-blog-poster.shortcutfile on your iOS device - Tap "Get Shortcut" when prompted
- Open the
-
Configure GitHub Token
- When you first run the shortcut, it will ask for your GitHub token
- Paste your Personal Access Token when prompted
- The shortcut will remember this for future use
-
Test the Shortcut
- Run the shortcut and create a test post
- Check your blog in 1-2 minutes to see the post
-
Input Collection
- Prompts for post title
- Prompts for post content (Markdown supported)
- Prompts for tags (optional)
-
Content Processing
- Generates Jekyll frontmatter with metadata
- Creates URL-friendly filename from title
- Formats content with proper Markdown structure
-
GitHub API Integration
- Base64 encodes the content
- Sends PUT request to GitHub API
- Creates new file in
_posts/directory
-
Automatic Deployment
- GitHub Pages automatically rebuilds the site
- Post goes live within 1-2 minutes
- API Endpoint:
PUT /repos/{owner}/{repo}/contents/{path} - Authentication: GitHub Personal Access Token
- Content Format: Jekyll Markdown with frontmatter
- File Naming:
YYYY-MM-DD-title-slug.md
- Open the "Blog Poster" shortcut
- Enter your post title
- Write your content (Markdown supported)
- Add tags (optional)
- Tap "Done" - your post will be live in 1-2 minutes!
You can also create posts manually by adding .md files to the _posts/ directory:
---
layout: post
title: "Your Post Title"
date: 2025-01-27 12:00:00 -0800
author: Jesse Rodriguez
categories: [blog]
tags: [tag1, tag2]
excerpt: "Your post excerpt"
---
# Your Post Title
Your content here...Edit _layouts/default.html to customize the blog's appearance:
- Colors and typography
- Layout structure
- Navigation elements
- Mobile responsiveness
Modify _config.yml to adjust:
- Site metadata
- Jekyll settings
- Plugin configuration
- SEO settings
- Ruby 2.7+
- Bundler gem
# Clone the repository
git clone https://github.com/JesseRod329/Jesse-Blog.git
cd Jesse-Blog
# Install dependencies (if using gems)
bundle install
# Run local server
bundle exec jekyll serve
# Visit http://localhost:4000The blog includes:
- Jekyll SEO Tag: Automatic meta tags and Open Graph
- Jekyll Sitemap: Automatic sitemap generation
- Jekyll Feed: RSS feed support
- Mobile Optimization: Responsive design and mobile-first approach
- HTTPS Only: Enforced SSL/TLS encryption
- Security Headers: X-Frame-Options, X-Content-Type-Options, etc.
- Content Security Policy: Configured for safe content delivery
- GitHub Authentication: Secure API access with tokens
This blog is automatically deployed via GitHub Pages:
- Push to main branch: Triggers automatic build
- Jekyll processing: Converts Markdown to HTML
- Asset optimization: Minifies CSS and optimizes images
- Live deployment: Available at
jesse-blog.github.io
The blog is optimized for mobile devices:
- Touch-friendly navigation
- Responsive typography
- Fast loading times
- iOS Shortcut integration
- PWA-ready structure
While this is a personal blog, suggestions and improvements are welcome:
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
This project is open source and available under the MIT License.
- Main Portfolio: jesserodriguez.me
- Blog: jesse-blog.github.io
- GitHub: @JesseRod329
Built with ❤️ using Jekyll, GitHub Pages, and iOS Shortcuts