Selected projects Official organisation website

A multi-page static website

Pro bono for a real organisation Pro bono project for a real organisation 2026

The official multi-page, fully static website of Hunting Club “ŁOŚ” in Torzym. I designed and shipped the site in Astro and TypeScript — and produced the full visual layer: backgrounds, graphic compositions, photographs, films and promotional materials. File-based content, Leaflet maps, a PhotoSwipe gallery, GSAP motion, an Open-Meteo forecast and an astronomical calendar. The build outputs dist and publishes to self-hosted infrastructure with separated TEST and production environments.

Visual composition for Hunting Club “ŁOŚ” Torzym — background and image authored by LukJohn

Role

Author of the delivery — site design and development plus the full visual production: backgrounds, graphic compositions, photography, film and promotional materials. Concept, direction, selection, compositing, retouching, vector preparation, editing and final production were performed by LukJohn, not as one-click generation.

Challenge

The club needed a modern multi-page information site: history, management, education, district maps, legal documents, gallery and contact — on static hosting, with protected contact details and a hard split between TEST and production.

Solution

I built the site in Astro 7 and TypeScript, with custom CSS tokens, GSAP motion and content in src/data (TypeScript/JSON) instead of a classic CMS. Leaflet maps and GeoJSON, PhotoSwipe 5, Embla carousel, an Open-Meteo forecast with cache and stale recovery, and astronomy-engine sun/moon calculations ship in the bundle. Delivery is a static dist over SFTP/FTP: TEST on a separate noindex domain, production on Hostek with a www canonical.

Project overview

This is a real pro bono portfolio project for Hunting Club “ŁOŚ” Torzym — community engagement, not a paid enterprise commission. I designed and delivered the official site as a multi-page Astro site (static output) in strict TypeScript. Production runs at https://www.los-torzym.pl/.

Project context

The organisation needed a modern multi-page information site on static hosting, with protected contact details and a hard split between TEST and production.

Process

Content architecture and a coded prototype came first, then maps, gallery, the visual layer, and a controlled deploy across separated environments.

Visual production

All backgrounds, visual compositions, photographs, films/videos and promotional visual materials for Koło Łoś were produced by LukJohn. This is an authored creative workflow: concept, direction, selection, compositing, retouching, vector preparation, editing and final production — not one-click generation.

Creative workflow

I work as both a developer and a graphic/visual creator. On Koło Łoś I combined photography, vector graphics, retouching, film editing and aerial/drone material with AI tools that support production under my direction: frame selection, compositing and finishing in Photoshop and CorelDRAW.

Image tools

  • Nano Banana 2 Pro
  • Higgsfield
  • Seedance 2.0
  • Seedance 2.5
  • Adobe Photoshop
  • CorelDRAW

Scope of work

  • Astro multi-page architecture and content routing.
  • UI components, CSS tokens, responsiveness from 320 px and reduced motion.
  • Leaflet maps (district, reserve, rabies) and the GIW map iframe.
  • A 47-image gallery with PhotoSwipe 5 and AVIF/WebP/PNG variants.
  • A src/data content layer, including a protected legal-document snapshot.
  • Production SEO (canonical, sitemap, Open Graph, Organization JSON-LD) and noindex on TEST.
  • Contact protection: no tel: or mailto: in dist; club email as a raster.
  • Playwright for the children’s reader and the wildlife browser.

Functional scope

  • Multi-level navigation aligned with the required club IA.
  • History, authorities, gallery, contact and two separate legal documents.
  • Maps: district 94, the Ilanka valley reserve / Natura 2000, rabies foci (Leaflet + OSM).
  • Education: diseases, a children’s reader, “how to become a hunter”, wildlife.
  • Management: hunting plan, infrastructure and land, agricultural damage.
  • Open-Meteo weather (10 days, localStorage cache, stale cache) and a sun/moon calendar.
  • Random video background that pauses under prefers-reduced-motion / Save-Data.
  • LukJohn.com creator credit in the footer and meta author.
  • Authored backgrounds, compositions, photographs, films and promotional visuals produced by LukJohn.

Technologies used

  • Astro 7
  • TypeScript (strict)
  • CSS (tokens, reset, reduced-motion)
  • GSAP
  • Leaflet
  • OpenStreetMap
  • GeoJSON
  • PhotoSwipe 5
  • Embla Carousel
  • astronomy-engine
  • Open-Meteo API
  • Sharp
  • Playwright
  • AVIF / WebP / PNG
  • JSON-LD
  • @astrojs/sitemap

Reliability

  • Preview vs production builds split by Astro --mode.
  • Open-Meteo forecast: 10 s timeout, 15-minute cache, stale cache on network failure.
  • GIW map: iframe plus a fallback link; an upstream outage does not break the page.
  • OSM tiles on the rabies map: article and outbreak table remain if the layer fails.
  • SHA verification of the approved legal snapshot before build (prebuild).

Security

  • No passwords, tokens or FTP details in the repository.
  • 0 tel: and mailto: occurrences in the scanned dist.
  • Phone numbers as plain text; club email as a PNG raster.
  • meta format-detection: telephone=no, email=no, address=no.
  • Preview: noindex, nofollow and robots.txt Disallow: /.
  • Protected legal JSON with SHA-256 verification.
  • Public image variants without EXIF/GPS; no hotlinked media CDNs.

Accessibility

  • Semantic HTML, skip link, one H1 per page.
  • Keyboard support, focus-visible and contrast.
  • prefers-reduced-motion for animation and video background.
  • Alternative text; a data table as the weather-chart equivalent.
  • Labels for links that open in a new tab.

Testing

  • Playwright: children’s reader — 5/5.
  • Playwright: wildlife sex switcher — 19/19.
  • verify:legal-snapshot before build.
  • attribution:check for source comments.
  • Manual viewport checklists (including 1440, 1024, 768, 390, 320).
  • No full-site E2E runner — this is not a claim of zero defects on every route.

CI/CD and delivery

  • Git on main; no GitHub Actions in the repository.
  • Manual delivery: dist → SFTP/FTP.
  • TEST: http://los-torzym.chudy.eu (Cyber_Folks) — noindex.
  • Production: Hostek /public_html/los-torzym.pl, nginx apex → www.
  • build:preview vs build:production, with sitemap only in production.

Verified outcomes

  • A multi-page static site without React, a database or a SaaS CMS.
  • Content separated from components in src/data.
  • Maps, gallery, education and legal documents in one product.
  • Separated TEST and Production with indexing control.
  • Live production: https://www.los-torzym.pl/.
  • Full authored visual production: backgrounds, compositions, photography, film and promotion — a craft workflow, not an automatic generator.

Current status

Pro bono project for a real organisation

Live URL: https://www.los-torzym.pl/

Welcome to my world! What can I do for you?