Personal portfolio and blog website built with a custom Ruby static site generator.
This is the source code for lukaszczapiewski.com, a static website showcasing my work, blog posts, and projects. The site is built using a custom Ruby static site generator gem (static-site-builder) that compiles ERB templates into static HTML files.
- Static Site Generator: Custom Ruby gem (
static-site-builder) - Templates: ERB (Embedded Ruby)
- JavaScript: Stimulus (bundled with esbuild)
- CSS: Tailwind CSS
- Build Tools: Rake tasks for building and development
- Sitemap: Automatic sitemap generation
app/
assets/
stylesheets/ # Tailwind CSS source files
javascript/
application.js # Main JavaScript entry point
controllers/ # Stimulus controllers
views/
layouts/
pages/
blog/
projects/
shared/
blog/
projects/
config/
sitemap.rb # Sitemap configuration
lib/
site_builder.rb # Site build configuration
page_helpers.rb # Page metadata and helper methods
dist/ # Generated static site (output directory)
- Ruby (with Bundler)
- Node.js and npm (for Tailwind CSS)
- Install Ruby dependencies:
bundle install- Install Node dependencies:
npm installStart the development server with live reload:
rake dev:serverThis will:
- Build the site to the
dist/directory - Start a local web server on
http://localhost:3000 - Watch for file changes and automatically rebuild
- Enable live reload via WebSocket
Build the static site:
rake build:allThis compiles all pages to HTML, bundles JavaScript, and processes CSS.
Build for production (cleans dist directory first):
rake build:productionrake build:all- Build HTML, JavaScript, and CSSrake build:html- Build HTML pages onlyrake build:assets- Build JavaScript assets onlyrake build:css- Build CSS onlyrake build:production- Clean and build for productionrake build:clean- Clean the dist directoryrake dev:server- Start development server with live reload
Add blog posts by:
- Creating a new ERB file in
app/views/pages/blog/ - Adding the post metadata to
lib/page_helpers.rbin theBLOG_POSTSarray
Add project pages by:
- Creating a new ERB file in
app/views/pages/projects/ - The project will automatically appear in the projects listing
Lukasz Czapiewski
Copyright © 2025 Lukasz Czapiewski.
You may:
- Use this codebase as a starting point for your own projects
- Use this repository as a demo or reference for building static sites
- Adapt the code structure, templates, and build configuration for your own use
You may not:
- Copy or reproduce any of my written content (blog posts, project descriptions, personal information)
- Use any images from this repository (including profile photos and other assets)
- Claim ownership of my content or present it as your own
The code and structure are available for learning and adaptation, but all content and images remain my intellectual property.