You are browsing as a guest. Sign up (or log in) to start making projects!

ALL F1 Fans New Tab Page

  • 9 Devlogs
  • 57 Total hours

A new tab page for all chrome based and chromium browsers that is designed for ALL F1 FANS! Including all teams!

Ship #1 Pending review

What did you make?
I made HYPR//F1, a Chrome Manifest V3 new-tab dashboard for Formula 1 fans. It combines race countdowns, session schedules, championship standings, YouTube commentary searches, editable shortcuts, and team wallpapers. The Hyprland-inspired glass interface keeps personal settings stored locally in the browser.

What was challenging?
The most challenging part was making live F1 information useful even when data is unavailable or outdated. I had to handle API responses, time zones, countdown calculations, offline states, and local storage safely. Keeping the customisable interface responsive without adding runtime dependencies also required careful organisation.

What are you proud of?
I am proud that the project feels complete and personal instead of being just another static webpage. Users can choose teams, adjust the visual layout, upload wallpapers, manage shortcuts, and view real race information. It also respects privacy by avoiding history and tab permissions.

What should people know so they can test your project?
Testers need Node.js 18 or newer to run npm test, npm run validate, and npm run build. Then load the generated dist folder through Chrome’s Developer Mode. Test offline behaviour, settings changes, wallpaper uploads, shortcut editing, local versus UTC times, and different screen zoom levels.

Try project → See source code →
Open comments for this post

8h 4m 17s logged

0.3.1 - 2026-09-15 (Team Wallpaper Galleries & Background Shade Control)

Added

  • Constructor Team Galleries: Instead of a flat list with just one image per team, clicking any team card in settings now opens a dedicated gallery view for that constructor with preview artwork, image count badges, and an “Active Team” toggle.
  • Multi-Image Uploads per Team: Drag-and-drop or browse multiple images at once directly inside each team’s gallery. Uploads are automatically tagged to that team in IndexedDB, and dynamic rotation (random, sequential, slideshow) cycles through all wallpapers for the active team.
  • Default Wallpaper Deletion & Restore: You can now delete/disable default built-in livery wallpapers with the hover button if you only want your own uploads. Added a ↺ Restore Default Wallpaper button so you can bring them back whenever you want.
  • Adjustable Background Shade Slider: Added a Background Shade Strength slider (0% to 100%) in both Hyprland and Wallpaper settings tabs. You can drop it all the way to 0% to completely remove the dark/light gradient wash for raw, vivid wallpapers.

Fixed

  • Background Not Changing on Team Switch: Generic circuit-dark.svg was accidentally getting added to every team’s pool, causing team switches in random mode to often roll the generic dark grid instead of team liveries. Team pools now strictly contain that team’s wallpapers.
  • Wallpaper Click Selection: In random mode, clicking a specific wallpaper in settings would actively avoid picking the one you clicked. Added explicit wallpaper selection so clicking a card immediately displays that exact wallpaper on the dashboard.
  • Team Pill Bar Background Update: Switching teams via the Waybar top pill bar now clears stale background cache and immediately applies the new team’s wallpaper.

0.3.0 - 2026-09-14 (Bug Fixes, Light Mode & Extension Packaging)

Added

  • Racing Light Mode: Full light theme with proper CSS variable propagation across every widget, navbar, settings panel, and status elements. No more hardcoded rgba(255,255,255,...) anywhere - everything uses tokens now so it actually works.
  • Theme Quick-Toggle Button: Added ☀️/🌙 icon button to the Waybar for one-click light/dark switching without opening settings at all.
  • Extension Pack Script: New scripts/pack.mjs builds and zips dist/ into f1-fans-new-tab.zip so you can drag-drop install it in Chrome without having to load unpacked every time.

Changed

  • Live search button in the Streams widget now searches for the current or most recent Grand Prix automatically (within 12-hour lights-out window counts as current), no more hardcoded Australian GP.
  • Streams footer now shows the active GP name and “Direct YouTube search · 0 API keys” instead of the old blank placeholder text.
  • Removed the useless “Check” button from the streams session selector bar — it didn’t do anything useful anyway.
  • Settings panel emoji cleanup — reduced to a single ⚙ on the title only, everything else is text labels now.

Fixed

  • Settings not updating the UI — the big one. The onChange callback was only calling applyCssTokens() but never rerender(), so sliders and dropdowns would save to state but widgets would sit there looking exactly the same. Added rerender() to the callback, now everything actually reflects changes instantly.
  • Settings state race condition — storage reads/writes are now properly sequential so rapid slider moves don’t write stale state on top of each other.
  • Widget move arrows not working — layout move functions were broken, fixed the grid coordinate math.
  • Live track status not showing on new tab — status was only updating after manually hitting the refresh button. Now it loads from cache immediately on startup.
  • Fixed manifest permissions and updated manifest.json for proper Chrome Web Store compatibility.
0
0
7
Open comments for this post

8h 31m 26s logged

0.2.0 - 2026-09-14 (Hyprland UI Overhaul & Full Telemetry)

Added

  • Hyprland on Arch Design System: Complete visual rework featuring frosted glass acrylic widgets (backdrop-filter: blur(20px)), customizable tile opacity (20%-100%), dynamic team livery active glowing borders, and customizable gap/rounding.
  • Waybar Top Status Bar: Live digital clock with blinking colon, live Track Flag status indicator (🟢 Green Flag / 🟡 Safety Car / 🔴 Red Flag) with pulsing dot, quick team livery pill switcher, and search focus hotkey (/).
  • Complete Grand Prix Timetable: Full weekend schedule view for FP1, FP2, FP3, Sprint Shootout, Sprint, Qualifying, and Race with live countdown timers and local/UTC timezone formatting.
  • Championship Standings Hub: Interactive dual tabs for both Driver Standings and Constructor Standings with official team color bars, driver codes, and points tally.
  • YouTube Commentary Discovery Engine: Session selector and 1-click legal live commentary search builder with curated stream channels (P1 with Matt & Tommy, The Race, Sky Sports F1, Autosport, F1 Live).
  • Curated SVG Wallpapers for All 10 Teams: Handcrafted vector wallpapers for Red Bull, Ferrari, McLaren, Mercedes, Aston Martin, Alpine, Williams, Haas, Stake Sauber, Racing Bulls, and Carbon Grid.
  • Dynamic Wallpaper Engine: Automatic slideshow timer, random/sequential new tab rotation, and local drag-and-drop image uploads stored in IndexedDB.
  • Speed Dial Shortcuts: Translucent glass shortcut tiles with high-res Google favicon resolution and instant add/remove.
  • Web App Mode: Dual support for unpacked Chrome Extension and standalone deployment on GitHub Pages / Vercel with localStorage persistence.
  • Development Log: Created DEVLOG.md documenting the design journey and architecture decisions.

Changed

  • Migrated legacy basic cards into modular Hyprland acrylic widgets.
  • Upgraded Jolpica and OpenF1 adapters to fetch full session timetables and constructor points.
  • Upgraded settings drawer into a tabbed floating control center modal with live preview sliders.

Fixed

  • Fixed layout coordinate clamping and responsive column stacking on tablets/phones.
  • Enhanced storage fallback to work seamlessly across both Chrome extension environment and standard web browsers.
0
0
7
Open comments for this post

2h 46m 56s logged

Somewhat finished backend just need to plug in API keys now or find a way to use client side bypass (disclaimer: this is just sending normal request from clients, completely legal).
Thank god live standing works!

0
0
6

Delete project?

Are you sure you want to permanently delete this project? This action cannot be undone.

All devlogs, followers, and associated data will be removed.

Followers

Loading…