nirholas
memescope-monday-directory
TypeScript

Memecoin Monday community directory.

Last updated Jul 4, 2026
13
Stars
0
Forks
0
Issues
+2
Stars/day
Attention Score
35
Language breakdown
TypeScript 98.6%
CSS 1.2%
JavaScript 0.2%
โ–ธ Files click to expand
README

Memescope Monday

The community directory for Memescope Monday.

Submit, discover, and upvote memecoins across Solana, Base, and BNB Chain. Every Monday at 10 AM UTC, the community rides together.

Live at: memescope.monday.directory


Features

Directory & Discovery

  • Browse memecoins with search, chain filters (Solana/Base/BNB), and sort (votes, trending, newest)
  • Existing coins and upcoming launches with launch countdown timers
  • Featured and trending sections on the homepage
  • Live countdown to the next Memescope Monday (10 AM UTC)

Community

  • Upvoting โ€” one vote per user per coin, most upvoted rise to the top
  • Per-coin trollbox chat โ€” real-time(ish) chat on every coin detail page
  • Watchlists โ€” save coins to your personal watchlist
  • User accounts โ€” email + password auth with session cookies

Market Data & Analysis

  • DexScreener chart embeds โ€” live charts on every existing coin
  • Live market data โ€” price, market cap, liquidity, volume, buy/sell ratio via DexScreener API
  • Safety Score (A-F) โ€” algorithmic risk assessment based on liquidity, trading activity, buy/sell ratio, social presence, pair age, community votes
  • Social Buzz Score โ€” hype level indicator (Dead โ†’ Low โ†’ Moderate โ†’ Hot โ†’ Viral)
  • News feed โ€” per-coin news with sentiment analysis (configurable via free-crypto-news API)

Submit & Monetize

  • Submit existing coins or upcoming launches
  • Auto-fill from contract address โ€” paste a contract address or PumpFun URL to auto-populate coin details
  • Paid features:
- Expedited Review ($19) โ€” approved within 1 hour - Trending Placement ($49) โ€” 24h in the trending section - Bundle ($59) โ€” both features

Tech Stack

  • Framework: Next.js 14 (App Router)
  • Database: SQLite via Turso (libsql) + Drizzle ORM
  • Styling: Tailwind CSS
  • Auth: Cookie-based sessions, bcrypt password hashing
  • APIs: DexScreener (market data), configurable crypto news API
  • Deployment: Vercel

Quick Start

Prerequisites

  • Node.js 18+
  • npm

Local Development

# Clone the repo
git clone https://github.com/nirholas/memescope-monday-directory.git
cd memescope-monday-directory

Install dependencies

npm install

Run dev server (uses local SQLite file)

npm run dev

The app runs at http://localhost:3000 with a local SQLite database that auto-seeds with sample data.

Environment Variables

Copy .env.example to .env.local:

cp .env.example .env.local

