Synaplan
Open-source AI platform for companies: self-hosted AI agents, GDPR-compliant chatbot widget, RAG knowledge base, WhatsApp and Outlook AI, MCP, multi-model routing. Docker, Kubernetes or hosted in Germ
People Success — Grevya's employee experience portal for HR, leave, attendance, payroll and performance.
BusinessGitHub @Grevya-DevelopmentOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Grevya's employee portal — HRIS, Performance, Exit, Leave, Attendance, Payroll, Reimbursement, Learning, Recruit, Directory, HR Helpdesk, Declarations and an HR Admin console.
Stack: Next.js 16 (App Router) · React 19 · Tailwind CSS v4 · Supabase (Postgres, Auth, Storage, Row Level Security).
Requirements: Node 20+, Docker (OrbStack / Docker Desktop).
npm install
npm run db:start # local Supabase on ports 554xx (Studio: http://127.0.0.1:55423)
npm run seed # demo organisation (add -- --reset to wipe & reseed)
npm run dev # http://localhost:3100
Demo logins (password Grevya@123): [email protected] (HR admin), [email protected] (manager), [email protected] (employee). Every seeded employee can sign in with <firstname>@grevya.com.
npx supabase login
npx supabase link --project-ref <your-project-ref>
npx supabase db push # applies supabase/migrations/*
.env.local (see .env.example):
NEXT_PUBLIC_SUPABASE_URL=https://<ref>.supabase.co
NEXT_PUBLIC_SUPABASE_ANON_KEY=<anon / publishable key>
SUPABASE_SERVICE_ROLE_KEY=<service role key> # server only
npm run seed) or just reference data + your first HR admin:
[email protected] ADMIN_PASSWORD='choose-one' ADMIN_NAME='Your Name' npm run seed -- --minimal
<your-url>/auth/callback to redirect URLs (used by password reset)..env.local already points at the hosted project oxhhwasktpgxwccwbypa (region ap-southeast-2) and includes SUPABASE_DB_URL, so:
npm run dev # app on http://localhost:3100 using the hosted DB
set -a; . ./.env.local; set +a
npm run db:push # apply any new migrations to the hosted DB
npm run smoke -- [email protected] # request every page as a role (dev server must be running)
The purple Gia button (bottom-right) answers HR questions: leave balance, holidays, payslips, attendance, pending requests, policies and FAQs, and where to find any page. It only reads data the signed-in person is already allowed to see.
ANTHROPIC_API_KEY to .env.local (and your host's environment) to switch on AI answers powered by Claude (claude-opus-5-5 by default; override with ASSISTANT_MODEL). Each question costs a small amount of API usage.Security is enforced in the database (Row Level Security + triggers), not just the UI:
role = 'hr_admin') see and manage everything.HR adds people in HR Admin → Employees and can create their login there. Anyone who signs up with an email that matches an employee record is linked automatically.
supabase/migrations/ schema, RLS policies, workflow triggers
scripts/seed.mts demo / minimal seed
src/proxy.ts session refresh + auth redirect
src/lib/ supabase clients, auth helpers, nav map, utils
src/components/ui/ UI kit
src/components/shell/ header, sidebar flyouts, search, notifications
src/app/(portal)/<module> one folder per module (pages, actions.ts, _components)
docs/CONVENTIONS.md coding conventions