Skip to content

anilonayy/shiporskip

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

136 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GoShipOrSkip

Validate your app idea before writing a single line of code.

GoShipOrSkip scans thousands of real user reviews from Product Hunt, Google Play, App Store, Reddit, and Shopify — then delivers a data-backed Ship It, Proceed with Caution, or Skip It verdict.

No surveys. No guesswork. Just honest signals from people already using competing products.

GoShipOrSkip badge

Get Started Free · View Pricing


Why GoShipOrSkip?

Most founders spend months building before discovering nobody wants their product. GoShipOrSkip replaces guesswork with data — real complaints, real feature gaps, and real market signals extracted from thousands of user reviews across the competitive landscape.

Built for indie hackers, solo founders, and early-stage teams who'd rather spend 30 seconds validating than 6 months building the wrong thing.


What You Get

Every analysis returns a comprehensive report with 10 structured sections:

Section What It Tells You
Verdict & Score Ship It / Proceed with Caution / Skip It — with a viability score and reasoning
Repeating Complaints What users consistently hate, with frequency counts and actual quotes
Missing Features What users want but competitors haven't built, ranked by demand
Competitor Landscape Identified and ranked competitor apps with strengths/weaknesses
Market Strengths Positive signals and opportunities in the space
Opportunity Analysis Key risk vs. key opportunity breakdown
Timing Signals Market timing, traction trends, and window of opportunity
Financial Overview Pricing strategies, revenue models, and monetization signals
MVP Roadmap Prioritized feature list with suggested implementation timeline
Shareable Report Public link you can send to co-founders or investors

Plus PDF & JSON export, competitor discovery, and category detection.


Analysis Modes

GoShipOrSkip supports two analysis modes depending on your product type:

  • Mobile App Analysis — Scans Product Hunt, Google Play, App Store, and Reddit
  • Shopify App Analysis — Scans Shopify App Store and Reddit

How It Works

You describe your idea
        ↓
AI extracts keywords & detects category
        ↓
Reviews fetched in parallel from 5 sources (cache-first, 7-day TTL)
        ↓
LLM analyzes with automatic model fallback
        ↓
Guardrails validate output & filter hallucinated quotes
        ↓
Structured report delivered in ~30 seconds
Pipeline deep dive
  1. Validate & authorize — Zod checks the query (3–200 chars), session is verified, credits consumed in a transaction with advisory lock
  2. Extract keywords — LLM extracts 2–4 search keywords and detects the app category
  3. Fetch reviews — All scrapers run in parallel with cache-first strategy (7-day TTL, max 200 reviews per source)
  4. Filter competitors — LLM pass identifies and ranks only relevant competitors from review metadata
  5. Analyze — Reviews chunked (~16K chars) and sent to OpenRouter with automatic model fallback (Claude Sonnet 4 → Gemini 2.0 Flash → Llama 3.1 70B)
  6. Guardrails — Zod validates structured output; hallucination detection removes quotes not found in source reviews
  7. Retry — If validation fails, one retry fires with a stricter prompt
  8. Store — Result saved with timing metrics; failed analyses auto-refund credits

Pricing

Free Starter Pro
Price $0 $4.99 one-time $14.99/mo
Credits 3 20 200/mo
Cost per analysis ~$0.25 ~$0.07
Expiration Never Monthly renewal
Full report
Real user quotes
Viability score
Early access to new features

No credit card for Free. Credits never expire on Starter. Cancel Pro anytime. Failed analyses auto-refund credits.


Architecture

flowchart TB
    subgraph Client
        A[Next.js App Router]
    end

    subgraph Auth & Payments
        B[better-auth]
        C[Polar.sh]
    end

    subgraph AI Pipeline
        D[Keyword Extraction]
        E[Review Fetcher]
        F[Competitor Filter]
        G[LLM Analyzer]
        H[Guardrails]
        I[Financial Overview]
        J[MVP Roadmap]
    end

    subgraph Data Sources
        K[Product Hunt]
        L[Google Play]
        M[App Store]
        N[Reddit]
        O[Shopify]
    end

    subgraph Storage
        P[(PostgreSQL)]
        Q[(Review Cache)]
    end

    A -->|submit query| D
    D -->|keywords| E
    E --> K & L & M & N & O
    K & L & M & N & O -->|reviews| Q
    Q -->|cached reviews| F
    F -->|filtered competitors| G
    G -->|structured JSON| H
    H -->|validated result| P
    H -->|on demand| I & J
    P -->|poll result| A
    A --> B
    A --> C
    B --> P
    C --> P
Loading

Tech Stack

