FeaturesTemplatesShowcaseTownie
AI
BlogDocsPricing
Log inSign up
valeriewwong
valeriewwongdesignreview
Public
Like
designreview
Home
Code
7
.claude
1
backend
1
frontend
2
.vtignore
CLAUDE.md
TODO.md
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/4/2025
Viewing readonly version of main branch: v351
View latest version
TODO.md

// 25 Jul 2024

Update the design review scheduler to better match our actual schedule and add key features for managing slots.

First, correct the session times - we only have reviews on Tuesdays and Thursdays:

  • Tuesdays have 3 sessions: AX/Workflows/Insights/AI (2:30-4:30pm Paris time), Search/Activation/Tel/Bots (10-11am PT), and CPX/DS/DP/Integrations (1-2pm PT)
  • Thursdays have 1 session: Global/All Pods (8:30-9:30am PT)

All times should automatically display in the viewer's local timezone - detect their timezone and convert all session times accordingly. Don't show multiple timezones, just show what time each session is in their local time. For example, someone in Buenos Aires should see all times converted to their timezone without any reference to PT or Paris time.

Add the ability for designers to cancel their own bookings. When someone views a slot they've booked, they should see an option to remove themselves. This should free up the slot immediately.

Implement a waitlist feature where designers can join a queue for fully booked slots. If someone cancels, the system should automatically assign the slot to the first person on the waitlist. Show the waitlist count on booked slots (e.g., "2 on waitlist") and let people see their position when they join.

Since reviews are in 15-minute increments but designers often need more time, add a duration selector when booking. Let designers choose how many consecutive 15-minute slots they need (1-4 slots, showing as 15, 30, 45, or 60 minutes). The system should check availability for all requested consecutive slots and book them as a group. Display multi-slot bookings as a single continuous block in the UI.

These features address our main pain points: the inflexibility of the Google Doc for cancellations, the frustration when popular slots fill up with no recourse, and the awkwardness of booking multiple separate slots for longer reviews.

Make some UI improvements to simplify the interface and improve clarity for our global team.

Remove the subtitle text "Book your design review slots across our global team sessions" from the page header - we'll add better copy later but for now just the main title is enough.

Remove the total slot count that shows availability across all sessions. Keep the individual slot counts for each session tab since that's what designers actually need to see when booking.

Since our team is distributed across 4 main locations, display the session times in all relevant timezones with country flags for clarity. Show Paris πŸ‡«πŸ‡·, Santiago πŸ‡¨πŸ‡±, Buenos Aires πŸ‡¦πŸ‡·, and SF πŸ‡ΊπŸ‡Έ times for each session. This helps everyone quickly see when sessions occur without doing mental timezone math.

Ensure consistent time formatting throughout the entire interface - all times should display in 12-hour format with AM/PM (e.g., "2:30 PM" not "14:30" or "2:30p"). This includes the timezone display, slot times, and anywhere else times appear. The consistent format makes it easier to scan and reduces confusion.

Fix two issues with the current implementation:

First, simplify the cancellation flow by removing the name verification requirement. For now, allow anyone to cancel any slot with just a confirmation click - we'll add proper authentication later to prevent people from deleting others' slots. This makes testing easier and removes friction.

Second, correct the timezone handling for Session 1 (AX/Workflows/Insights/AI). This session runs from 2:30-4:30 PM Paris time, but it's currently showing the wrong times. The system should store this session's schedule in Paris timezone (Europe/Paris) and then convert it to each viewer's local timezone. For example, if someone in SF views it, they should see their local SF time (which would be 5:30-7:30 AM PT when Paris is at 2:30 PM). The multi-timezone display should show the same slot converted correctly to all 4 timezones.

Make sure the timezone conversion is working properly - Session 1 should be defined as Paris time in the backend, then converted for display based on the user's location.

Fix the slot cancellation feature which is currently returning a 500 error. When someone clicks to cancel a slot, the server is failing to process the request.

