A modern remote job platform connecting talented software developers with worldwide opportunities. Built for developers who want to find remote work or collaborate on exciting projects.
RENCONTRE is a full-featured platform designed specifically for the remote software development community. It combines job searching, networking, and collaboration into one seamless experience. Whether you're a developer looking for your next remote role or an employer seeking talented engineers, RENCONTRE provides the tools you need.
RENCONTRE is production-ready with:
- Complete database schema with Row Level Security
- Fully responsive design (mobile, tablet, desktop)
- All features tested and functional
- Optimized build for deployment
- Comprehensive security measures
For Job Seekers:
- Browse curated remote developer positions worldwide
- Filter jobs by position type (Frontend, Backend, Full Stack)
- Search jobs by title, company, or description
- View detailed job requirements and salary ranges
- Apply to positions with custom cover letters
- Track application status (Pending, Reviewed, Accepted, Rejected)
For Employers:
- Post unlimited remote job listings
- Manage job postings (create, edit, close positions)
- Review applications from qualified candidates
- Update application statuses
- Access applicant profiles and resumes
Networking & Collaboration:
- Share project ideas and startup concepts
- Post collaboration opportunities
- Connect with other developers
- Comment on community posts
- Filter posts by type (Project, Startup, Collaboration)
- Track post status (Active, Completed, Closed)
Social Features:
- Send connection requests to other users
- Accept or decline connection requests
- Build your professional network
- View connected users' profiles
Applicant Profiles:
- Complete professional profile with bio and avatar
- Showcase technical skills
- Specify position type preference (Frontend, Backend, Full Stack)
- Add years of experience
- Upload resume
- Link to portfolio, GitHub, and LinkedIn
- Toggle availability status
- View and manage job applications
Employer Profiles:
- Complete company information (name, description, industry)
- Company branding (logo, avatar)
- Company details (size, founding year, location)
- Website and social media links (Twitter)
- Manage posted job listings
- View and review applicant submissions
- Dashboard for tracking hiring pipeline
- Secure email/password authentication via Supabase Auth
- Protected routes for authenticated content
- Row Level Security (RLS) on all database tables
- User-specific data access policies
- Profile picture upload with secure storage
- Session management with automatic state sync
- React 18 - Modern UI library with hooks
- TypeScript - Type-safe development
- React Router v6 - Client-side routing
- Vite - Fast build tool and dev server
- Supabase - Backend as a Service
- PostgreSQL database
- Real-time subscriptions
- Authentication
- Storage for file uploads
- Row Level Security (RLS)
- Custom CSS with modern design patterns
- Responsive layout for all screen sizes
- Animated gradient backgrounds
- Interactive UI components with hover states
- Clean, professional design aesthetic
The platform uses 9 interconnected tables with comprehensive security policies.
profiles
- Base user information linked to auth.users
- User type (employer/applicant)
- Bio, avatar, location
- Website and social media links (Twitter)
applicant_profiles
- Extended information for job seekers
- Skills array
- Experience level
- Portfolio links
- Resume storage
- Availability status
employer_profiles
- Company information and description
- Industry and founding year
- Branding assets (logo)
- Company size and website
job_listings
- Job postings from employers
- Position details and requirements
- Salary range and experience needed
- Status tracking (open/closed)
applications
- Job applications from applicants
- Cover letters
- Application status tracking
- Links applicants to jobs
community_posts
- User-generated content
- Project and collaboration posts
- Technology tags
- Status tracking
post_comments
- Comments on community posts
- Threaded discussions
post_likes
- Like/unlike functionality for posts
- Prevents duplicate likes per user
- Tracks like counts for engagement metrics
connections
- User networking
- Connection request status
- Bidirectional relationships
All tables implement Row Level Security with policies ensuring:
- Users can only modify their own data
- Employers can only manage their own job listings
- Applicants can only apply with their own profile
- Public viewing of jobs and community content
- Private viewing of applications and connections
- Node.js 16+ installed
- Supabase account
- Git
- Clone the repository
git clone <repository-url>
cd rencontre- Install dependencies
npm install- Set up environment variables
The project includes a .env file with Supabase configuration:
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
- Database setup
The database schema is automatically created via migrations in supabase/migrations/. These include:
- Initial schema creation
- Security policies
- Performance indexes
- Foreign key relationships
- Start development server
npm run dev- Build for production
npm run build- Sign Up - Create account and select "Applicant" user type
- Complete Profile - Add skills, experience, resume, and portfolio links
- Browse Jobs - Search and filter positions by type
- Apply - Submit applications with custom cover letters
- Network - Join community, share projects, connect with others
- Track Progress - Monitor application statuses in profile
- Sign Up - Create account and select "Employer" user type
- Company Setup - Add company details, logo, and information
- Post Jobs - Create detailed job listings with requirements
- Review Applications - View applicant profiles and submissions
- Manage Hiring - Update application statuses, close positions
- Engage - Participate in community, find talent organically
The job marketplace includes sophisticated filtering:
- Position Type Filter: Frontend, Backend, Full Stack, or All
- Text Search: Searches across job title, company name, and description
- Real-time Updates: Jobs refresh automatically when filters change
- Smart Display: Shows most recent postings first
For Applicants:
- One application per job (prevents duplicates)
- Custom cover letter for each application
- Real-time status tracking
- Application history in profile
For Employers:
- Bulk application review
- Status updates (Pending → Reviewed → Accepted/Rejected)
- View full applicant profiles
- Access to resumes and portfolios
Post Types:
- Project: Share side projects or open source work
- Startup: Find co-founders or early team members
- Collaboration: Seek partners for specific initiatives
Engagement Features:
- Like System: Like/unlike posts with real-time count updates
- Comments: Add comments to any post, delete your own comments
- Share Options:
- Copy direct link to post
- Share to Twitter with auto-populated text
- Share to LinkedIn
- Share to Facebook
- Connect: Send connection requests directly from posts
- Filter & Sort: Filter by post type, sorted by most recent
- Post Management: Edit post status, delete your own posts
- Send connection requests to any user
- Receive and manage incoming requests
- Accept or decline connections
- View connected users' full profiles
- Unique constraint prevents duplicate connections
Avatar Upload:
- Drag-and-drop or click to upload
- Automatic image optimization
- Secure storage in Supabase Storage
- Public URL generation
Resume Management:
- PDF upload support
- Secure file storage
- Direct access links for employers
The platform is fully responsive across:
- Desktop (1024px+)
- Tablet (768px - 1023px)
- Mobile (320px - 767px)
All features are accessible and optimized for each screen size.
Components are organized by feature:
components/Auth/- Login and signup formscomponents/Jobs/- Job listings and detailscomponents/Community/- Posts and interactionscomponents/Employer/- Employer-specific featurescomponents/Applicant/- Applicant-specific featurescomponents/Layout/- Header and shared layoutcomponents/Profile/- Profile management
- React Context API for authentication state
- Local component state for UI interactions
- Supabase real-time subscriptions for live data
- URL state for routing and deep linking
- Database indexes on frequently queried columns
- Efficient RLS policies with proper JOINs
- Lazy loading of job details
- Optimistic UI updates
- Debounced search inputs
- All routes protected with authentication checks
- RLS policies on every database table
- Secure file uploads with access controls
- SQL injection prevention via Supabase client
- XSS protection through React's built-in escaping
- CSRF protection through Supabase auth
The application uses Supabase's auto-generated REST API:
Authentication:
supabase.auth.signUp()- User registrationsupabase.auth.signInWithPassword()- Loginsupabase.auth.signOut()- Logoutsupabase.auth.onAuthStateChange()- Session monitoring
Database:
supabase.from('table').select()- Read datasupabase.from('table').insert()- Create recordssupabase.from('table').update()- Modify recordssupabase.from('table').delete()- Remove records
Storage:
supabase.storage.from('bucket').upload()- File uploadssupabase.storage.from('bucket').getPublicUrl()- Get file URLs
Potential features for future development:
- Advanced Search: Salary range filters, location preferences
- Messaging: Direct messaging between users
- Notifications: Real-time alerts for applications and connections
- Video Profiles: Introduction videos for applicants
- Company Reviews: Ratings and reviews from developers
- Skill Assessments: Technical challenges for applicants
- Analytics Dashboard: Insights for employers
- Job Alerts: Email notifications for new matching jobs
- Saved Jobs: Bookmark interesting positions
- Interview Scheduling: Built-in calendar integration
- Referral Program: Rewards for successful referrals
- Advanced Profiles: Portfolios with code samples
- AI Matching: Smart job recommendations
rencontre/
├── src/
│ ├── components/ # Reusable UI components
│ │ ├── Applicant/ # Applicant-specific components
│ │ ├── Auth/ # Authentication forms
│ │ ├── Community/ # Community features
│ │ ├── Employer/ # Employer dashboard
│ │ ├── Jobs/ # Job listings and details
│ │ ├── Layout/ # Header and navigation
│ │ └── Profile/ # Profile management
│ ├── contexts/ # React contexts
│ │ └── AuthContext.tsx # Authentication state
│ ├── lib/ # Utilities and configs
│ │ └── supabase.ts # Supabase client
│ ├── pages/ # Route pages
│ │ ├── AuthPage.tsx # Login/signup page
│ │ ├── CommunityPage.tsx # Community hub
│ │ ├── HomePage.tsx # Landing page
│ │ ├── JobsPage.tsx # Job marketplace
│ │ └── ProfilePage.tsx # User profile
│ ├── App.tsx # Main app component
│ ├── App.css # Global styles
│ └── main.tsx # Entry point
├── supabase/
│ └── migrations/ # Database migrations
├── dist/ # Build output
├── index.html # HTML template
├── package.json # Dependencies
├── tsconfig.json # TypeScript config
├── vite.config.ts # Vite configuration
└── README.md # This file
npm run devStarts the development server at http://localhost:5173
npm run buildCreates optimized production build in dist/
npx tsc --noEmitRuns TypeScript compiler for type validation
The application is configured for deployment with:
- Static hosting - The built files in
dist/can be deployed to any static hosting service - Environment variables - Configure Supabase credentials in
.envfile - Redirects -
_redirectsfile included for SPA routing support - Optimized builds - Production builds are minified and optimized
- Set up Supabase project and configure environment variables
- Run migrations to create database schema
- Build the project with
npm run build - Deploy
dist/folder to hosting service - Verify environment variables are set correctly
- Test authentication and database connections
The platform is fully responsive with breakpoints at:
- 1280px - Large desktop adjustments
- 1024px - Desktop to tablet transition
- 768px - Tablet layout
- 640px - Mobile landscape
- 480px - Mobile portrait
- 360px - Small mobile devices
All features work seamlessly across all screen sizes with optimized layouts and interactions.
This is a portfolio/demo project, but suggestions and feedback are welcome.
This project is open source and available for educational purposes.
- HTML: ~0.5 KB (gzipped: 0.3 KB)
- CSS: ~33 KB (gzipped: 6 KB)
- JS: ~396 KB (gzipped: 110 KB)
- Chrome (latest)
- Firefox (latest)
- Safari (latest)
- Edge (latest)
- Mobile browsers (iOS Safari, Chrome Mobile)
- Lazy loading for modal content
- Debounced search inputs
- Optimized database queries with proper indexes
- Efficient RLS policies
- CSS animations with GPU acceleration
- Minified and compressed production builds
- Profile pictures require external hosting (Imgur, GitHub, etc.)
- No built-in messaging system (future enhancement)
- No real-time notifications (future enhancement)
- No email verification (disabled by default)
For questions or issues, please refer to the Supabase documentation or React documentation for specific technical details.
Built with React, TypeScript, and Supabase
Designed for the remote development community. Production-ready and fully responsive.