Layer Technology
Framework Next.js 16 (App Router, TypeScript, React 19)
Styling Tailwind CSS 4, Geist font, glassmorphism dark theme
Database PostgreSQL 16 + Drizzle ORM
Auth better-auth (Google OAuth, database sessions)
AI OpenRouter SDK with 3-model fallback chain
Payments Polar.sh (checkout, subscriptions, customer portal)
Data Sources Product Hunt GraphQL, google-play-scraper, app-store-scraper, Reddit JSON, Shopify scraper
Validation Zod
State TanStack React Query v5
Export jsPDF (PDF), JSON
Linting Biome
Logging Pino
Analytics Vercel Analytics
Deployment Docker (multi-stage standalone build)

Admin Dashboard

Full-featured admin panel with 12 pages:

  • Overview — Key metrics (users, analyses, purchases, sessions) with 14-day trend charts
  • Analyses — Browse all analyses with pagination, status filters
  • Users — User management with detail view and package assignment
  • Purchases — Purchase history and status tracking
  • Packages — Create, edit, and delete pricing packages
  • Sessions — Active user sessions
  • Costs — AI operation cost tracking by model and operation type
  • Feedbacks — User ratings, average score, distribution chart
  • Reviews — Cached reviews browser with search/filter by app name and source
  • Scraping — Cache hit rate, duration metrics, source performance breakdown
  • Settings — AI model configuration and feature flags

Project Structure

src/
├── app/
│   ├── (marketing)/            # Landing, login, pricing, terms, privacy
│   ├── (app)/                  # Protected routes
│   │   ├── analyze/            #   Analysis form (Mobile App / Shopify modes)
│   │   ├── history/            #   Past analyses with time-based grouping
│   │   ├── profile/            #   Profile, settings, billing, purchase history
│   │   └── admin/              #   Admin dashboard (12 pages)
│   ├── api/
│   │   ├── analysis/           #   POST create, GET poll result
│   │   ├── auth/[...all]/      #   better-auth handler
│   │   └── share/[token]/      #   Share token endpoint
│   └── share/[token]/          # Public shareable analysis pages
├── components/
│   ├── admin/                  # Sidebar, charts, package CRUD, model settings
│   ├── analysis/               # 16 result components (verdict, complaints, features,
│   │                           #   competitors, strengths, opportunity, timing,
│   │                           #   financial overview, MVP roadmap, export, share)
│   ├── billing/                # Checkout, portal, success banner
│   ├── marketing/              # Pricing section
│   ├── layout/                 # Header, Footer
│   ├── profile/                # Profile sidebar
│   └── ui/                     # Reusable primitives (Radix-based)
├── lib/
│   ├── ai/                     # OpenRouter client, prompts, analyzer, guardrails,
│   │                           #   keywords, competitors, model config, categories
│   ├── data/                   # Scrapers (PH, Play, App Store, Reddit, Shopify), cache
│   ├── db/                     # Drizzle schema (12 tables) + connection
│   ├── actions/                # Server functions (checkout, analysis, feedback, admin)
│   ├── queries/                # React Query hooks
│   ├── utils/                  # Rate limiter, credits, user plan, admin guard
│   ├── auth.ts                 # better-auth server + Polar plugin
│   └── auth-client.ts          # better-auth React client
└── middleware.ts               # Route protection via session cookies
drizzle/                        # Migration files

Getting Started

Prerequisites

Environment Variables

Copy .env.example and fill in your keys:

cp .env.example .env

Key variables:

DATABASE_URL=postgresql://shiporskip:shiporskip@localhost:5432/shiporskip
BETTER_AUTH_URL=http://localhost:3000
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
OPENROUTER_API_KEY=sk-or-...
PRODUCT_HUNT_CLIENT_ID=
PRODUCT_HUNT_CLIENT_SECRET=
POLAR_ACCESS_TOKEN=
POLAR_PRODUCT_ID=
POLAR_WEBHOOK_SECRET=

Docker (Recommended)

docker-compose up
# App:        http://localhost:3000
# PostgreSQL: localhost:5432

Manual Setup

npm install
npm run db:push    # push schema to database
npm run dev        # http://localhost:3000

Production

npm run build
npm start

Scripts

Command Description
npm run dev Start development server
npm run build Production build
npm run start Start production server
npm run lint Run Biome linter
npm run lint:fix Auto-fix lint issues
npm run format Format code with Biome
npm run format:check Check formatting
npm run db:generate Generate Drizzle migrations
npm run db:push Push schema to database
npm run db:studio Open Drizzle Studio (database GUI)
npm run db:reset Drop and re-push schema

License

Private

About

GoShipOrSkip is an AI-powered app idea validation engine that analyzes real user reviews from platforms like Google Play, App Store, and Product Hunt to uncover complaints, missing features, and market opportunities — before you write a single line of production code.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages