FeaturesTemplatesShowcaseTownie
AI
BlogDocsPricing
Log inSign up
valeriewwong
valeriewwongdesignreview
Public
Like
designreview
Home
Code
9
.claude
1
backend
1
frontend
2
.vtignore
CLAUDE.md
TODO.md
debug_braces.js
debug_braces_detailed.js
deno.json
Branches
1
Pull requests
Remixes
1
History
Environment variables
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
Sign up now
Code
/
TODO.md
Code
/
TODO.md
Search
8/6/2025
TODO.md

// 5 Aug 2025

Add protection against concurrent booking conflicts when multiple designers try to book the same slot simultaneously.

When someone submits a booking, verify the slot is still available before confirming. If another designer booked it while they were filling out the form, show a clear message explaining the slot was just taken and automatically highlight the next available slot in that session.

Consider adding real-time availability updates so slots that get booked appear as unavailable immediately across all open browsers, reducing the chance of conflicts. The goal is to handle this race condition gracefully without frustrating designers who thought they had secured a slot.

Make the experience feel fair and transparent - if someone loses out on a slot, they should understand why and have an immediate alternative option presented to them.

Make several visual and structural improvements to clean up the interface.

First, update the page title styling to use black text instead of the current color, creating better contrast and a more professional appearance.

Since we now only have Tuesday sessions (Thursday was removed), simplify the layout structure. Remove any unnecessary container grouping around Tuesday sessions. Restructure the time navigation to show a full month view per page, displaying all Tuesdays within that month. This gives designers a better overview of available slots across several weeks at once rather than switching between individual weeks.

Fix the interaction overlap issue where hovering on booked slots causes the waitlist and cancel buttons to overlap with the review type badge. These elements need proper spacing so all information remains visible and clickable. Additionally, resolve the color clash between the review type badges and the booked slot backgrounds - ensure sufficient contrast so the badges remain readable against the slot background color.

The result should be a cleaner, more scannable interface where designers can see a month's worth of review opportunities at a glance without visual conflicts or confusing overlaps.

Implement automatic timezone detection to show all session times in the user's local timezone.

Use JavaScript's built-in timezone detection (Intl.DateTimeFormat().resolvedOptions().timeZone) to identify where the user is located. Convert all session times from their original timezones (Paris time for Session 1, PT for Sessions 2 & 3) to display in the user's local time automatically.

Remove the manual timezone selector since we'll now auto-detect. Still show the multi-timezone reference (Paris πŸ‡«πŸ‡·, Santiago πŸ‡¨πŸ‡±, Buenos Aires πŸ‡¦πŸ‡·, SF πŸ‡ΊπŸ‡Έ) for each session so people can coordinate with teammates, but make the primary display times reflect what's relevant for the current user.

For example, if someone in Buenos Aires views Session 1 (2:30 PM Paris time), they should see their local time (9:30 AM) as the primary display, with the other timezones shown as reference.

This eliminates confusion and the need for mental timezone math - each designer sees when reviews actually occur in their local time while still being able to coordinate globally.

Fix the booking modal to show times in the user's local timezone, consistent with how times are displayed in the main interface.

Currently, the booking modal seems to show the original session time (Paris or PT) rather than converting to the user's local time. Update the modal to:

  • Detect and use the same timezone conversion that's working in the main slot display
  • Show the selected slot time(s) in the user's local timezone
  • If booking multiple consecutive slots, show the full time range in local time (e.g., "9:30 AM - 10:15 AM" not "2:30 PM - 3:15 PM Paris")

The modal should give users confidence they're booking the correct time in their timezone. This is especially important for the Paris-based session where the time difference can be significant.

Ensure consistency - if a user sees "9:30 AM" for a slot in the main view, the booking modal should also show "9:30 AM" for that same slot.

// 6 Aug 2025

There's a timezone conversion bug in the booking modal that needs to be fixed. The times shown are incorrect.

For context: Session 1 runs from 2:30-4:30 PM Paris time. For someone in ET (Eastern Time), this should display as 8:30-10:30 AM, but the modal is showing 10:30 AM which is wrong.

Debug the timezone conversion logic:

  1. Verify the session times are correctly stored (Session 1 should be stored as 14:30-16:30 in Europe/Paris timezone)
  2. Check that the user's timezone is correctly detected (should be America/New_York for ET)
  3. Trace through the conversion calculation to find where it's going wrong
  4. The modal should show 8:30 AM for the first slot when viewed from ET

Test the fix by:

  • Confirming Session 1 (2:30 PM Paris) shows as 8:30 AM in the modal for ET users
  • Checking that all slots show the correct converted times
  • Ensuring the conversion works for all timezones (Paris, PT, ET, etc.)

The booking modal must show the same times as the main slot display - users should see consistent times throughout the interface.

Go to top
X (Twitter)
Discord community
GitHub discussions
YouTube channel
Bluesky
Product
FeaturesPricing
Developers
DocsStatusAPI ExamplesNPM Package Examples
Explore
ShowcaseTemplatesNewest ValsTrending ValsNewsletter
Company
AboutBlogCareersBrandhi@val.town
Terms of usePrivacy policyAbuse contact
Β© 2025 Val Town, Inc.