pezkuwichain 54c94c7558 fix(ai): prioritize Groq's most stable model, stop repeating mining disclaimer (#9)
User decision after the Groq reliability fix (previous PR): prioritize
Groq's smallest/fastest model, llama-3.1-8b-instant, over gpt-oss-120b —
it's long out of preview and has historically the best free-tier
availability, at the cost of gpt-oss-120b's better Turkish/Kurdish
fluency (which is why it was chosen originally). Model order is now
llama-3.1-8b-instant -> gpt-oss-120b -> llama-3.3-70b-versatile before
the (currently uncredited) Anthropic fallback.

Also fixed a real UX complaint: asking about the Mining Simulation made
the model repeat "this isn't real mining / it's just an estimate" in
nearly every paragraph. Added an explicit instruction to state that once,
briefly, near the start of the answer, and not repeat it — verified live,
the disclaimer now appears once per response instead of several times.
2026-07-21 07:52:59 -07:00

Pezkuwi Telegram Mini App

Telegram Mini App for Pezkuwichain - Forum, Announcements, Rewards, and Wallet integration.

Tech Stack

  • Frontend: React 18 + TypeScript + Vite
  • Styling: Tailwind CSS + shadcn/ui patterns
  • State: TanStack Query (React Query)
  • Backend: Supabase (PostgreSQL + Auth + Edge Functions)
  • Testing: Vitest + Testing Library
  • CI/CD: GitHub Actions

Getting Started

Prerequisites

  • Node.js >= 18
  • npm >= 9
  • Supabase account

Installation

# Clone the repo
git clone https://github.com/pezkuwichain/pezkuwi-telegram-miniapp.git
cd pezkuwi-telegram-miniapp

# Install dependencies
npm install

# Copy environment template
cp .env.example .env

# Add your Supabase credentials to .env

Development

# Start dev server
npm run dev

# Run tests
npm run test

# Type check
npm run typecheck

# Lint
npm run lint

# Format code
npm run format

# Full validation (typecheck + lint + test + build)
npm run validate

Build

npm run build

Output will be in dist/ directory.

Project Structure

src/
├── contexts/       # React contexts (Auth)
├── hooks/          # Custom hooks (Supabase, Telegram)
├── lib/            # Utilities (env, supabase client)
├── sections/       # Main app sections
│   ├── Announcements.tsx
│   ├── Forum.tsx
│   ├── Rewards.tsx
│   └── Wallet.tsx
├── test/           # Test setup
├── types/          # TypeScript types
├── App.tsx         # Main app component
└── main.tsx        # Entry point

Database Schema

Tables (prefixed with tg_ to avoid conflicts):

  • tg_users - Telegram users
  • tg_announcements - Admin announcements
  • tg_announcement_reactions - Like/dislike reactions
  • tg_threads - Forum threads
  • tg_thread_likes - Thread likes
  • tg_replies - Thread replies
  • tg_reply_likes - Reply likes

Environment Variables

Variable Description
VITE_SUPABASE_URL Supabase project URL
VITE_SUPABASE_ANON_KEY Supabase anon/public key

Telegram Setup

  1. Create bot via @BotFather
  2. Enable Mini App in bot settings
  3. Set Mini App URL to deployment URL
  4. Deploy telegram-auth Edge Function to Supabase

License

MIT

S
Description
No description provided
Readme MIT 8.4 MiB
Languages
TypeScript 92.4%
PLpgSQL 2.5%
JavaScript 2.2%
Python 2.2%
HTML 0.4%
Other 0.2%