Where the African OSS generation shows what they can build.
🇬🇧 English (this page) · 🇫🇷 Version française
Skilluv is a community platform training talents in code, design, security, and game development through real contributions to real open source projects. Every completed challenge produces a verifiable artifact that lives on the contributor's public portfolio and is exportable to recruiters.
Talents never pay for access. Companies do, because they benefit when African contributors become excellent.
Learn more in the backend repository which hosts the full product vision.
This is the web application used by talents (and companies) to interact with Skilluv. Built with SvelteKit 2, Svelte 5, Tailwind CSS 4, TypeScript, and Vite.
It covers a large surface of the product already:
- Talent journey — onboarding with career orientations picker, profile with badges wall (rank chevron, skill patches, medals, guild crests, event stamps), challenge discovery and submission, sandbox editor (Monaco), certifications, diplomas, mentorship, opportunities board, real-time leaderboards with season indicator, wallet with Stripe Connect and Mobile Money payouts
- Community surfaces — feed, forum with inline moderation for
forum_moderator, guilds, direct messages, notifications, mentor listings, tournaments, bounties, team marketplace (join open role slots), Skilluv events (join and earn stamps) - Enterprise surfaces — dedicated landing (
for-companies), pricing, subscription management, talent search, sponsored challenges, enterprise-type wizard (direct hire / staffing agency / remote international) with agency-clients CRUD and EOR configuration - Moderation surfaces — capability-gated inline forum moderation, community curator queue (
community_curator), plagiarism reviewer queue (plagiarism_reviewer) - Privacy and compliance — GDPR export, product data export, consent management (marketing / analytics), account deletion with 30-day soft-delete window
- Public and legal surfaces — landing pages, developer/API section, legal pages
- Theming and i18n — dark/light modes, two languages bundled (French, English)
- PWA — service worker, install prompt, Web Push (VAPID) with foreground-notification in-app toast forwarding
See FEATURE-MATRIX.md for a per-phase breakdown mapping backend phases (P4→P25) to frontend implementation status.
skilluv-backend— Rust + Axum API (auth, data, business logic)skilluv-admin— SvelteKit admin panel for platform operatorsskilluv-ia— Python AI microservice
Prerequisites: Node.js 22+, npm 10+, and a running Skilluv backend on port 3001.
git clone https://github.com/skilluv/skilluv-frontend.git
cd skilluv-frontend
npm install
cp .env.example .env
# edit .env to point PUBLIC_API_URL at your backend
npm run devThe app opens on http://localhost:5173.
Detailed instructions (routing, themes, i18n, testing, deployment) are in README.fr.md — English translation in progress.
Run a standalone containerized frontend against a local backend:
docker compose -f docker-compose.frontend.yml up --buildThe service exposes port 3000 and reaches the backend at ${API_URL} (default http://host.docker.internal:3001/api). All observability keys (PUBLIC_SENTRY_DSN, PUBLIC_POSTHOG_KEY) are optional environment variables — the app runs cleanly without them (no-op mode).
npm run check # svelte-check + tsc
npm run test:unit # Vitest unit + logic tests
npm run test # Playwright end-to-end
npm run i18n:check # FR/EN/AR key parity + orphan-key huntCI runs all four on every push to main. See .github/workflows/ci.yml.
| Layer | Technology |
|---|---|
| Framework | SvelteKit 2.55 |
| UI runtime | Svelte 5.54 (runes) |
| Language | TypeScript 5.9 |
| CSS | Tailwind CSS 4.2 |
| Code editor | Monaco Editor 0.55 |
| Build | Vite 8 |
| Unit tests | Vitest 4.1 |
| E2E tests | Playwright 1.58 |
| Runtime | Node.js 22 (Alpine) |
| Typography | Fraunces (display), Bricolage Grotesque (UI), JetBrains Mono (mono) |
| Observability | Sentry (errors, opt-in) + PostHog (analytics, opt-in) |
We welcome contributors — Svelte devs, designers, UX writers, translators, accessibility experts, community builders. See CONTRIBUTING.md for the workflow and CODE_OF_CONDUCT.md for community rules.
AI-assisted contributions are welcome. Please disclose the assistance level in your pull request description.
For security disclosures, see SECURITY.md. Do not open public issues for vulnerabilities.
Community channels are being set up. Follow the maintainer on GitHub for launch announcements.
Distributed under the GNU Affero General Public License v3.0 (AGPL-3.0).
Skilluv is built solo by Jeremie Zitti, a Beninese engineer. Public launch: January 2027. Private beta: autumn 2026.