Skip to content

Repository files navigation

Davide de Paolis - Technical Blog

Personal technical blog covering software engineering, AWS, serverless architecture, Node.js, React, leadership, and career development.

🌐 Live Site: https://dvddpl.github.io

About

This blog is built with Jekyll and hosted on GitHub Pages. It features technical tutorials, debugging chronicles, career reflections, and personal development insights from a Technical Lead's perspective.

Quick Start

Prerequisites

  • Ruby 3.3+ (GitHub Pages uses Ruby 3.3.4)
  • Bundler (latest version)
  • Git

Setup

# Clone repository
git clone https://github.com/dvddpl/dvddpl.github.io.git
cd dvddpl.github.io

# Install Ruby 3.3 via Homebrew (macOS)
brew install ruby@3.3

# Add Ruby 3.3 to PATH
export PATH="/opt/homebrew/opt/ruby@3.3/bin:$PATH"
export PATH="/opt/homebrew/lib/ruby/gems/3.3.0/bin:$PATH"

# Or add to ~/.zshrc for permanent:
echo 'export PATH="/opt/homebrew/opt/ruby@3.3/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/opt/homebrew/lib/ruby/gems/3.3.0/bin:$PATH"' >> ~/.zshrc

# Install bundler
gem install bundler

# Install dependencies
bundle install

# Run local server
bundle exec jekyll serve

# Visit http://localhost:4000

Writing Posts

Create New Post

# 1. Create file with correct naming: YYYY-MM-DD-title.md
touch _posts/2026-02-11-my-new-post.md

# 2. Add front matter
cat > _posts/2026-02-11-my-new-post.md << 'EOF'
---
layout: post
title: "Your Post Title"
description: "Brief description for SEO (150-160 characters)"
tags: javascript nodejs aws
background: /assets/your-image.jpg
---

Your content here...
EOF

# 3. Add images to assets/

# 4. Test locally
bundle exec jekyll serve

# 5. Commit and push
git add _posts/2026-02-11-my-new-post.md
git commit -m "Add post: My New Post"
git push origin gh-pages

Post Template

---
layout: post
title: "Post Title Here"
description: "SEO description 150-160 characters"
tags: tag1 tag2 tag3
background: /assets/image-name.jpg
---

Opening paragraph that hooks the reader...

## Main Section

Content with code examples:

```javascript
const example = "code here";

Conclusion

Key takeaways...


Photo by Author on Unsplash


## Project Structure

dvddpl.github.io/ ├── _posts/ # Blog posts (YYYY-MM-DD-title.md) ├── assets/ # Post images and backgrounds ├── .kiro/ # Agent context and steering files │ ├── context/ # Project documentation for AI │ └── steering/ # Development standards ├── _config.yml # Jekyll configuration ├── Gemfile # Ruby dependencies ├── index.md # Home page ├── about.md # About page ├── posts.md # Posts by tags ├── contact.md # Contact page └── 404.html # Error page


## Technology Stack

- **Generator**: Jekyll 3.10.0
- **Hosting**: GitHub Pages
- **Theme**: [StartBootstrap Clean Blog](https://github.com/StartBootstrap/startbootstrap-clean-blog-jekyll)
- **Ruby**: 3.3+ (GitHub Pages uses 3.3.4)
- **Language**: Markdown
- **Deployment**: Automatic via GitHub Pages (gh-pages branch)

## Development

### Local Development

```bash
# Standard server
bundle exec jekyll serve

# With drafts
bundle exec jekyll serve --drafts

# With future posts
bundle exec jekyll serve --future

# Different port
bundle exec jekyll serve --port 4001

# Incremental build (faster)
bundle exec jekyll serve --incremental

Update Dependencies

# Check outdated gems
bundle outdated

# Check GitHub Pages versions
open https://pages.github.com/versions

# Update github-pages gem
bundle update github-pages

# Test after updating
bundle exec jekyll serve

Standards

Front Matter

Every post must use this structure:

---
layout: post
title: "Post Title"
description: "SEO description"
tags: tag1 tag2 tag3
background: /assets/image.jpg
---

File Naming

Posts must follow: _posts/YYYY-MM-DD-title-with-dashes.md

Images

  • Store in assets/
  • Use absolute paths: /assets/filename.jpg
  • Optimize before adding
  • Use descriptive filenames

Tags

Use existing tags when possible:

  • Technical: javascript, nodejs, react, aws, serverless, mysql, debugging, performance, tutorial
  • Career: career, leadership, personalgrowth, advice, softwareengineering

Deployment

Automatic Deployment

Pushing to gh-pages branch automatically triggers GitHub Pages build:

git push origin gh-pages
# Wait 1-2 minutes
# Visit https://dvddpl.github.io

Recommended Workflow

# Create feature branch
git checkout -b post/post-title

# Write and test post
bundle exec jekyll serve

# Commit changes
git add _posts/2026-02-11-post-title.md
git commit -m "Add post: Post Title"

# Push and create PR
git push origin post/post-title

# Review and merge to gh-pages

Troubleshooting

Bundler Version Mismatch

# Error: Could not find 'bundler' (2.2.3)
gem install bundler:2.2.3
bundle install

Post Not Showing

  • Check filename format: YYYY-MM-DD-title.md
  • Check front matter has layout: post
  • Check date isn't in future
  • Check published: false isn't set

Images Not Loading

  • Check path starts with /assets/
  • Check file exists in correct location
  • Check filename matches exactly (case-sensitive)

Build Errors

# See detailed errors
bundle exec jekyll build --verbose

# Check configuration
bundle exec jekyll doctor

# Clean and rebuild
bundle exec jekyll clean
bundle exec jekyll build

Maintenance

Monthly Tasks

  • Update dependencies: bundle update github-pages
  • Check for broken links
  • Review analytics (if configured)

Quarterly Tasks

  • Review and update documentation
  • Audit security practices
  • Backup content (Git is primary backup)

Contributing

This is a personal blog, but suggestions and corrections are welcome:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

Resources

License

Content is licensed under CC BY 4.0. Code snippets are licensed under MIT License.

Author

Davide de Paolis

Status

Updated: This blog has been updated with modern dependencies (Feb 2026)

Completed Updates

  • ✅ Ruby upgraded from 2.6 to 3.3
  • ✅ Dependencies updated from github-pages 209 (2020) to 232 (2026)
  • ✅ All gems match GitHub Pages production environment
  • ✅ Complete documentation added
  • ✅ Development environment modernized

Next Steps

  • Resume regular posting (blog inactive since April 2021)
  • Standardize front matter across posts
  • Add search and comments functionality

Current Version

  • Jekyll: 3.10.0
  • GitHub Pages: 232 (updated Feb 2026)
  • Ruby: 3.3.10 (matches GitHub Pages 3.3.4)
  • Last Post: April 2021
  • Total Posts: 9

Roadmap

  • Update Ruby to 3.3+
  • Update dependencies to latest versions (github-pages 232)
  • Standardize front matter across all posts
  • Add search functionality
  • Implement comments system
  • Add dark mode
  • Optimize images
  • Resume regular posting schedule

About

No description, website, or topics provided.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages