421 Commits

Author SHA1 Message Date
MartinBraquet
281555439c Set default projection field to card in profiles schema and adjust import formatting in schema.ts. 2026-07-30 00:19:06 +02:00
MartinBraquet
f2c93e3220 Limit ts-jest worker usage in Jest configs to prevent memory exhaustion on high-core-count machines. 2026-07-29 22:58:54 +02:00
MartinBraquet
8bf0ec0590 Clarify testing documentation: discourage monorepo-wide yarn test usage and add scoped testing examples. 2026-07-29 20:35:47 +02:00
MartinBraquet
12262f834f Show search summary when no profiles match filters: display a visual summary of applied filters to improve user feedback and search clarity. 2026-07-29 19:47:58 +02:00
MartinBraquet
0b696ff0b4 Make referral links editable: add input field for customization, update share button and QR code to reflect changes dynamically. 2026-07-29 16:49:02 +02:00
MartinBraquet
52347ec0b3 Reorganize and refine optional profile form: introduce dedicated "Photos" category for improved layout and visibility; update German and French translations accordingly. 2026-07-28 20:41:11 +02:00
MartinBraquet
a31ae0b3de Add comprehensive GeneralSettings component: refactor settings layout with structured cards, introduce new theme, font, and language pickers, enhance account and privacy management options with improved UX. 2026-07-28 20:24:19 +02:00
MartinBraquet
766de00d7c Refactor profile photo components: replace ProfileGallery with modular ProfileHeroPhoto, ProfilePhotoCarousel, and shared useProfilePhotos; enhance layout, improve accessibility, and remove redundant implementations. 2026-07-28 18:28:23 +02:00
MartinBraquet
7a50931f49 Add moderation tools: AccountOnHoldNotice component for user ban messaging variations, BannedUserModBar for moderator actions, and backend support for banReason. 2026-07-28 13:21:50 +02:00
MartinBraquet
476fe214db Add profile form navigation: sticky section index for desktop and collapsible bar for mobile; introduce useLongPressReveal hook for touch actions; improve form and layout styles for better usability and consistency. 2026-07-28 03:20:51 +02:00
MartinBraquet
26f086ce14 Solid re-design of home / about / profile / press pages 2026-07-28 02:06:51 +02:00
MartinBraquet
a091c7ad88 Add CHANGELOG.md and integrate user-facing release notes with technical details into release.sh and /news page. Enhance /news with collapsible technical sections and improve localization. 2026-07-27 01:26:14 +02:00
MartinBraquet
a5c4969d48 Introduce new components and utilities: ProfileAvatar, ShareCTAButton, custom video extensions, and responsive hooks.
- 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.
2026-07-27 00:51:20 +02:00
MartinBraquet
24fbd59f18 Add hint for centering face in profile picture with localized translations (DE, FR) 2026-07-26 15:09:07 +02:00
MartinBraquet
20732a5cbe Update filter labels for conciseness and consistency across components and translations. 2026-07-26 14:52:22 +02:00
MartinBraquet
fdc57f80af Add "Get Notified" button for saved searches and improve filters UI behavior:
- 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.
2026-07-26 14:25:46 +02:00
MartinBraquet
deeb05f2e0 Add structured FAQ page with search, categories, and deep links
- 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`).
2026-07-26 13:41:08 +02:00
MartinBraquet
680431ed75 Revamp notifications UI and settings
- 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.
2026-07-26 11:16:31 +02:00
MartinBraquet
b116f9d949 Fix education choice key: Rename 'PhD' to 'Doctorate' in choices.ts for consistency 2026-07-25 18:45:25 +02:00
MartinBraquet
fb24068729 Declare microphone-related permissions for voice recording in AndroidManifest and handle runtime permission errors appropriately in Android app. Update versionCode to 133 and add localized strings for improved error messaging. 2026-07-25 18:34:24 +02:00
MartinBraquet
4c76b643e3 Add voice recording, transcription, and audio player components
- 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.
2026-07-25 18:01:58 +02:00
MartinBraquet
d3e0835e43 Merge branch 'refs/heads/worktree-stay-on-delete' 2026-07-25 00:03:21 +02:00
MartinBraquet
19e253061d Add targeted share sheet content for profile sharing
- 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.
2026-07-24 23:57:56 +02:00
MartinBraquet
35c7ee178f Encourage users to keep their account when deleting for lack of matches
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>
2026-07-24 23:54:53 +02:00
MartinBraquet
381a6a0b7a Standardize meta descriptions by introducing OG_DESCRIPTION constant 2026-07-24 20:28:20 +02:00
MartinBraquet
de99d2decc Add social preview card rendering and deployment
- 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.
2026-07-24 18:34:18 +02:00
MartinBraquet
3a38e8affb Add neurotype and accessibility fields to profiles
- 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`.
2026-07-24 16:27:41 +02:00
MartinBraquet
cfa39ec88c Bump Android app version to 1.31.1 2026-07-24 04:38:10 +02:00
MartinBraquet
95d217fb61 Add StatDonut, WorldHeatmap, and support for full country lists on stats page
- 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.
2026-07-24 02:57:51 +02:00
MartinBraquet
5645007ff8 Add demographic distribution cards and backend support for /stats page
- 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.
2026-07-24 01:47:37 +02:00
MartinBraquet
f168ce2466 Enhance About page with updated help cards, improved sharing functionality, growth visualization, and refined translations 2026-07-23 17:32:56 +02:00
MartinBraquet
8d66e324e8 Redesign and enhance About page layout and content
- 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.
2026-07-23 16:18:31 +02:00
MartinBraquet
799cca3c03 Add getChannelsCount API endpoint to retrieve total message channel count
- 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.
2026-07-23 15:01:38 +02:00
MartinBraquet
d69bc44dfd Improve SQL robustness and security across notification settings, private messages, and utilities
- 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.
2026-07-23 14:14:26 +02:00
MartinBraquet
ba3af2e5d7 Add alert loop video generation and platform stats enhancements
- 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.
2026-07-23 00:28:45 +02:00
MartinBraquet
d35066d485 Add vote-tally capture and "How a decision gets made" section
- 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).
2026-07-22 02:34:18 +02:00
MartinBraquet
0136f1f386 Add search demo video generation and integration
- 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.
2026-07-22 01:39:45 +02:00
MartinBraquet
b2bbb4f630 Fix case inconsistency for "Finnish" in language choices 2026-07-21 14:40:19 +02:00
MartinBraquet
10e4c2008d Update member count messaging to reflect 700+ members in all relevant components and translations 2026-07-21 12:06:42 +02:00
MartinBraquet
31c241bb95 Add Signal support for social links, including URL handling, placeholder text, and icon rendering. Update version to 1.30.0. 2026-07-20 23:36:55 +02:00
MartinBraquet
5788e6d7aa Add Finnish to language choices 2026-07-20 23:07:04 +02:00
MartinBraquet
860cac1fd1 Add nice compass loading animation 2026-07-05 22:18:47 +02:00
MartinBraquet
6f32b9a5cc Add dev API 2026-07-02 18:34:22 +02:00
MartinBraquet
ec13ea5888 Set showPhotos default to true in display options logic 2026-06-20 19:33:51 +02:00
MartinBraquet
fbb0221493 Add missing translations 2026-06-17 00:23:43 +02:00
MartinBraquet
98ef626455 DRY and improve sign in/up design 2026-06-09 00:02:54 +02:00
MartinBraquet
5e2dd5757c Add signup translations 2026-06-08 23:47:23 +02:00
MartinBraquet
e2fd2abeb1 Improve home page design 2026-06-08 23:39:13 +02:00
MartinBraquet
ecb4a05d9a Add avatarUrl to new search alerts email 2026-06-06 18:39:31 +02:00
MartinBraquet
bf43bf1503 Add suspicious user limitations 2026-06-05 11:33:35 +02:00