Skip to content

marcushale/humanproof

Repository files navigation

HumanProof

Tagline: Certified Human-Made

A lightweight SaaS that lets creators and brands certify their content as authentically human-created. A "Verified" badge for authenticity, not identity.

🎯 What It Is

In a world of AI slop, authenticity is your edge. HumanProof provides:

  • Badge Generation: Upload content, get a cryptographic proof badge
  • Content Hashing: Client-side SHA-256 hashing for privacy
  • Verification System: Public verification URLs for trust
  • Analytics Dashboard: Track how many people verify your work
  • Embeddable Badges: Drop-in HTML for websites, blogs, portfolios

πŸš€ Quick Start

# Install dependencies
npm install

# Set up database
npm run db:push

# Development
npm run dev

# Build for production
npm run build

# Start production server
npm start

πŸ“ Project Structure

humanproof/
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   └── BadgeGenerator.astro    # 3-step badge creation wizard
β”‚   β”œβ”€β”€ db/
β”‚   β”‚   β”œβ”€β”€ schema.ts                # Drizzle ORM schema
β”‚   β”‚   └── index.ts                 # Database instance
β”‚   β”œβ”€β”€ lib/
β”‚   β”‚   β”œβ”€β”€ badge.ts                 # Badge utilities (hash, ID gen)
β”‚   β”‚   └── types.ts                 # TypeScript types
β”‚   β”œβ”€β”€ pages/
β”‚   β”‚   β”œβ”€β”€ api/
β”‚   β”‚   β”‚   └── badges/              # REST API endpoints
β”‚   β”‚   β”œβ”€β”€ create.astro             # Badge creation page
β”‚   β”‚   β”œβ”€β”€ creator/
β”‚   β”‚   β”‚   └── index.astro          # Creator dashboard
β”‚   β”‚   β”œβ”€β”€ verify/
β”‚   β”‚   β”‚   └── index.astro          # Badge verification page
β”‚   β”‚   └── index.astro              # Landing page
β”‚   └── styles/
β”‚       └── global.css               # Tailwind + custom styles
β”œβ”€β”€ drizzle/                         # Database migrations
β”œβ”€β”€ public/
β”‚   └── badge/
β”‚       └── default.svg              # Badge SVG asset
└── humanproof.db                    # SQLite database

πŸ› οΈ Tech Stack

  • Framework: Astro 5 (static + server endpoints)
  • Database: SQLite + Drizzle ORM
  • Styling: Tailwind CSS 4
  • Hashing: Web Crypto API (SHA-256)
  • Deployment: Node.js standalone server

πŸ” Security Features

  • Client-side hashing: Content never leaves the user's browser
  • Privacy-preserving analytics: IP addresses are hashed daily
  • Tamper-proof proofs: SHA-256 content hashes with timestamps
  • Revocation support: Badges can be revoked if needed

πŸ“Š Database Schema

badges

  • id (TEXT, PK) - Unique badge ID (hp-xxxxxx)
  • contentHash (TEXT) - SHA-256 hash of content
  • contentType (TEXT) - article | image | video | audio | other
  • title (TEXT) - Badge title
  • description (TEXT) - Optional description
  • contentUrl (TEXT) - Link to original content
  • proofTimestamp (DATETIME) - When badge was created
  • verifications (INT) - Verification count
  • status (TEXT) - active | revoked

verifications

  • id (INT, PK) - Auto-increment ID
  • badgeId (TEXT, FK) - Badge reference
  • timestamp (DATETIME) - Verification time
  • ipHash (TEXT) - Hashed IP for uniqueness
  • referrer (TEXT) - Where verification came from
  • userAgent (TEXT) - Browser info

creators (Future)

  • User accounts for badge ownership

🌐 API Endpoints

POST /api/badges

Create a new badge.

Body:

{
  "title": "My Article",
  "contentHash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
  "contentType": "article",
  "description": "Optional description",
  "contentUrl": "https://example.com/article"
}

Response:

{
  "success": true,
  "badge": {
    "id": "hp-a7x9k2",
    "title": "My Article",
    "contentHash": "e3b0c442...",
    "proofTimestamp": "2026-02-04T18:00:00.000Z",
    "status": "active"
  }
}

GET /api/badges

List all badges (paginated in production).

GET /api/badges/:id

Verify a badge and record analytics.

Response:

{
  "valid": true,
  "badge": {
    "id": "hp-a7x9k2",
    "title": "My Article",
    "contentType": "article",
    "contentHash": "e3b0c442...",
    "proofTimestamp": "2026-02-04T18:00:00.000Z",
    "verifications": 42,
    "status": "active"
  }
}

DELETE /api/badges/:id

Revoke a badge (requires auth in production).

🎨 Embed Code

<!-- HumanProof Badge -->
<a href="https://humanproof.com/verify/#hp-a7x9k2" target="_blank" rel="noopener noreferrer">
  <img src="https://humanproof.com/badge/default.svg" alt="HumanProof Verified" style="height:40px;">
</a>

🚧 Roadmap

MVP (Week 1)

  • Badge generator
  • Verification system
  • Creator dashboard
  • SQLite database
  • API endpoints
  • User authentication
  • Deploy to production

V1.1

  • Magic link auth
  • Badge analytics dashboard
  • Custom badge styles
  • Batch badge creation
  • API access for platforms

V2

  • Team accounts
  • White-label badges
  • Blockchain anchoring (optional)
  • Platform integrations (Medium, Substack)

πŸ’° Pricing

  • Free: 5 badges/month, basic profile
  • Creator ($9/mo): Unlimited badges, analytics, priority support
  • Brand ($49/mo): Team seats, API access, white-label badges

πŸ“ License

Proprietary - Auderon

🀝 Contributing

This is a commercial product. Internal contributions only.


Built with 🦾 by Auderon β€” For those who dare to be real.

About

Certified Human-Made content verification badges

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •