This repository powers oilstrokes.com, a minimalist Jekyll-based showcase of Roger Ehmpkeβs traditional oil portrait work. The site emphasizes clean markup, strong accessibility practices, fast performance, and zero-framework dependency for maximal longevity.
Deployment is handled through an automated GitHub Actions β S3 β CloudFront pipeline, enabling fast and reliable pushes from the master branch with instant CDN cache invalidation.
Ruby Version: 3.3.4
(defined in .ruby-version)
Install dependencies:
gem install bundler
bundle installThis project uses classic Jekyll without additional build tooling:
bundle add jekyllThis site is intentionally simple and durable β no frameworks, no JavaScript bundlers, and no heavy build chains.
- Templating and layouts
- Page rendering
- Head metadata + SEO
- Final HTML output into
_site/
- Ruby environment setup
- Running the Jekyll production build
- Syncing
_site/to the S3 bucket - CloudFront cache invalidation (instant global updates)
- S3 β static hosting origin
- CloudFront β CDN + HTTPS + caching
This combination gives full control without the overhead of an all-in-one service like Amplify.
It also keeps AWS fundamentals sharp.
To serve the site locally with autoreload:
bundle exec jekyll serve --livereloadJekyll will rebuild the site on every file change and serve from _site/.
Commits pushed to master automatically trigger the deployment workflow:
- Install Ruby + Bundler
- Run
jekyll build - Sync the
_site/directory to S3 - Invalidate CloudFront cache
No AWS keys appear in this repository β all credentials are injected securely via GitHub Secrets.
- Jekyll 4.x β static site generator
- Ruby 3.3.x β runtime
- AWS S3 β object storage + hosting
- AWS CloudFront β global CDN + cache
- GitHub Actions β automated CI/CD
No Node-based asset pipeline is used here, keeping the project fast, simple, and easy to maintain long-term.
oilstrokes/
βββ _includes/ # Reusable components
βββ _layouts/ # Jekyll page layouts
βββ _site/ # Generated output (ignored)
βββ assets/ # Static images, CSS
βββ _config.yml # Jekyll config
βββ Gemfile # Ruby dependencies
βββ .github/workflows/ # CI/CD deployment pipeline
- Added GitHub Actions deploy pipeline
- Updated documentation and README
- Improved Jekyll config and AWS setup
- Initial launch of oilstrokes.com
Β© 2025 Roger Ehmpke. All rights reserved.
This repository is publicly visible for transparency but is not licensed for reuse.
See the LICENSE file for complete details.