Marketing site for Valiente Technologies — Turkey's first cybersecurity firm based in Antalya.
Built with Jekyll + jekyll-agency theme, deployed via GitHub Pages, served behind Cloudflare.
| Tool | Version | Purpose |
|---|---|---|
| Ruby | 3.2.2 (see .ruby-version) |
Jekyll runtime |
| Bundler | latest | Gem management |
| Python 3 | any | WebP image conversion |
| Node / npm | any | JS minification |
| terser | npm install -g terser |
Minify assets/js/src/*.js |
| Pillow | pip install pillow |
Convert PNG/JPG → WebP on commit |
# 1. Clone
git clone https://github.com/ValienteTechnologies/ValienteTechnologies.github.io
cd ValienteTechnologies.github.io
# 2. Ruby deps
bundle install
# 3. Python deps (for pre-commit WebP hook)
pip install pillow
# 4. JS minifier
npm install -g terser
# 5. Install git hooks
cp scripts/pre-commit .git/hooks/pre-commit
chmod +x .git/hooks/pre-commitbundle exec jekyll serve --livereload
# → http://localhost:4000_data/ # All site content (YAML). Edit here, not in templates.
i18n.yml # UI strings (breadcrumbs, title suffixes)
header.yml # Hero section text
services.yml # Services section
testimonials.yml
footer.yml
navigation.yml
style.yml # Highlight color, fonts_urls
...
_includes/
layout/ # nav.html, nav-header.html, head.html, footer.html
sections/ # services.html, testimonials.html, contact_form.html, ...
_layouts/
default.html # Base layout (scripts, footer)
home.html # Home page (nav+header, sections, page-specific JS)
subpage.html # Inner pages
error.html # 404
_pages/ # Page definitions (mostly include composition)
_sass/
base/ # _variables.scss, _mixins.scss, _page.scss
components/ # _navbar.scss, _buttons.scss, _utilities.scss, ...
layout/ # Per-section SCSS (_masthead, _services, _footer, ...)
assets/
css/ # agency.css (Jekyll-compiled), bootstrap.min.css, all.min.css
js/ # Minified JS (do not edit directly)
js/src/ # JS source files (edit here, pre-commit auto-minifies)
img/ # WebP images (PNG/JPG source → pre-commit auto-converts)
scripts/
pre-commit # Git hook: WebP conversion + JS minification
minify-js.sh # Manual: ./scripts/minify-js.sh [filename]
to_webp.py # Image converter used by pre-commit hook
The site uses jekyll-polyglot. All content lives in _data/*.yml with this pattern:
tr: &DEFAULT
title: "Türkçe başlık"
tr-TR:
<<: *DEFAULT # inherits TR
en:
title: "English title"UI strings (breadcrumbs, title suffixes, etc.) live in _data/i18n.yml.
Source files live in assets/js/src/. Never edit the minified files in assets/js/ directly.
# Edit source
vim assets/js/src/mesh-network.js
# Minify one file
./scripts/minify-js.sh mesh-network.js
# Or minify all
./scripts/minify-js.shThe pre-commit hook does this automatically when you stage assets/js/src/*.js.
Stage a PNG/JPG and the pre-commit hook converts it to WebP automatically. Use <picture> elements in templates for WebP + PNG/JPG fallback.
Push to main → GitHub Pages builds automatically. Cloudflare proxies the result.
Cloudflare notes:
- Email obfuscation: disable in Scrape Shield → Cloudflare Email Obfuscation to remove
email-decode.min.js - Cache TTLs for
/assets/*: set via Cloudflare Cache Rules robots.txtis managed by Cloudflare AI scraping protection (Content-Signal directive is harmless)- Analytics: GA4 tag
G-FF9YHPMVJL