Debug the DELETE endpoint in server.ts to find why it's throwing a 500 error. Check that:

  • The endpoint is correctly extracting the slot ID from the request
  • The database query to update the slot is properly formatted
  • All the fields being cleared (designer_name, topic, review_type, xfn_partners) match the database schema
  • The waitlist logic (if implemented) isn't causing the error
  • The response is being sent correctly after the database update

Also check the frontend is sending the request to the correct endpoint URL and the slot ID is being passed properly. Add error logging to help identify where the cancellation process is failing.

The cancellation should simply clear the booking details and set the slot status back to 'available', then return a success response.

// 29 Jul 2025

Update the cancellation flow to give designers more flexibility when they've booked multiple consecutive slots.

Currently, canceling removes the entire booking. Instead, when someone cancels a multi-slot booking, show them each 15-minute segment they've reserved and let them select which parts to cancel using checkboxes. This way, someone who booked 45 minutes but only needs 30 can free up the extra time without losing their spot entirely.

The cancellation modal should clearly show the time ranges for each slot in the booking. Default to selecting all slots (full cancellation) but allow users to uncheck slots they want to keep.

Ensure the system maintains booking continuity - if someone cancels middle slots from a longer booking, handle that appropriately. The remaining slots should still function correctly whether they're continuous or now separated.

This solves a real pain point from our Google Doc where people would sometimes hog time slots because they couldn't easily adjust their booking duration after realizing they overestimated their needs.

I'm still not seeing the checkbox functionality for partial cancellations when I test canceling a multi-slot booking. When I click cancel on a booking that spans multiple slots, it's still showing the old cancellation flow without any checkboxes to select which slots to cancel.

Can you check the implementation again? Specifically:

  1. Verify the cancel modal is actually showing checkboxes for each slot in a multi-slot booking
  2. Confirm the backend is tracking which slots belong together as one booking
  3. Make sure the frontend is passing the selected slots to the backend when confirming cancellation
  4. Test with a 30 or 45-minute booking to ensure multiple slots appear with checkboxes

Walk through the actual code that should be handling this feature and identify what might be missing or not connected properly.

The scheduler has some bugs and could use a design refresh to make it more polished and professional.

First, investigate why duplicate time slots are appearing - there should only be one slot per 15-minute increment. Find and fix the root cause, then clean up any existing duplicates.

For the design improvements, make the interface feel more modern and sleek. Consider:

  • Better visual hierarchy to make important information stand out
  • Smoother transitions and micro-interactions
  • More sophisticated typography and spacing
  • Refined color usage beyond just the basic review type badges
  • Improved layout that reduces visual clutter
  • Better mobile responsiveness

The goal is to evolve this from a functional prototype to something that feels like a polished product our design team would be proud to use daily. Keep the core functionality working while elevating the overall experience.

Focus on making common tasks (viewing available slots, booking time, managing bookings) as intuitive and visually appealing as possible.

Let's refine the interface to be more efficient and calendar-like, taking inspiration from modern scheduling tools.

The slot display feels cluttered - streamline the visual presentation of available slots. Each slot shouldn't need explicit instructions on how to interact with it. Consider how popular calendar apps display time blocks efficiently without taking up excessive space.

Improve the temporal navigation by organizing sessions into weekly views. Users should be able to move between weeks intuitively, including viewing past weeks to reference previous reviews. Make it visually clear when viewing historical data versus upcoming sessions - past sessions should feel distinctly different.

The current grid layout uses a lot of screen real estate. Explore more compact ways to display the 15-minute slots while maintaining clarity. Think about how traditional calendar interfaces pack a lot of time slots into a readable format. The goal is to show more information in less space without sacrificing usability.

Overall, aim for a more sophisticated, calendar-inspired interface that our design team would expect from a professional scheduling tool.

// 1 Aug 2025

The interface needs some polish to improve readability and visual consistency.

The current slot layout feels cramped. Explore a more spacious design that gives each time slot room to breathe - consider how professional calendar applications display hourly or half-hourly blocks in a way that's easy to scan and interact with. The slots need to be large enough to comfortably display the booking information.

