Admin Dashboard
Platform overview and statistics
Access Denied
You need admin privileges to view this page.
Registered Users
-
new this week
Active Users
-
of total
Generations
-
today, this week
Paid Subscriptions
-
active plans
Users by Tier
Generations by Status
Credits Overview
Active Subscriptions by Tier
All Users
| Name | Tier | Credits | Gens | Status | Joined | Last Login | |
|---|---|---|---|---|---|---|---|
|
ADMIN
|
Daily Credits Spent
Last 30 days
Estimated Oaktree API Cost (USD)
Last 30 days — estimated at ~$0.27 per credit (blended video-fast/pro average)
Key Business Metrics
Live KPIs computed from real data — dashed line shows target
Style Presets
Add, edit, or deactivate style presets visible to all users
| Name | Category | Model | Dur. | Credits | API Cost | Margin | Flags | Uses | Status | Actions |
|---|---|---|---|---|---|---|---|---|---|---|
|
|
FEAT
PRO
|
|
||||||||
|
Prompt Template Negative Prompt
Thumbnail:
|
||||||||||
B2C Go-to-Market Strategy
Pixfino targets individual creators, small business owners, and social media managers who need professional visual content but lack design skills or budget for studios. Our competitive edge: one-click AI generation from a selfie, no technical knowledge required.
$4.2B
AI image generation market by 2027 (MarketsandMarkets)
73%
of consumers prefer video content when learning about products (Wyzowl 2024)
2.1B
Instagram monthly active users — our primary acquisition channel
Target Customer Segments
Social Media Creators
Instagram, TikTok, YouTube creators who need a constant flow of fresh visual content. High volume, repeat usage. Target: 50K-500K followers.
Expected tier: Pro ($29.99/mo)
E-commerce Sellers
Shopify, Etsy, Amazon sellers who need product photos and lifestyle shots. Replace $500+ studio shoots with AI. High conversion from free trial.
Expected tier: Starter ($9.99/mo)
Freelancers & Consultants
Need professional headshots, LinkedIn photos, and personal brand content. One-time or low-frequency usage. Credit packs are ideal.
Expected: Credit packs ($4.99-$49.99)
Marketing Agencies
Small agencies managing multiple brands. Need video ads and product visuals at scale. Highest LTV segment.
Expected tier: Business ($79.99/mo)
Customer Acquisition Funnel
AWARENESS CONSIDERATION CONVERSION RETENTION
───────── ───────────── ────────── ─────────
Instagram Reels Landing page Free tier (5 cr) Weekly email
TikTok Ads "Before/After" demo First generation "Credits running low"
YouTube Shorts Style library browse Aha moment! New style releases
SEO ("AI headshot") Pricing comparison Upgrade prompt Loyalty credits
Reddit r/photography Blog tutorials Checkout Referral program
Product Hunt launch Email capture ───────────> ───────────>
Starter $9.99
or credit pack
Target CAC: $3-8 Visit-to-signup: 15% Free-to-paid: 8% Monthly churn: <5%
Channel Priorities (Ranked by Expected ROI)
Organic Social (Instagram Reels + TikTok)
Post before/after transformations using our own tool. Snow Princess, Red Carpet, Cyberpunk styles are highly shareable. Cost: $0 (time only). Target: 3 posts/day.
SEO + Content Marketing
Target keywords: "AI headshot generator", "AI product photography", "AI video ad maker", "LinkedIn photo AI". Blog posts with embedded demos. Long-tail, compounding returns.
Product Hunt / Hacker News Launch
One-time spike event. Prepare demo video, landing page, and 48-hour launch promo (double free credits). Target: top 5 of the day.
Paid Ads (Meta + TikTok)
Video ads showing the transformation flow. Target lookalike audiences from our organic followers. Start at $20/day, scale based on CAC. Expected CAC: $5-8.
Referral Program
Give 5 credits to referrer + referee. Only activate once we have 500+ users. Low priority until product-market fit is confirmed.
Content & Creative Assets
Hero Banner Concept
Full-width split-screen: left side shows a casual selfie, right side shows multiple AI-generated outputs (Snow Princess, Red Carpet, LinkedIn). Center CTA: "Upload your photo. Choose a style. Get stunning results in seconds."
CTA: "Try free — no credit card required"
Format: 1920×600px web banner + 1080×1920px mobile
Video Intro (15-30s)
Fast-paced demo: user uploads selfie → selects "Snow Princess" → loading animation → reveal with cinematic zoom. End with logo + "pixfino.com — AI-powered you." Use for homepage hero, social ads, and Product Hunt.
0-3s: "What if one photo could become anything?"
3-8s: Upload flow (screen recording)
8-12s: Style selection (quick cuts between presets)
12-18s: Results montage (6 styles, 0.8s each)
18-22s: "30 styles. One click. Unlimited you."
22-25s: Logo + CTA
Social Content Calendar (Week 1 Launch)
| Day | Platform | Content | Goal |
|---|---|---|---|
| Mon | Instagram Reel | "Upload selfie → Snow Princess" transformation (15s) | Awareness |
| Tue | TikTok | "POV: You need a LinkedIn photo in 30 seconds" (20s) | Awareness |
| Wed | Twitter/X | Product Hunt launch announcement + demo GIF | Launch buzz |
| Thu | Product Hunt | Full launch with video, screenshots, maker story | Signups |
| Fri | Instagram Carousel | "5 ways to use AI photos for your business" | Education |
| Sat | TikTok | Behind-the-scenes: how AI video generation works | Trust |
| Sun | r/SideProject + r/EntrepreneurRideAlong post | Community |
Pricing Positioning vs. Competitors
| Feature | Pixfino | Lensa AI | Glam.ai | Photoroom |
|---|---|---|---|---|
| AI Photos | 4 credits ($1.08) | $7.99/50 photos | $9.99/month | Free (basic) |
| AI Videos | 20-78 credits | No | Limited | No |
| Product Photos | 4 credits ($1.08) | No | No | $9.99/mo |
| Video Ads | 20-78 credits | No | No | No |
| Style Presets | 30+ | ~10 | ~15 | Templates |
| Free Tier | 5 credits/mo | No | 3 photos | Yes (watermark) |
| Starter Plan | $9.99/mo | N/A | $9.99/mo | $9.99/mo |
Key differentiator: Pixfino is the only platform offering AI photos, AI videos, product photography, AND video ads in one tool. Competitors focus on one category.
KPIs & 90-Day Milestones
Key Metrics to Track
90-Day Roadmap
Launch Phase
Product Hunt launch. 500 signups. 40 paid conversions. Validate messaging with A/B tested landing pages.
Growth Phase
2,000 signups. Start paid ads ($20/day). Launch referral program. 10 SEO blog posts published. 200 paid users.
Scale Phase
5,000 signups. 500 paying users. $5K MRR. Churn <5%. Begin outbound to agencies. Evaluate Series Seed readiness.
Pixfino — Technical Overview
Pixfino is an AI-powered fashion and beauty video generation platform. Users upload a reference photo, select a style preset, and the platform generates a professional video using third-party AI models. The business model is credit-based with tiered subscriptions.
System Architecture
Browser (HTMX + Alpine.js)
|
| HTTP / WebSocket
v
+------------------+ +------------------+
| Cloudflare | ----> | Nginx |
| CDN + SSL | | Reverse Proxy |
+------------------+ +--------+---------+
|
v
+---------------------+
| FastAPI App |
| (uvicorn, async) |
+---+-----+-----+-----+
| | | |
+--------------+ +--+--+ | +--+----------+
| | | | | |
v v | | v v
+----------------+ +--------+ | | +----------+ +---------+
| Neon Postgres | | Redis | | | | Stripe | | R2 |
| (SQLAlchemy | | Cache | | | | Payments | | Storage |
| async+asyncpg)| | Queue | | | +----------+ +---------+
+----------------+ +---+----+ | |
| | |
v | |
+----------+ | |
| Celery | | |
| Workers +---+ |
+-----+----+ |
| |
v v
+--------------+----------+
| Oaktree Labs API |
| (AI Video Generation) |
+-------------------------+
Video Generation Flow
Every generation follows an atomic credit-first pipeline. Credits are deducted before the job is queued, and refunded automatically on failure.
User clicks "Generate"
|
v
+-------------------+ +-------------------+
| Validate request | --> | Check credits |
| (Pydantic schema) | | (user.credits >= |
+-------------------+ | cost?) |
+--------+----------+
| |
YES | NO |
v v
+--------------+ +----------+
| Deduct | | 402 Error|
| credits | | "Insuf- |
| (atomic) | | ficient"|
+------+-------+ +----------+
|
v
+-----------------+
| Create DB row |
| status=PENDING |
+--------+--------+
|
v
+--------------------+
| Background Task |
| (submit to Oaktree)|
+---------+----------+
|
v
+---------------------+
| Poll for completion |
| (5s intervals, max |
| 5 min timeout) |
+---+-------+---------+
| |
DONE | FAIL |
v v
+----------+ +-------------+
| Save URL | | Refund |
| status= | | credits |
| COMPLETED| | status= |
+----------+ | FAILED |
+-------------+
Technology Stack
| Layer | Technology | Why this choice |
|---|---|---|
| Runtime | Python 3.12 + uvicorn | Async-native, excellent library ecosystem for AI/ML workloads |
| Framework | FastAPI | Auto OpenAPI docs, dependency injection, Pydantic validation, native async |
| Database | PostgreSQL 16 (Neon) | Serverless Postgres with branching. UUID PKs, enum types, ACID for credit ops |
| ORM | SQLAlchemy 2.0 + asyncpg | Async sessions, declarative Mapped[] types, selectin lazy loading for relations |
| Migrations | Alembic | Auto-generated DDL, version-controlled schema changes |
| Cache/Queue | Redis 7 + Celery | Sub-ms caching, reliable job queue with retry/backoff, priority queues |
| Frontend | HTMX + Alpine.js + Tailwind | No build step, CDN-loaded, server-rendered Jinja2 templates, reactive where needed |
| AI | Oaktree Labs API | Video generation with curl_cffi (bypasses Cloudflare). Circuit breaker for resilience |
| Payments | Stripe | Subscriptions + one-time credit packs, webhook lifecycle, billing portal |
| Storage | Cloudflare R2 | S3-compatible, zero egress fees, signed URLs for upload, public CDN for output |
| Deploy | Docker Compose + Hetzner | Single-server MVP: app, Postgres, Redis, Celery in one compose file |
Testing Strategy
The app uses a layered testing approach that catches issues at every level, from individual functions to full user flows in a real browser.
Unit Tests (pytest)
26+ tests covering credit operations, auth flows, generation endpoints, payment webhooks, and page rendering. Uses SQLite in-memory with a UUID adapter so tests run without Postgres.
E2E Tests (Playwright)
14+ browser-based tests running against a live server. Covers page loads, navigation, register/login flows, protected page redirects, and style filter interactions using real Chromium.
Infrastructure
Docker Compose for local dev parity. Alembic migrations are version-controlled. Health endpoint at /health for uptime monitoring. Sentry SDK wired for error tracking.
pytest tests/unit/ # Fast: ~1.5s, no external deps pytest tests/e2e/ # Full: ~40s, starts live server + Chromium pytest # All: runs both suites Test DB Strategy: Unit --> SQLite in-memory (UUID adapter swaps PG UUID for CHAR(32)) E2E --> Real Postgres (live server on port 8765)
Resilience Patterns
Circuit Breaker (Oaktree API)
Prevents cascading failures when the AI API is down. After 5 consecutive failures, the circuit opens and all requests fail-fast for 60 seconds, then half-opens to test recovery.
HALF-OPEN --[success]--> CLOSED
HALF-OPEN --[failure]--> OPEN
Credit Atomicity
Credits are deducted in the same DB transaction as the generation record creation. If the API call fails, credits are refunded automatically. No money is lost, no free generations are given.
user.credits -= cost
INSERT generation (status=PENDING)
COMMIT
-- on failure: refund_credits()
Scaling Path
The MVP runs on a single Hetzner CPX31 server. The architecture is designed to scale horizontally when needed:
Production Deployment
Blue-green deployment on pixfino.com with SSL, nginx reverse proxy, and zero-downtime deploys.
Architecture
Client (Browser)
|
| HTTPS (Let's Encrypt)
v
+---------------------+
| Nginx |
| (Reverse Proxy) |
| pixfino.com:443 |
+--------+------------+
|
v (active slot)
+--------+------------+ +---------------------+
| Blue Slot | | Green Slot |
| uvicorn :8001 | | uvicorn :8002 |
| (2 workers) | | (2 workers) |
+---------------------+ +---------------------+
|
+----+----+------------------+
| | |
v v v
PostgreSQL Redis Celery Worker
:5432 :6379 (concurrency=2)
| |
v v
Neon DB Oaktree Labs API
Blue-Green Deploy Process
Two identical app slots run on ports 8001 (blue) and 8002 (green). Nginx routes all traffic to the active slot. Deploys start the inactive slot, health-check it, then switch nginx — zero downtime.
Deploy Commands
# Deploy to inactive slot, health check, switch ./deploy/deploy.sh # Instant rollback to previous slot ./deploy/deploy.sh rollback # Check which slot is active and service status ./deploy/deploy.sh status # Stop the old slot after confirming new one works ./deploy/deploy.sh stop-old
Systemd Services
| Service | Port | Description | Commands |
|---|---|---|---|
| pixfino-blue | 8001 | App slot (blue) | systemctl {start|stop|restart|status} pixfino-blue |
| pixfino-green | 8002 | App slot (green) | systemctl {start|stop|restart|status} pixfino-green |
| pixfino-celery | — | Background task worker | systemctl {start|stop|restart|status} pixfino-celery |
| nginx | 80, 443 | Reverse proxy + SSL | systemctl {start|stop|reload|status} nginx |
| postgresql@16-main | 5432 | Database | systemctl {start|stop|restart|status} postgresql@16-main |
| redis-server | 6379 | Cache & task queue | systemctl {start|stop|restart|status} redis-server |
Config Files
nginx/ pixfino.conf # Main nginx site config (upstreams, SSL, rate limits) pixfino-active-slot.conf # Proxy pass template (blue or green) deploy/ deploy.sh # Blue-green deploy script pixfino-blue.service # Systemd unit — app on :8001 pixfino-green.service # Systemd unit — app on :8002 pixfino-celery.service # Systemd unit — celery worker /etc/nginx/ sites-enabled/pixfino.conf # Symlink → nginx/pixfino.conf pixfino/active-slot.conf # Active slot (managed by deploy.sh) /etc/letsencrypt/ live/pixfino.com/ # SSL cert (auto-renews via certbot timer)
SSL & Security
certbot.timer. Check: certbot renew --dry-runQuick Reference
# View logs journalctl -u pixfino-blue -f # app logs (live) journalctl -u pixfino-celery -f # celery logs tail -f /var/log/nginx/access.log # nginx access tail -f /var/log/nginx/error.log # nginx errors # Database alembic upgrade head # run migrations alembic revision --autogenerate -m "desc" # create migration # SSL certbot renew --dry-run # test renewal certbot certificates # show cert info # Nginx nginx -t # test config systemctl reload nginx # apply config (no downtime)