KESHO Prediction App

  • Scope of Work

    Full Stack Development

  • Timeline

    12weeks

  • Year

    2026

Introduction

Product Design, Full Stack Dev:
Human- AI Collaboration

Product Design, Full Stack Dev:
Human- AI Collaboration

Project Summary

Project Summary

Everyone has opinions about what comes next. Fans predict who wins, traders predict what market crashes, and doctors what virus spreads. Yet many claim certainty after the fact.

KESHO is a sealed foresight platform that lets you make predictions before an event starts. All predictions are locked at submission, timestamped, and verifiable.

For events such as the World Cup, your prediction is locked at kickoff. After the result, your prediction card reveals the total points and XP earned per prediction.

Foresight is part of human nature. Yet, all prediction platforms quickly turn foresight into gambling. KESHO is built for the majority of people who predict just to be right.

Everyone has opinions about what comes next. Fans predict who wins, traders predict what market crashes, and doctors what virus spreads. Yet many claim certainty after the fact.

KESHO is a sealed foresight platform that lets you make predictions before an event starts. All predictions are locked at submission, timestamped, and verifiable.

For events such as the World Cup, your prediction is locked at kickoff. After the result, your prediction card reveals the total points and XP earned per prediction.

Foresight is part of human nature. Yet, all prediction platforms quickly turn foresight into gambling. KESHO is built for the majority of people who predict just to be right.

View Web App

Design

Product specification

Information architecture

Wireframing

User interface and user interaction

Development

Product architecture

Database design.

API integration & algorithm design

Performance and cost

Deployment

Domain configuration

GitHub actions to Vercel deployment

Clerk user authentication

Resend email notification

Roles

Roles & Responsibilities

My Roles

My Roles

Role
Role

Full stack developer

Full stack developer

Tasks
Tasks

Conducted product research and ideation

Defined scope and prioritized features

Designed and refined UI and UX

Developed points and scoring algorithm

Conducted product research and ideation

Defined scope and prioritized features

Designed and refined UI and UX

Developed points and scoring algorithm

Tools
Tools

Figma + MCP + Make

Github

Vercel

Resend

Figma + MCP + Make

Github

Vercel

Resend

AI- Assisted

AI- Assisted

Senior full-stack developer

Senior full-stack developer

Set up project and environment

Built core logic and interactions

Developed UI and debugged issues

Integrated APIs and normalized data

Set up project and environment

Built core logic and interactions

Developed UI and debugged issues

Integrated APIs and normalized data

PowerShell

Neon Postgres + Drizzle

Clerk Auth and Resend

3+ API integrations

PowerShell

Neon Postgres + Drizzle

Clerk Auth and Resend

3+ API integrations

Research

Research

Problem

Problem

Every day, people forecast outcomes in sports, culture, politics, and personal life.

However, almost every existing platform turns prediction into gambling, excluding the majority who just want to be right.

Every day, people forecast outcomes in sports, culture, politics, and personal life.

However, almost every existing platform turns prediction into gambling, excluding the majority who just want to be right.

User Behavior Research

User Behavior Research

Gambling is not a universal behavior

Gambling is not a universal behavior

Most Americans engage in some form of prediction, from brackets, to fantasy leagues, group chats, and casual bets with friends.

Yet, only about 1 in 5 adults actively use online sports betting platforms (Pew Research). The majority of prediction activity already happens outside financial systems.

March Madness alone attracted an estimated 56 million Americans filling out brackets in 2023 (AGA).

Most Americans engage in some form of prediction, from brackets, to fantasy leagues, group chats, and casual bets with friends.

Yet, only about 1 in 5 adults actively use online sports betting platforms (Pew Research). The majority of prediction activity already happens outside financial systems.

March Madness alone attracted an estimated 56 million Americans filling out brackets in 2023 (AGA).

Market Research

Market Research

Dedicated prediction markets like Kalshi and Polymarket, while growing rapidly, still reach fewer than 1% of the US adult population who are primarily motivated by financial gain (Fortune).

Dedicated prediction markets like Kalshi and Polymarket, while growing rapidly, still reach fewer than 1% of the US adult population who are primarily motivated by financial gain (Fortune).

Findings

Findings

People Want to Seal Predictions. No money involved!

People Want to Seal Predictions. No money involved!

Prediction behavior exists but largely without monetary incentives.

Prediction markets have limited market adoption. Non-monetary systems are massive but unstructured and temporary.

Therefore, an opportunity exists to create dedicated prediction infrastructure outside of gambling. The timing coincides with upcoming major events such as the World Cup.

Prediction behavior exists but largely without monetary incentives.

Prediction markets have limited market adoption. Non-monetary systems are massive but unstructured and temporary.