| Variable | Required | Description | |----------|----------|-------------| | TURSODATABASEURL | Production | Turso database URL (e.g., libsql://your-db.turso.io) | | TURSOAUTHTOKEN | Production | Turso auth token | | NOWPAYMENTSAPIKEY | No | NOWPayments API key โ€” crypto payments (200+ coins, no KYC) | | NOWPAYMENTSIPNSECRET | No | NOWPayments IPN secret โ€” verifies payment callbacks | | STRIPESECRETKEY | No | Stripe secret key โ€” card payments | | STRIPEWEBHOOKSECRET | No | Stripe webhook signing secret โ€” verifies payment callbacks | | NEXTPUBLICBASE_URL | No | Site URL (default: https://memescope.monday.directory) | | CRYPTONEWSAPIURL | No | free-crypto-news instance URL | | ADMIN_SECRET | No | Admin password for managing submissions |

Payment providers: Configure one or both. If both are set, users can choose between crypto and card. If neither is set, paid features run in demo mode (applied free).


Deploy to Vercel

1. Create a Turso Database

# Install Turso CLI
curl -sSfL https://get.tur.so/install.sh | bash

Sign up / login

turso auth signup

Create database

turso db create memescope-monday

Get the URL

turso db show memescope-monday --url

Create auth token

turso db tokens create memescope-monday

2. Deploy

# Install Vercel CLI
npm i -g vercel

Deploy

vercel

Set environment variables

vercel env add TURSODATABASEURL vercel env add TURSOAUTHTOKEN

Deploy to production

vercel --prod

Or connect the GitHub repo to Vercel and add the env vars in the Vercel dashboard.

One-Click Deploy

Deploy with Vercel


Project Structure

src/
โ”œโ”€โ”€ app/
โ”‚   โ”œโ”€โ”€ page.tsx                    # Homepage (countdown, featured, trending, upcoming)
โ”‚   โ”œโ”€โ”€ coins/
โ”‚   โ”‚   โ”œโ”€โ”€ page.tsx                # Browse directory (search, filter, sort)
โ”‚   โ”‚   โ””โ”€โ”€ [slug]/page.tsx         # Coin detail (chart, market data, scores, chat)
โ”‚   โ”œโ”€โ”€ submit/page.tsx             # Submit form (auto-fill, paid features)
โ”‚   โ”œโ”€โ”€ login/page.tsx              # Sign in
โ”‚   โ”œโ”€โ”€ register/page.tsx           # Create account
โ”‚   โ”œโ”€โ”€ profile/page.tsx            # User profile
โ”‚   โ”œโ”€โ”€ watchlist/page.tsx          # Saved coins
โ”‚   โ””โ”€โ”€ api/
โ”‚       โ”œโ”€โ”€ auth/                   # Register, login, logout, me
โ”‚       โ”œโ”€โ”€ coins/                  # List, upvote, chat
โ”‚       โ”œโ”€โ”€ watchlist/              # Add, remove, check
โ”‚       โ”œโ”€โ”€ submit/                 # Submit new coin
โ”‚       โ”œโ”€โ”€ checkout/               # Paid features
โ”‚       โ”œโ”€โ”€ news/                   # News proxy
โ”‚       โ””โ”€โ”€ token-data/             # DexScreener proxy
โ”œโ”€โ”€ components/
โ”‚   โ”œโ”€โ”€ Header.tsx                  # Nav with auth state
โ”‚   โ”œโ”€โ”€ Footer.tsx                  # Footer
โ”‚   โ”œโ”€โ”€ CoinCard.tsx                # Coin listing card with upvotes
โ”‚   โ”œโ”€โ”€ UpvoteButton.tsx            # Auth-gated voting
โ”‚   โ”œโ”€โ”€ WatchlistButton.tsx         # Save to watchlist
โ”‚   โ”œโ”€โ”€ ChartEmbed.tsx              # DexScreener iframe
โ”‚   โ”œโ”€โ”€ MarketData.tsx              # Live price/volume/liquidity
โ”‚   โ”œโ”€โ”€ SafetyScore.tsx             # A-F safety grade
โ”‚   โ”œโ”€โ”€ SocialBuzz.tsx              # Hype level indicator
โ”‚   โ”œโ”€โ”€ NewsFeed.tsx                # Per-coin news
โ”‚   โ”œโ”€โ”€ CoinChat.tsx                # Trollbox
โ”‚   โ”œโ”€โ”€ CountdownTimer.tsx          # Monday 10 AM UTC countdown
โ”‚   โ”œโ”€โ”€ LaunchCountdown.tsx         # Upcoming launch timer
โ”‚   โ”œโ”€โ”€ AutoFillAddress.tsx         # Contract address auto-fill
โ”‚   โ”œโ”€โ”€ PaidFeatures.tsx            # Expedited/trending purchase
โ”‚   โ”œโ”€โ”€ SubmitForm.tsx              # Full submit form
โ”‚   โ”œโ”€โ”€ SearchBar.tsx               # Search input
โ”‚   โ”œโ”€โ”€ ChainFilter.tsx             # Chain filter pills
โ”‚   โ”œโ”€โ”€ SortSelect.tsx              # Sort dropdown
โ”‚   โ”œโ”€โ”€ ChainBadge.tsx              # Chain label badge
โ”‚   โ””โ”€โ”€ AuthProvider.tsx            # Auth context
โ””โ”€โ”€ lib/
    โ”œโ”€โ”€ db/
    โ”‚   โ”œโ”€โ”€ schema.ts               # Drizzle schema (6 tables)
    โ”‚   โ”œโ”€โ”€ index.ts                # DB connection (Turso/local)
    โ”‚   โ””โ”€โ”€ seed.ts                 # Seed data
    โ”œโ”€โ”€ data.ts                     # All database queries
    โ”œโ”€โ”€ auth.ts                     # Auth (register, login, sessions)
    โ”œโ”€โ”€ types.ts                    # TypeScript types + constants
    โ”œโ”€โ”€ utils.ts                    # Utilities
    โ”œโ”€โ”€ dexscreener.ts              # DexScreener API client
    โ”œโ”€โ”€ news.ts                     # News feed service
    โ””โ”€โ”€ scoring.ts                  # Safety score + social buzz algorithms

Database Schema

| Table | Purpose | |-------|---------| | users | Email, username, bcrypt password hash | | sessions | Token-based auth, 30-day expiry | | coins | All listings with full metadata | | votes | One vote per user per coin | | watchlist | Per-user saved coins | | chat_messages | Per-coin trollbox messages |

12 indexes for search and filter performance.


API Routes

| Method | Route | Auth | Description | |--------|-------|------|-------------| | POST | /api/auth/register | No | Create account | | POST | /api/auth/login | No | Sign in | | POST | /api/auth/logout | Yes | Sign out | | GET | /api/auth/me | Yes | Get current user | | GET | /api/coins | No | List coins (filter by chain, search) | | POST | /api/coins/[slug]/upvote | Yes | Upvote a coin | | GET | /api/coins/[slug]/chat | No | Get chat messages | | POST | /api/coins/[slug]/chat | No | Send chat message (username used if logged in) | | POST | /api/submit | No | Submit a new coin | | GET | /api/checkout | No | List available payment providers | | POST | /api/checkout | No | Create checkout (NOWPayments / Stripe / demo) | | POST | /api/webhooks/nowpayments | No | NOWPayments IPN callback | | POST | /api/webhooks/stripe | No | Stripe webhook callback | | GET | /api/watchlist | Yes | Get user's watchlist | | POST | /api/watchlist | Yes | Add/remove from watchlist | | GET | /api/watchlist/check | Yes | Check if coin is in watchlist | | GET | /api/news?q= | No | Fetch coin news | | GET | /api/token-data?address= | No | Fetch market data from DexScreener |


Integrations

DexScreener

Live market data and chart embeds. No API key needed. Auto-maps chains:
  • Solana โ†’ solana
  • Base โ†’ base
  • BNB Chain โ†’ bsc

free-crypto-news

Optional news feed integration. Deploy your own instance from github.com/nirholas/free-crypto-news and set CRYPTO
NEWSAPIURL.

Payments

  • NOWPayments โ€” set NOWPAYMENTSAPIKEY + NOWPAYMENTSIPNSECRET for crypto payments (SOL, BTC, ETH, USDC, 200+ coins). No KYC. Webhook: /api/webhooks/nowpayments
  • Stripe โ€” set STRIPESECRETKEY + STRIPEWEBHOOKSECRET for card payments. Webhook: /api/webhooks/stripe
  • Both โ€” if both are configured, users choose between crypto and card at checkout
  • Neither โ€” paid features run in demo mode (applied immediately without payment)

Scripts

npm run dev       # Start dev server
npm run build     # Production build
npm run start     # Start production server
npm run lint      # Lint with Next.js ESLint

License

MIT

๐Ÿ”— More in this category

ยฉ 2026 GitRepoTrend ยท nirholas/memescope-monday-directory ยท Updated daily from GitHub