ANTE

ONLINE

Play Solo. Play Pig. Win Big.

Role: Lead Developer & Founder Timeline: Dec 2025 – Feb 2026 Stack: FastAPI, PostgreSQL, TypeScript, Vue.js

Overview

ANTE is a high-performance gambling platform. By using a dual-currency sweepstakes model, I developed a system where users can engage in casino-style gaming through a compliant promotional framework, separating social play from real-prize opportunities.

As the founder and lead developer, I was responsible for the end-to-end execution of the platform. This involved designing a high-throughput backend capable of managing real-time transactions, ensuring strict data integrity for user wallets, and creating a mobile-first interface that prioritizes speed and engagement.

ANTE Main Dashboard Overview

Real-Time Multiplayer

To mimic the "live" feel of a physical casino, ANTE uses WebSockets to support real-time multi-user sessions with instant outcome broadcasting.

This approach significantly reduced server overhead and provided a 200ms+ improvement in perceived latency compared to traditional RESTful updates.

Multiplayer Lobby View
In-Game Action View

Dual-Currency Logic

I designed the Wallet table with distinct columns for Gold Coins (GC) and Sweeps Coins (SC). Implementing SQL CheckConstraints at the database level ensures balances can never drop below zero.

ANTE uses a toggle system for switching between Gold Coin social play and Sweeps Coin promotional play with backend validation.

Currency Mode Switching Interface

Cosmetic Shop

Beyond just the games, ANTE has a marketplace for digital assets. I developed an inventory system to track and display user-owned cosmetics, integrated directly into the Vue.js frontend.

This allows users to customize the feel of their games, how they appear to other players, and earn special cosmetics after completing challenges.

Cosmetic Marketplace
Player Inventory Management

Technical Deep Dive

Implementing the CurrencyMode table allowed me to manage user state globally across the platform. This enables a seamless transition between social play (GC) and promotional play (SC) while maintaining a server-side "source of truth" for which currency is active, preventing accidental bets in the wrong currency mode during high-speed gameplay.

class Wallet(Base):
    __tablename__ = "wallets"
    user_id = Column(String(36), ForeignKey("users.user_id", ondelete="CASCADE"), primary_key=True)
    gc_balance = Column(DECIMAL(14, 2), default=0.00)
    sc_unplayed = Column(DECIMAL(12, 2), default=0.00)
    sc_redeemable = Column(DECIMAL(12, 2), default=0.00)

    __table_args__ = (
        CheckConstraint("gc_balance >= 0", name="chk_gc_positive"),
        CheckConstraint("sc_unplayed >= 0", name="chk_sc_unplayed_positive"),
        CheckConstraint("sc_redeemable >= 0", name="chk_sc_redeemable_positive"),
    )