Therefore, an opportunity exists to create dedicated prediction infrastructure outside of gambling. The timing coincides with upcoming major events such as the World Cup.

Design

Design

Product Specification

Product Specification

KESHO is a sealed foresight platform for live events. Users submit timestamped predictions locked at kickoff and revealed with points after results across sports, entertainment, and other major events.

The minimum lovable product launches on May 15, with the 2026 World Cup as the main foresight category.

KESHO is a sealed foresight platform for live events. Users submit timestamped predictions locked at kickoff and revealed with points after results across sports, entertainment, and other major events.

The minimum lovable product launches on May 15, with the 2026 World Cup as the main foresight category.

Information Architecture

Information Architecture

KESHO has four main pages.

Home surfaces live matches and friends' predictions in a single feed.

The challenges page is where groups form, rivals compete, and squads advance through a promotions bracket.

Votes page collect community opinion about ongoing events.

The profile holds the user's personal foresight record over time.

KESHO has four main pages.

Home surfaces live matches and friends' predictions in a single feed.

The challenges page is where groups form, rivals compete, and squads advance through a promotions bracket.

Votes page collect community opinion about ongoing events.

The profile holds the user's personal foresight record over time.

UI/UX & Frontend Design

UI/UX & Frontend Design

I started in Figma to obtain the high level concept, then used Claude Design for the initial UI generation because it understood the full project scope.

I refined in Figma Make and Gemini Canvas. I used Figma Make because it understands design intuitively. I used Gemini Canvas for polish because it is great at design, and more token-efficient than Claude for design work.

I then brought the final designs back to Claude Code. I worked with Claude Code to develop a consistent design system because of its ability to understand, break down and organize complex code base.

I started in Figma to obtain the high level concept, then used Claude Design for the initial UI generation because it understood the full project scope.

I refined in Figma Make and Gemini Canvas. I used Figma Make because it understands design intuitively. I used Gemini Canvas for polish because it is great at design, and more token-efficient than Claude for design work.

I then brought the final designs back to Claude Code. I worked with Claude Code to develop a consistent design system because of its ability to understand, break down and organize complex code base.

 ---
  1. app/globals.css
  @import "tailwindcss";

  @theme {
    --color-bg: #000000;
    --color-surface: #1C1C1E;
    --color-surface-elevated: #2C2C2E;
    --color-accent: #0070E8;
    --color-accent-hover: #0A84FF;
    --color-border: rgba(255, 255, 255, 0.08);
    --color-border-strong: rgba(255, 255, 255, 0.20);
    --color-text: #FFFFFF;
    --color-text-muted: #8E8E93;
    --color-text-faint: rgba(255, 255, 255, 0.40);

    --font-sans: var(--font-dm-sans), sans-serif;
    --font-display: var(--font-bebas-neue), sans-serif;

    --radius-card: 12px;
    --radius-button: 10px;
    --radius-badge: 9999px;
  }
Development

Development

Product Architecture

Product Architecture

Technical Summary

Technical Summary

I designed a write once, server timestamped prediction system where entries are locked at kickoff and cannot be edited after submission

Each prediction includes outcome, and optionally a final score, text, and confidence level, transitioning through Sealed, Live, and Final states under a single persistent URL.

Scoring is handled through a dual pool model combining probability weighted foresight algorithm with real event outcomes.

I designed a write once, server timestamped prediction system where entries are locked at kickoff and cannot be edited after submission

Each prediction includes outcome, and optionally a final score, text, and confidence level, transitioning through Sealed, Live, and Final states under a single persistent URL.

Scoring is handled through a dual pool model combining probability weighted foresight algorithm with real event outcomes.

Tech Stack

Tech Stack

Framework: Next.js App Router with React 19 and TypeScript for server-first, scalable UI architecture.

Authentication: Clerk with server-side auth()

Database: Neon PostgreSQL with Drizzle ORM

Styling: Tailwind CSS for fast UI development.

Hosting: Vercel for global audience access at launch.

Email: Resend with React Email for onboarding and important communication.

Cron jobs: For locking and revealing results.

Framework: Next.js App Router with React 19 and TypeScript for server-first, scalable UI architecture.

Authentication: Clerk with server-side auth()

Database: Neon PostgreSQL with Drizzle ORM

Styling: Tailwind CSS for fast UI development.

Hosting: Vercel for global audience access at launch.

Email: Resend with React Email for onboarding and important communication.

Cron jobs: For locking and revealing results.

Data & Database Design

Data & Database Design

The system is built on a relational PostgreSQL schema designed around event-driven prediction flows, including users, events, predictions, groups, votes, and feed entities.

