- Added `ProfileAvatar` for consistent avatar rendering across profiles, with fallback initials and gradient backgrounds.
- Created `ShareCTAButton` for sharing links with native sharing support and clipboard fallback.
- Integrated custom `tiptap` video extension (`tiptap-video`) for video support in rich text editing.
- Introduced `useColumnCount` for responsive column count management in dynamic masonry layouts.
- Enhanced onboarding flow with refined "Share My Profile" feature using the new share button.
- Updated styles and layout in filtered profiles and onboarding screens for better consistency and responsiveness.
- Introduced `GetNotifiedButton` for bookmarking searches and receiving notifications when new profiles match.
- Optimized responsive behavior of filters for desktop and mobile layouts.
- Enhanced "no profiles found" state with a clear call-to-action and improved visual design.
- Updated translations for notification strings in German and French.
- Implemented `parseFaq` to transform markdown into structured data for improved rendering and SEO.
- Introduced `react-markdown` with custom styling for better alignment with the application design.
- Added search functionality with query matching and automatic expansion of relevant answers.
- Designed a sticky navigation rail for easier category navigation.
- Enabled deep linking to questions and categories for external reference.
- Created reusable components for FAQ items and markdown rendering.
- Updated markdown file handling to exclude FAQ from generic loader (`MD_PATHS`).
- Redesigned notification cards with improved spacing and layout for better readability.
- Introduced a skeleton state and enhanced empty state for notifications with visual cues and localized text updates.
- Split notification settings into "Social" and "Other" categories for clearer organization.
- Added "Opt out of all notifications" as a separate toggle card.
- Refactored the option rendering logic and header structure for consistent alignment.
- Localized new strings for German and French translations.
- Implemented `AudioPlayer` for custom audio playback controls.
- Added `useAudioRecorder` hook for managing microphone audio recording with visual feedback.
- Introduced audio transcription API integration using OpenAI Whisper.
- Created `blobToBase64` utility to encode recorded blobs for API consumption.
- Added IndexedDB-based `recording-store` for saving in-progress recordings.
- Developed `VoiceAutofillSection` for guided recording, playback, transcription, and editing.
- Enhanced `CopyLinkOrShareButton` to support optional title and text for OS share sheets.
- Updated profile sharing to include contextual text about Compass' features and profile relevance.
- Localized share content in German and French JSON translations.
- Adjusted "Copy Link" button label to "Share" for clarity in supported languages.
When someone picks a scarcity reason in the delete survey (not enough
relevant people, community not active enough, messages unanswered), show
a callout making the case for staying: keeping the account is free,
saved-search alerts come to them, and staying keeps them findable by
people who join later. Two compatible people who join at different times
and both delete never meet.
Also relabels the modal's cancel button to "Keep my account" in that case.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
- Introduced `OgCard` React component as the default Open Graph preview card for social sharing (1200x630).
- Added `BrandFonts` module to load web fonts for accurate rendering.
- Integrated `OgCard` into the media creator pipeline as a `<Still>` with a new `still:og` script.
- Updated upload script to version the output and ensure compatibility with caching policies.
- Included new card meta tags across web pages, defaulting to this design for links without a custom preview.
- Extended theme and README to document font usage, card details, and deployment workflow.
- Added `accessibility_notes` (free text) to profiles to capture members' practical access needs while avoiding filterable attributes.
- Introduced `neurotype` (selectable values with details option) and GIN indexing to enable efficient keyword searches.
- Updated UI components, filters, and forms to support these new profile attributes.
- Modified backend and tests to handle the changes and ensure consistency across filtering, seeding, and display logic.
- Bumped API version to `1.49.0`.
- Introduced `StatDonut` and `WorldHeatmap` components for improved data visualization.
- Enhanced API to provide full country lists instead of a top-N subset for accurate map shading.
- Removed hardcoded country truncation logic in favor of dynamic slicing in the frontend.
- Updated age grouping logic to consolidate older age ranges and simplify backend queries.
- Refactored stats page layout to reduce redundancy and improve clarity of data presentation.
- Implemented demographic breakdowns for profile fields like gender, age, orientation, and more.
- Added `DistributionCard` component to render ranked bar lists for frontend visualization.
- Introduced backend aggregation logic for demographic stats with thresholds to ensure data anonymity and validity.
- Updated API response to include `demographics` field for frontend integration.
- Updated `VoteEvidence` and `NotifySpotlight` components with improved layouts, scaling, and responsiveness.
- Added live mobile sharing button leveraging the Web Share API on supported devices.
- Simplified and modernized repo activity metrics, introducing display floors and "last updated" live ping messaging.
- Improved German and French translations for new and existing components.
- Removed outdated or redundant components and feature cards for cleaner structure and focus.
- Refined media handling, accessibility, and content ordering for better usability and readability.
- Implemented `getChannelsCount` function in the backend for querying channel count.
- Added public `get-channels-count` schema definition with related metadata.
- Integrated the new endpoint into client-side user utilities for specific table reads.
- Adjusted documentation for migration process consistency.
- Replaced raw SQL interpolation with parameterized queries to prevent injection risks.
- Refactored user notification preference validation using runtime synchronized enums for enhanced type safety.
- Updated private message and channel membership checks to respect the "left" status.
- Enhanced JSONB handling in update queries for correctness and maintainability.
- Created `capture-alert.mjs` to generate alert loop video for the about page claim "Get Notified About Searches."
- Added `CountrySpread` widget for a ranked bar display of member distribution by country.
- Implemented `StatBand` component for live platform statistics on the about page.
- Introduced template rendering script (`render-search-alert.tsx`) for generating search alert email visuals.
- Updated documentation and improved workflows for media creation, video rendering, and data integration.
- Introduced `capture-vote.mjs` script to capture real voting proposal cards as visual evidence.
- Added `VoteEvidence` component to the about page to support the "Democratic" governance claim with verifiable proof from the `/vote` page.
- Integrated desktop and mobile screenshot handling, switching via `<picture>` media queries for optimal display.
- Updated about page layout to embed the proof next to the assertion, removing redundancy from the feature cards.
- Documented implementation details and selection rationale in `marketing-visuals.md`.
- Enhanced build scripts and updated image handling to support vote screenshots (WebP format, lazy-loaded).
- Introduced `capture-search.mjs` script for end-to-end mobile search flow captures.
- Added `SearchDemo` scene as a Remotion composition for the home-page hero clip.
- Integrated dynamic video selection based on theme in `home/search-demo.tsx` component.
- Included `fetch-media.mjs` script for fetching demo assets during build.
- Enabled optional email verification bypass for local captures (`dev-flags.ts`).
- Updated related documentation and scripts for media creation and deployment.