Conversation
Merge pull request #29 from ACTA-Team/develop
- Removed the DappCredentialCard and FlipCredential components as they were no longer needed. - Refactored the page.tsx file to streamline imports and improve structure by organizing components into feature-based directories. - Added new components for layout and effects, including ScrollProgress, Footer, Aurora, and StarsBackground. - Introduced new FAQ and HowItWorks sections to enhance user experience and provide better information. - Updated the HeroSubtitle and AnimatedActa components for improved visual presentation.
…formatting - Updated quotes in the GitHub Actions workflow for Node.js setup to use double quotes for consistency. - Reformatted text in ValueDetailsExtended component for better readability.
…sistence Overview Add complete local Supabase setup using Docker and Supabase CLI, providing developers with a self-contained database environment for waitlist feature development. The implementation includes database schema, migrations, seeding, API integration, and comprehensive documentation. Core Implementation Database Layer - Initialize Supabase project with local Docker configuration (supabase/config.toml) - Create migration (20250225000000_create_waitlist_table.sql) with: * public.waitlist table: id (UUID PK), email (UNIQUE), company_name, use_case, created_at * Index on created_at DESC for efficient chronological queries * Row Level Security (RLS) policies enforcing anonymous inserts, service_role selects - Add idempotent seed.sql with 8 production-ready sample data rows - Use ON CONFLICT (email) DO NOTHING to ensure seed re-execution safety Backend Integration - Create Supabase client (src/lib/supabase.ts) with fallback resilience: * Placeholder credentials when environment variables missing or invalid * Service-only getServiceSupabase() function isolating service role key * Graceful console warnings when keys missing (non-blocking startup) - Implement POST /api/waitlist route handler with: * Email validation (RFC-compliant regex) * Honeypot anti-bot field handling * Duplicate email detection (PostgreSQL 23505 → HTTP 409 Conflict) * Proper status codes: 201 Created, 400 Bad Request, 409 Conflict, 500 Internal Error * Server-side payload sanitization and database insert Frontend Updates - Refactor WaitlistForm component (src/features/waitlist/WaitlistForm.tsx): * Replace Formspree endpoint with internal /api/waitlist * Map form fields to database schema: company → company_name, message → use_case * Implement 4-state UX: idle, ok (201), duplicate (409), error (400/500) * Preserve existing styling and user experience patterns * Maintain loading and success states with appropriate messaging Configuration & Scripts - Add 4 npm scripts for database lifecycle management: * npm run db:start → npx supabase start (Docker containers) * npm run db:stop → npx supabase stop (Graceful shutdown) * npm run db:reset → npx supabase db reset (Migrations + seed) * npm run db:migration <name> → npx supabase migration new (New migration) - Install @supabase/supabase-js@^2.97.0 dependency - Update .env.example with optional Supabase environment variables and documentation - Extend .gitignore to exclude supabase/.temp/ (temporary files) and .env.local (local credentials) Documentation - Expand README.md with comprehensive "Local Supabase (Docker) — Optional" section: * Updated prerequisites (Docker Desktop, Supabase CLI marked as optional) * 5-step quick start guide for local development * Database scripts reference table * Supabase Studio access instructions * Detailed credential fallback behavior explanation * Testing instructions across different scenarios Architecture & Design Patterns Resilience & Graceful Degradation The implementation follows fail-safe principles: - App starts successfully with placeholder credentials (no environment variables required) - Waitlist submissions execute without errors in all scenarios - Real database persistence only when valid credentials provided - Non-blocking warnings logged to console when optional services unavailable Security Considerations - Service role key exclusively server-side (never in client bundle) - Row Level Security enforces anonymous insert-only, service-role full access - Email uniqueness enforced at both database and application layers - Input validation at multiple layers: client-side regex, server-side validation, database constraints - No hardcoded secrets (all credentials via environment variables) Code Quality - Full TypeScript type safety across all new code - Clear separation of concerns: client, API route, database client - Comprehensive code comments explaining fallback behavior - Follows Next.js and React best practices - Maintains consistency with existing project architecture and styling Acceptance Criteria Fulfillment ✓ README documents all prerequisites including optional Docker/Supabase CLI ✓ Documentation explains credentials are optional, app uses fallbacks ✓ Supabase client implements placeholder URLs and JWT tokens ✓ supabase/config.toml exists with default Supabase configuration ✓ All 4 npm scripts (db:start, db:stop, db:reset, db:migration) implemented ✓ Migration creates public.waitlist with required columns and indices ✓ Seed file contains exactly 8 rows with idempotent ON CONFLICT handling ✓ .env.example includes all 3 Supabase variables with documentation ✓ .gitignore properly excludes temporary and local credential files ✓ WaitlistForm successfully migrated from Formspree to Supabase backend ✓ API route validates all inputs, handles duplicates, manages database errors ✓ RLS policies enforce security while allowing anonymous signups Testing Verification - Syntax validation: All TypeScript files compile without errors - Import resolution: All path aliases (@/lib, @/components) resolve correctly - Dependency installation: @supabase/supabase-js available in node_modules - File structure: All required files exist in correct locations - Database schema: Migration includes table creation, indexing, RLS policies - API functionality: Route handler exports POST, validates inputs, handles errors - Component integration: WaitlistForm maps fields, handles all response states - Documentation: README complete, .env.example documented, gitignore updated Related Issue Closes #23 - Add local Supabase (Docker) and waitlist table with seed
…works-component # Conflicts: # src/features/how-it-works/HowItWorks.tsx
…onent refactor: update the How It Works component to new design
…abase credentials - Remove POST /api/waitlist and restore WaitlistForm to Formspree - Remove placeholder fallbacks from supabase client, use env vars directly Made-with: Cursor
Merge pull request #32 from JuliobaCR/feat/supabase-waitlist-docker
- Add POST /api/waitlist with email validation and Supabase insert - Return 409 on duplicate email, 503 on Supabase errors - Update WaitlistForm to submit to API (email, company_name, use_case) - Add duplicate/error states with appropriate messages Made-with: Cursor
Made-with: Cursor
Made-with: Cursor
Merge pull request #33 from felipevega2x/feat/waitlist-supabase-api
feat: add credentials svg
Deleted several unused UI components including AlertDialog, Alert, AnimatedShinyText, AspectRatio, Avatar, Breadcrumb, Calendar, Carousel, Chart, Checkbox, Collapsible, Command, ContextMenu, and Dialog to streamline the codebase.
Added "peer": true to several dependencies in package-lock.json and modified lint scripts in package.json to enforce zero warnings.
…perience Added a new ACTAScrollDown component that features a scroll-based animation with dynamic opacity for multiple panels. The component includes structured step data for issuers, holders, and verifiers, enhancing user engagement through visual storytelling.
Deleted the ValueDetails and ValueProposition components to streamline the codebase and eliminate unused code. This change helps improve maintainability and reduces the overall bundle size.
Introduced a new TrustedStartups component that displays logos of fast-growing startups, enhancing social proof on the platform. The component features a responsive layout and integrates with Next.js for optimized image handling.
…rallax component Deleted the AnimatedActa and HeroSubtitle components to clean up the codebase. Introduced the HeroParallax component to enhance the hero section with a parallax effect showcasing multiple credentials, improving visual engagement.
…mponent Modified the Footer component to improve layout and styling, including adjustments to spacing and text casing. Removed the ScrollProgress component to streamline the codebase, as it was no longer needed.
…codebase Deleted the Aurora and StarsBackground components to clean up the codebase and eliminate unused code, improving maintainability and reducing bundle size.
Updated the ActaLanding component by removing unused imports and components, and integrating the HeroParallaxDemo for improved visual engagement. Added TextAnimate for dynamic text presentation and included TrustedStartups to showcase partner logos, enhancing the overall user experience and maintainability of the codebase.
Deleted the use-mobile and use-toast hooks to eliminate unused code, improving maintainability and reducing bundle size.
Deleted the ThemeProvider component to eliminate unused code, improving maintainability and reducing bundle size.
Updated the ProductCard component to utilize unoptimized image loading for the product thumbnail, improving performance and ensuring compatibility with AVIF format. Added a comment for clarity on the optimization approach.
Feat/new UI
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment Tip You can make CodeRabbit's review stricter and more nitpicky using the `assertive` profile, if that's what you prefer.Change the |
|
| GitGuardian id | GitGuardian status | Secret | Commit | Filename | |
|---|---|---|---|---|---|
| 27862411 | Triggered | JSON Web Token | 7505964 | src/lib/supabase.ts | View secret |
🛠 Guidelines to remediate hardcoded secrets
- Understand the implications of revoking this secret by investigating where it is used in your code.
- Replace and store your secret safely. Learn here the best practices.
- Revoke and rotate this secret.
- If possible, rewrite git history. Rewriting git history is not a trivial act. You might completely break other contributing developers' workflow and you risk accidentally deleting legitimate data.
To avoid such incidents in the future consider
- following these best practices for managing and storing secrets including API keys and other credentials
- install secret detection on pre-commit to catch secret before it leaves your machine and ease remediation.
🦉 GitGuardian detects secrets in your source code to help developers and security teams secure the modern development process. You are seeing this because you or someone else with access to this repository has authorized GitGuardian to scan your pull request.
Merge pull request #36 from ACTA-Team/develop
🚀 ACTA Pull Request
Mark with an
xall the checkboxes that apply (like[x])📌 Type of Change
📝 Changes description
📸 Evidence (A Loom/Cap video is required as evidence, we WON'T merge if there's no proof)
⏰ Time spent breakdown
🌌 Comments
Thank you for contributing to ACTA! We hope you can continue contributing to this project.