π Overview
Static website built with pure JavaScript, deployed via GitHub and Netlify, without any frontend framework. Lightweight architecture with external services for advanced features.
βοΈ Frontend
Architecture
- Vanilla JavaScript (no framework)
- Native HTML / CSS
- Direct DOM manipulation
Minimalist approach focused on control and performance.
π External Features
π Flipbooks
Uses Turn.js to create interactive books with page-flip effects.
One of the flipbooks showcases my favorite MP3 songs; the audio files it plays
are stored on Pinata Cloud (IPFS) rather than on the site itself.
πΊοΈ Mapping
OpenStreetMap integration to display travel destinations interactively.
βοΈ Contact form
Email sending via Google Apps Script, used as a lightweight serverless backend.
βοΈ Hosting & Deployment
- Hosting: Netlify (global CDN + automatic HTTPS)
- CI/CD: GitHub β Netlify (automatic deployment)
- DNS: OVHcloud (or Cloudflare depending on configuration)
π Domain
- Registrar: OVHcloud
- Internationalized domain name (IDN using punycode)
π Security
- Automatic HTTPS via Netlify
- No exposed backend server
- Isolated Google Apps Script for contact form
- Client-side validation before submission
βοΈ Contact backend (Google Apps Script)
Contact form sends emails via Google Apps Script, used as a lightweight serverless backend.
- HTTPS Google Apps Script endpoint
- No backend server maintenance required
- Watch out for quotas and spam protection
πΈ Travel photos
Photos are hosted via the ImgBB service, used as an image upload and distribution solution (ImgBB).
- Storage and CDN handled by ImgBB
- Direct image URLs integration
- Fast loading via distributed CDN
- Lightweight approach without custom media backend
Goal: keep a simple, fast, and durable gallery with minimal maintenance overhead.
π΅ Favorite songs (MP3 storage)
The flipbook presenting my favorite MP3 songs relies on
Pinata Cloud
to store the audio files on IPFS (InterPlanetary File System).
- MP3 files are uploaded to Pinata Cloud and pinned on IPFS
- Each file is addressed by its content identifier (CID) and served through an IPFS gateway
- The flipbook references the gateway URLs directly, so audio is not stored in the GitHub repository or on Netlify
- Keeps the static site lightweight and the repository small
- Watch out for pinning limits on the Pinata plan and for gateway rate limits or latency
Goal: offload heavy audio assets to decentralized, content-addressed storage while keeping the site fully static.
π Technical philosophy
- Minimal frontend without frameworks
- Specialized external services (maps, email, flipbooks, media storage)
- Modular and pragmatic architecture
- Automated deployment via Git