When someone books multiple consecutive slots, the interface should intelligently display this as one cohesive booking block rather than separate segments. This would make it clearer when someone has reserved extended time and create a cleaner visual layout.

Review all text throughout the interface for proper grammar, particularly around singular/plural forms. The copy should read naturally whether displaying one item or many.

The typography feels inconsistent across different elements. Establish a clear type hierarchy using consistent font sizes, weights, and spacing throughout the application. Define specific styles for headings, body text, labels, and interactive elements, then apply them uniformly. The result should feel cohesive and professional.

These refinements will elevate the tool from functional to polished, making it something our design team will enjoy using daily.

Let's make the interface cleaner and more refined with better use of space and visual feedback.

The slot layout needs to be reorganized - instead of wrapping slots horizontally, display them vertically with one slot per row. This will create a cleaner, more scannable list similar to how calendar apps show time blocks in a day view.

Ensure visual consistency by making all slots (both available and booked) maintain the same height. This creates a more stable, professional interface where elements don't jump around based on content.

The current typography feels too heavy and overwhelming. Scale down the font sizes and reduce the font weights throughout the interface. Aim for a lighter, more elegant type treatment that creates visual breathing room. The page should feel sophisticated and easy to read, not bold and shouty.

Replace the browser's default confirmation dialogs with a subtle toast notification system. When actions complete (like booking a slot), show a brief confirmation message in the bottom left corner that automatically dismisses. This provides feedback without interrupting the user's flow.

These changes will create a more refined, professional tool that feels considered and well-designed rather than just functional.

Refine the interface copy and layout to be more direct and efficient.

Update all dialog text throughout the application to use active, confident language. Remove hesitant phrases like "Are you sure..." and replace them with clear, direct statements. For example, instead of "Are you sure you want to cancel?" use "Cancel this booking" with clear action buttons. The copy should feel decisive and professional, respecting our designers' time by being concise.

Rethink the slot layout - return to a horizontal arrangement but contain it within a scrollable container. All slots for a session should sit on a single horizontal line that users can scroll through if needed. This creates a cleaner visual hierarchy where each session is clearly one row, similar to how modern calendar apps handle busy schedules. The horizontal scroll should feel smooth and indicate when more slots are available off-screen.

Fix the scrolling behavior and create a more stable, predictable slot layout.

The horizontal scroll should only apply to the slot container within each session, not the entire page. Each session row should have its own scrollable area for slots while the page itself remains stable with normal vertical scrolling.

Establish consistent slot sizing - all slots should maintain the same base width whether booked or available. When someone books multiple consecutive slots (30, 45, or 60 minutes), visually merge those slots into one continuous block that spans the appropriate width. For example, a 30-minute booking should appear as one block that's exactly twice the width of a single slot, not a randomly sized element.

Streamline the interaction buttons by replacing text labels with icons. Use appropriate icons for joining waitlist and canceling bookings, with tooltips appearing on hover to clarify the action. This reduces visual clutter while maintaining functionality, especially helpful when slots contain booking information.

The result should be a predictable grid where users can immediately understand the time blocks and interactions remain consistent regardless of booking status.

// 4 Aug 2025

There's a critical scrolling bug that needs to be fixed. Currently, the ENTIRE PAGE scrolls horizontally, which breaks the interface.

The intended behavior is:

  • The main page should ONLY scroll vertically (normal page scrolling)
  • Each session should have its own container with slots in a horizontal row
  • ONLY the slots container within each session should scroll horizontally when there are too many slots to fit
  • The page header, tabs, and session information should stay fixed in place horizontally

Debug why the whole page is scrolling horizontally - likely issues:

  • Missing overflow-x: hidden on the body or main container
  • Slots container extending beyond viewport width
  • Incorrect CSS on parent containers

Test the fix by:

  1. Confirming you can scroll the page up and down normally
  2. Confirming the page CANNOT scroll left and right
  3. Confirming each session's slots CAN scroll left and right independently
  4. Checking that no content is cut off or hidden unintentionally

This is breaking the core user experience, so please verify the fix actually works by testing the scrolling behavior after implementing changes.

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