Each prediction is stored as an immutable write-once record linked to a single event via a unique constraint, ensuring one user one prediction per event.

Time-sensitive data is standardized using UTC, ensuring consistent behavior across global events and prediction locks.

The system is built on a relational PostgreSQL schema designed around event-driven prediction flows, including users, events, predictions, groups, votes, and feed entities.

Each prediction is stored as an immutable write-once record linked to a single event via a unique constraint, ensuring one user one prediction per event.

Time-sensitive data is standardized using UTC, ensuring consistent behavior across global events and prediction locks.

Algorithm Design

Algorithm Design

With no monetary incentive, I had to design and implement a unified point system that combines points and XP to reward both accuracy and participation.

The system determines group rankings based on total points, defines stake participation in rival matchups, and controls which groups advance through the promotions bracket to the next stage.

With no monetary incentive, I had to design and implement a unified point system that combines points and XP to reward both accuracy and participation.

The system determines group rankings based on total points, defines stake participation in rival matchups, and controls which groups advance through the promotions bracket to the next stage.

Deployment

Deployment

UTC to Local Time

UTC to Local Time

The Biggest Bug

The Biggest Bug

The main challenge was that both the external API and database operate in UTC, while users expect to view matches in their local time. Early on, this led to issues where matches were displaying on incorrect dates and times.

The main challenge was that both the external API and database operate in UTC, while users expect to view matches in their local time. Early on, this led to issues where matches were displaying on incorrect dates and times.

Debugging

Debugging

To support a global user base, I centralized all match scheduling in UTC, and handled time zone localization at the UI layer, allowing the system to scale globally while preventing inconsistencies across regions and devices.

To support a global user base, I centralized all match scheduling in UTC, and handled time zone localization at the UI layer, allowing the system to scale globally while preventing inconsistencies across regions and devices.

Internationalization

Internationalization

The Challenge

The Challenge

The World Cup is the most globally followed event, so designing for it required internationalization from the start.

The World Cup is the most globally followed event, so designing for it required internationalization from the start.

Solution

Solution

I implemented a low-cost localization system that translates up to 7 languages at a system level using a GitHub Actions workflow.

System strings are translated and updated at each deployment, avoiding runtime translation costs while allowing users to experience the app in their native language.

I implemented a low-cost localization system that translates up to 7 languages at a system level using a GitHub Actions workflow.

System strings are translated and updated at each deployment, avoiding runtime translation costs while allowing users to experience the app in their native language.

Launch

Launch Strategy

App Launch

App Launch

KESHO is deployed as a Progressive Web App with production-ready performance optimization.

The architecture is designed for web-first distribution, with planned rollout to mobile platforms via Android Trusted Web Activity and Apples web-to-native equivalent.

KESHO is deployed as a Progressive Web App with production-ready performance optimization.

The architecture is designed for web-first distribution, with planned rollout to mobile platforms via Android Trusted Web Activity and Apples web-to-native equivalent.

Communication

Communication

Waitlist

Waitlist

I built a referral-based waitlist system using unique invite links to drive pre-launch network formation and squad creation.

I built a referral-based waitlist system using unique invite links to drive pre-launch network formation and squad creation.

Email Notifications

Email Notifications

Email onboarding and crucial information will be shared to the user through email, made possible by Resend email.

Email onboarding and crucial information will be shared to the user through email, made possible by Resend email.

Timeline

Timeline

I structured development around the FIFA World Cup 2026 hard deadline. A beta launch is scheduled for May 15 to validate core systems and user flows.

A soft launch phase leads into the FIFA World Cup kickoff on June 11, when the full prediction, social, and engagement systems go live at scale.

I structured development around the FIFA World Cup 2026 hard deadline. A beta launch is scheduled for May 15 to validate core systems and user flows.

A soft launch phase leads into the FIFA World Cup kickoff on June 11, when the full prediction, social, and engagement systems go live at scale.

Next Steps

Next Steps

Performance optimization

Performance optimization

Caching

Caching

I will use Redis caching for match data and leaderboard queries, reducing repeated database reads during peak prediction windows around kickoff.

I will use Redis caching for match data and leaderboard queries, reducing repeated database reads during peak prediction windows around kickoff.

Security

Security

Data safety is a priority during software testing to identify any vulnerabilities before launch.

Data safety is a priority during software testing to identify any vulnerabilities before launch.

Loading testing

Loading testing

I have started and will keep stress testing the prediction sealing cron and group formations ahead of the June 11 World Cup kickoff, when concurrent submissions are expected to peak.

I have started and will keep stress testing the prediction sealing cron and group formations ahead of the June 11 World Cup kickoff, when concurrent submissions are expected to peak.

Service Image
Service Image
Service Image