.gs-page *, .gs-page *::before, .gs-page *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root { –teal: #37857D; –teal-dark: #2A8A47; –teal-light: #D0EBE6; –bg: #E8F2EE; –card-bg: #F8FBFA; –text: #111111; –muted: #555555; –border: #C8DDD9; –white: #FEFEFE; }
.gs-page { scroll-behavior: smooth; font-family: -apple-system, BlinkMacSystemFont, “Segoe UI”, Roboto, Helvetica, Arial, sans-serif; color: var(–text); background: var(–white); line-height: 1.6; }
.gs-page .gs-nav { position: sticky; top: 0; z-index: 100; background: rgba(254,254,254,0.92); backdrop-filter: blur(12px); border-bottom: 1px solid var(–border); padding: 0 24px; }
.gs-page .nav-inner { max-width: 1100px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; height: 64px; }
.gs-page .nav-brand { display: flex; align-items: center; gap: 10px; text-decoration: none; color: var(–text); }
.gs-page .nav-brand span { font-weight: 700; font-size: 1.1rem; letter-spacing: -0.3px; }
.gs-page .nav-links { display: flex; align-items: center; gap: 28px; list-style: none; }
.gs-page .nav-links a { text-decoration: none; color: var(–muted); font-size: 0.9rem; transition: color 0.2s; }
.gs-page .nav-links a:hover { color: var(–teal); }
.gs-page .nav-links .btn-nav { background: var(–teal); color: #fff; padding: 8px 18px; border-radius: 8px; font-weight: 600; font-size: 0.9rem; }
.gs-page .nav-links .btn-nav:hover { background: #2d706a; color: #fff; }
.gs-page .hero { background: linear-gradient(135deg, var(–teal) 0%, #2d706a 100%); color: #fff; padding: 96px 24px 80px; text-align: center; }
.gs-page .hero-badge { display: inline-block; background: rgba(255,255,255,0.18); border: 1px solid rgba(255,255,255,0.3); border-radius: 100px; padding: 5px 16px; font-size: 0.8rem; font-weight: 600; letter-spacing: 0.5px; margin-bottom: 24px; text-transform: uppercase; }
.gs-page .hero h1 { font-size: clamp(2.2rem, 5vw, 3.6rem); font-weight: 800; letter-spacing: -1px; line-height: 1.15; max-width: 720px; margin: 0 auto 20px; color: #fff; }
.gs-page .hero p { font-size: 1.15rem; opacity: 0.9; max-width: 560px; margin: 0 auto 36px; }
.gs-page .hero-cta { display: inline-flex; align-items: center; gap: 12px; }
.gs-page .btn-primary { display: inline-flex; align-items: center; gap: 8px; background: #fff; color: var(–teal); padding: 14px 28px; border-radius: 12px; font-weight: 700; font-size: 1rem; text-decoration: none; transition: transform 0.15s, box-shadow 0.15s; box-shadow: 0 4px 20px rgba(0,0,0,0.15); }
.gs-page .btn-primary:hover { transform: translateY(-2px); box-shadow: 0 8px 28px rgba(0,0,0,0.2); }
.gs-page .btn-outline { display: inline-flex; align-items: center; border: 2px solid rgba(255,255,255,0.6); color: #fff; padding: 13px 24px; border-radius: 12px; font-weight: 600; font-size: 0.95rem; text-decoration: none; transition: background 0.15s; }
.gs-page .btn-outline:hover { background: rgba(255,255,255,0.12); }
.gs-page .hero-platforms { margin-top: 40px; font-size: 0.8rem; opacity: 0.7; }
.gs-page .section { padding: 88px 24px; }
.gs-page .section-inner { max-width: 1100px; margin: 0 auto; }
.gs-page .section-label { display: inline-block; background: var(–teal-light); color: var(–teal); font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; padding: 4px 12px; border-radius: 100px; margin-bottom: 12px; }
.gs-page .section h2 { font-size: clamp(1.7rem, 3vw, 2.4rem); font-weight: 800; letter-spacing: -0.5px; max-width: 640px; margin-bottom: 16px; color: var(–text); }
.gs-page .section-desc { color: var(–muted); font-size: 1.05rem; max-width: 600px; margin-bottom: 56px; }
.gs-page .how-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
@media (max-width: 700px) { .gs-page .how-grid { grid-template-columns: 1fr; } }
.gs-page .how-card { background: var(–card-bg); border: 1px solid var(–border); border-radius: 20px; padding: 36px; }
.gs-page .how-card h3 { font-size: 1.1rem; font-weight: 700; margin-bottom: 24px; display: flex; align-items: center; gap: 10px; color: var(–text); }
.gs-page .role-tag { font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; padding: 3px 10px; border-radius: 100px; }
.gs-page .tag-poster { background: #DBEAFE; color: #1D4ED8; }
.gs-page .tag-worker { background: var(–teal-light); color: var(–teal); }
.gs-page .how-steps { list-style: none; display: flex; flex-direction: column; gap: 18px; }
.gs-page .how-steps li { display: flex; gap: 14px; align-items: flex-start; }
.gs-page .step-num { min-width: 28px; height: 28px; background: var(–teal); color: #fff; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 0.8rem; font-weight: 700; flex-shrink: 0; }
.gs-page .step-text strong { display: block; font-size: 0.95rem; color: var(–text); }
.gs-page .step-text span { font-size: 0.85rem; color: var(–muted); }
.gs-page .features-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 24px; }
.gs-page .feature-card { background: var(–card-bg); border: 1px solid var(–border); border-radius: 18px; padding: 28px; transition: box-shadow 0.2s, transform 0.2s; }
.gs-page .feature-card:hover { box-shadow: 0 8px 32px rgba(55,133,125,0.12); transform: translateY(-3px); }
.gs-page .feature-icon { width: 48px; height: 48px; background: var(–teal-light); border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 1.4rem; margin-bottom: 16px; }
.gs-page .feature-card h3 { font-size: 1rem; font-weight: 700; margin-bottom: 8px; color: var(–text); }
.gs-page .feature-card p { font-size: 0.875rem; color: var(–muted); line-height: 1.6; }
.gs-page .categories-bg { background: var(–bg); }
.gs-page .categories-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 16px; }
.gs-page .cat-pill { background: var(–white); border: 1px solid var(–border); border-radius: 12px; padding: 14px 18px; display: flex; align-items: center; gap: 10px; font-size: 0.9rem; font-weight: 600; color: var(–text); }
.gs-page .data-table { width: 100%; border-collapse: collapse; font-size: 0.9rem; }
.gs-page .data-table th { text-align: left; padding: 12px 16px; background: var(–teal-light); color: var(–teal); font-weight: 700; font-size: 0.8rem; text-transform: uppercase; letter-spacing: 0.5px; }
.gs-page .data-table td { padding: 14px 16px; border-bottom: 1px solid var(–border); color: var(–muted); }
.gs-page .data-table td:first-child { font-weight: 600; color: var(–text); white-space: nowrap; }
.gs-page .privacy-box { background: linear-gradient(135deg, var(–teal-light), #E0F2ED); border: 1px solid var(–border); border-radius: 20px; padding: 40px; display: flex; gap: 24px; align-items: flex-start; margin-top: 48px; }
.gs-page .privacy-icon { font-size: 2rem; flex-shrink: 0; }
.gs-page .privacy-box h3 { font-size: 1.1rem; font-weight: 700; margin-bottom: 8px; color: var(–text); }
.gs-page .privacy-box p { color: var(–muted); font-size: 0.9rem; }
.gs-page .privacy-box a { display: inline-block; margin-top: 14px; background: var(–teal); color: #fff; padding: 10px 20px; border-radius: 8px; font-weight: 600; font-size: 0.9rem; text-decoration: none; }
.gs-page .download-section { background: linear-gradient(135deg, var(–teal) 0%, #2d706a 100%); color: #fff; text-align: center; padding: 88px 24px; }
.gs-page .download-section h2 { font-size: clamp(1.8rem, 3.5vw, 2.6rem); font-weight: 800; margin-bottom: 16px; color: #fff; }
.gs-page .download-section p { opacity: 0.9; font-size: 1.05rem; margin-bottom: 36px; }
.gs-page .store-badges { display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; }
.gs-page .store-badge { display: inline-flex; align-items: center; gap: 10px; background: rgba(255,255,255,0.15); border: 1.5px solid rgba(255,255,255,0.35); border-radius: 12px; padding: 14px 24px; font-size: 0.95rem; font-weight: 600; text-decoration: none; color: #fff; }
.gs-page .store-badge svg { width: 22px; height: 22px; fill: currentColor; }
.gs-page .gs-footer { background: #0F1A19; color: rgba(255,255,255,0.65); padding: 56px 24px 32px; }
.gs-page .footer-inner { max-width: 1100px; margin: 0 auto; }
.gs-page .footer-top { display: flex; justify-content: space-between; gap: 40px; flex-wrap: wrap; margin-bottom: 40px; }
.gs-page .footer-brand { max-width: 280px; }
.gs-page .footer-brand-name { color: #fff; font-weight: 700; font-size: 1.1rem; margin-bottom: 12px; }
.gs-page .footer-brand p { font-size: 0.875rem; line-height: 1.7; color: rgba(255,255,255,0.65); }
.gs-page .footer-col h4 { color: #fff; font-size: 0.85rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.8px; margin-bottom: 16px; }
.gs-page .footer-col ul { list-style: none; display: flex; flex-direction: column; gap: 10px; }
.gs-page .footer-col a { text-decoration: none; color: rgba(255,255,255,0.6); font-size: 0.875rem; }
.gs-page .footer-bottom { border-top: 1px solid rgba(255,255,255,0.1); padding-top: 28px; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px; font-size: 0.8rem; color: rgba(255,255,255,0.65); }
.gs-page .footer-bottom a { color: rgba(255,255,255,0.5); text-decoration: none; }
@media (max-width: 600px) { .gs-page .hero-cta { flex-direction: column; align-items: center; } .gs-page .privacy-box { flex-direction: column; } .gs-page .footer-top { flex-direction: column; } }
@media (max-width: 800px) { .gs-page .nav-links { display: none; } }
iOS App — Available Now
Work Made Simple.
Connections Made Easy.
GoodShift is the on-demand gig marketplace for Egypt. Post a shift and get it filled — or find flexible work in your city — all in one app.
📱 iOS 17+ · iPhone & iPad
How It Works
One app. Two roles. Zero middlemen.
Whether you’re a business that needs reliable shift workers or a skilled individual looking for flexible income — GoodShift connects you directly.
Job Poster I need workers
1
Post a shiftFill in the job title, category, pay rate, location, schedule, and any requirements using our guided 6-step wizard.
2
Review applicantsReceive real-time applications. See each applicant’s profile, ratings, reviews, and completion rate before deciding.
3
Accept & chatAccept the best fit and coordinate directly via in-app messaging. No phone numbers shared unless you choose to.
4
Confirm & reviewMark the shift complete, confirm payment via the digital wallet, and leave a two-way review.
Service Provider I want to earn
1
Browse available shiftsDiscover jobs across 25+ categories filtered by location, pay, category, and date — no recruitment agency needed.
2
Apply in secondsSend an optional cover message or counter-offer price. Your profile and reputation speak for you.
3
Chat & confirmOnce accepted, chat with the job poster to confirm shift details. Get reminders before your shift starts.
4
Get paid & build reputationRequest completion once the work is done. Earnings go to your in-app wallet. Build your rating with every completed shift.
Core Features
Everything you need to hire or earn
GoodShift is a complete two-sided platform — not just a job board.
🔄
Dual-Role Account
One account, two modes. Switch seamlessly between posting jobs and offering services without creating separate accounts.
💬
Real-Time Messaging
Firestore-powered in-app chat between job posters and workers. Conversations update instantly — no refresh needed.
🔔
Push Notifications
14+ notification types covering new applications, messages, shift reminders, completion requests, and payment updates.
💳
Digital Wallet
In-app wallet tracks earnings, top-ups, withdrawals, and platform fees in real time. Supports card, Instapay, Fawry, and mobile wallets.
⭐
Ratings & Reviews
Two-way 5-star reviews after every completed shift. Providers build verified reputations that are visible to all posters.
🛡️
Identity Verification
Optional KYC verification for workers adds a trust badge to your profile. Verification data is never shared publicly.
📋
Smart Application System
Workers can include cover messages and propose a counter-offer price. Posters see full applicant profiles before choosing.
🌐
Arabic & English
Full localization in English and Arabic with native right-to-left layout support for Arabic users.
✅
Completion & Dispute Flow
Workers submit a completion request with notes and photos. Posters confirm or dispute — keeping both sides protected.
25+ Categories
Shifts across every industry
GoodShift covers the gig roles that keep Egypt’s businesses running — from cafes to warehouses to events.
☕ Food & Beverage
🛍️ Retail & Malls
📦 Logistics & Warehousing
🧹 Cleaning & Maintenance
⛽ Petrol & Automotive
🔒 Security & Crowds
🎉 Hospitality & Events
📦 Moving & Labour
🌿 Community & Outdoor
Your Data
Transparent about what we collect and why
GoodShift, operated by Nethrope, only collects data that is necessary to run the marketplace safely and fairly.
| Data Type | What We Collect | Why We Need It |
|---|
| Identity | Full name, national ID (NID), face selfie | Identity verification (KYC) to prevent fraud and protect all users. |
| Contact | Email address, mobile phone number | Account authentication, shift notifications, and customer support. |
| Profile photo | A photo you choose to upload | Displayed on your public profile so posters and workers can identify each other. |
| Location | Approximate location while the app is in use | To show you nearby jobs or workers. Only accessed while the app is open. |
| Wallet & payments | Transaction records within the GoodShift wallet | Tracking earnings, withdrawals, top-ups, and platform fees. |
| Usage data | App interactions, screens visited, feature usage | Product analytics (via Amplitude) to understand how the app is used. |
| Device | Device model, OS version, push token (FCM) | Delivering push notifications reliably across your devices. |
🔏
We do not sell your data.
Your personal data is never sold to third parties. It is shared only with Google Firebase (our infrastructure provider, under a formal data processing agreement) and with legal authorities if required by Egyptian law. Your national ID and face selfie are collected solely for identity verification — they are never shown publicly and are permanently deleted within 30 days if you close your account.
Read Full Privacy Policy →
Ready to get started?
Download GoodShift for free on the App Store. Available for iPhone and iPad running iOS 17 or later.
iOS 17+ required · Free to download