KPSS Sayaç is a production Next.js application aimed at millions of candidates preparing for Turkey’s public sector and academic placement exams. The product surfaces multiple independent countdown clocks (KPSS undergraduate, associate, high school levels, plus AGS) on a single dashboard so users can see exactly how much time remains until each official session, aligned with Istanbul (Europe/Istanbul) local time for consistent, predictable updates.
Beyond a simple timer, the site bundles practical study tools and trust-oriented copy: a GY/GK net calculator with transparent disclaimers that results are indicative only, and deep information architecture (dedicated routes, internal linking, sitemap, and robots.txt driven by NEXT_PUBLIC_SITE_URL) so pages like “KPSS kaç gün kaldı” remain discoverable and maintainable as exam calendars change.
The project ships as a single codebase on the App Router, with environment-driven configuration for live domain, contact email on legal pages, and optional Google AdSense slots—when keys are absent, the UI degrades to clear placeholders instead of broken embeds. That keeps local development friction low while staying deployment-ready for kpsssayac.com.
Key Features
- Multi-exam live countdown dashboard — parallel cards for KPSS (lisans, ön lisans, ortaöğretim) and AGS with month/day/hour/minute/second breakdowns
- Timezone-correct countdown — remaining time derived from Istanbul offset; copy explains users should still verify final clock with ÖSYM bulletins
- Net calculation workspace — separate inputs for Genel Yetenek and Genel Kültür (correct/wrong), combined net, and an illustrative score estimate with strong “not official placement” messaging
- Content and navigation depth — hub pages for topics, net tool, and “days left” style summaries to support both users and search intent
- Legal and transparency pages — privacy, cookie, and terms routes suitable for AdSense and Turkish regulatory expectations
- SEO plumbing — sitemap and robots wired to canonical site URL; structured internal links and footer site map line for crawl paths
- Ad-ready layout — configurable AdSense client and per-surface slots (home, article, tool) with safe fallbacks when unset
- Performance-minded static generation — content-heavy pages benefit from Next’s static rendering patterns where applicable; client timers handle sub-minute refresh
- Repository hygiene —
AGENTS.md/ contributor guidance, ESLint config,.env.exampledocumenting all public env keys
What I Worked On
- Defined exam target datetimes and presentation rules so each card stays accurate relative to Turkey local time
- Implemented client-side countdown updates without drifting UX (clear labels, target datetime display, ÖSYM reminder callouts)
- Built the net calculator UX: validation-friendly inputs, per-section nets, totals, and copy that sets expectations vs ÖSYM results
- Designed navigation, footers, and cross-links so informational pages, tools, and the main dashboard reinforce each other
- Integrated environment-based SEO (
NEXT_PUBLIC_SITE_URL) forrobots.txtandsitemap.xmlin production - Added AdSense integration surface with multiple slot IDs and graceful empty states for development
- Authored Turkish-first UI strings and compliance-oriented pages (privacy, cookies, terms)
- Set up CI-friendly scripts (
lint,build) and documented runbooks inREADME.mdfor contributors and future me - Deployed and operated the live domain kpsssayac.com with ongoing calendar updates as ÖSYM publishes new years
Technologies Used
Application
- Next.js (App Router)
- React
- TypeScript
Styling & UI
- Tailwind CSS
- Responsive layouts tuned for mobile-first exam traffic
Content & MDX (where applicable)
- MDX-capable stack patterns for long-form guides (per repository structure)
SEO & Web
sitemap.xml/robots.txtgeneration tied to public env configuration- Semantic headings and internal linking patterns for discoverability
Analytics & Monetization
- Google AdSense placeholders and slot wiring via
NEXT_PUBLIC_ADSENSE_*variables
Tooling
- ESLint
- npm-based workflow (
lint,build,dev,start) - GitHub for source control (VolkanTasbent/Kpss_Sayac)
Deployment
- Vercel-style Node 20+ hosting (as documented in the upstream repository README)