MVP for Website Monitoring/Audit Suite

Job ID: 40241732

Budget: $750 – $1,500 USD

Full-Stack Developer for MVP Website Monitoring and Audit Suite
We are seeking a skilled Full-Stack Developer to create a Minimum Viable Product (MVP) for a website monitoring and audit suite. The ideal candidate will have experience with both front-end and back-end technologies to build a user-friendly and efficient platform. You will be responsible for designing, developing, and implementing features that allow users to monitor website performance and conduct audits effectively. Strong problem-solving skills and attention to detail are essential. If you are passionate about building innovative solutions, we would love to hear from you!
Key Responsibilities:
Scanner Engine: Build a resilient microservice using Puppeteer and the Lighthouse Engine capable of mobile-first emulation and hardware throttling.
Time-Series Data: Implement PostgreSQL with the TimescaleDB extension to manage millions of historical performance metrics via Hypertables.
Job Queuing: Manage background scanning tasks using Redis and BullMQ to ensure horizontal scalability.
API Design: Develop RESTful endpoints for on-demand scans, time-series data retrieval, and automated white-label PDF generation.

Technical Requirements:
Node.js / TypeScript Mastery (NestJS or Express preferred).
Expertise in Puppeteer/Playwright and bypassing WAFs (Stealth plugins/Residential Proxies).
Strong experience with PostgreSQL and time-series extensions (TimescaleDB/InfluxDB).
Experience with Next.js for a performant frontend dashboard.
Deliverable: A fully functioning MVP capable of handling 5,000+ daily scans across 20+ global nodes.

Milestone Payment Schedule (8 - Week MVP)
Milestone 1: Data Foundation & Infrastructure (20%)

Focus: Establishing a high-performance time-series database and the "Scraper" core.

Week 1 (Infra & DB):

Set up Dockerized environments (Production/Staging).

Initialize PostgreSQL and enable the TimescaleDB extension.

Task: Create the scans table and convert it into a hypertable partitioned by a created_at timestamp.

Task: Create a composite index on (user_id, created_at DESC) for fast user-specific history lookups.

Week 2 (Scanner Core):

Develop the Puppeteer script with stealth plugins to avoid detection.

Task: Implement a data-mapping function that converts raw Puppeteer output into the SQL schema.

Deliverable: A script that can be executed via CLI and saves a record successfully.

Milestone 2: Background Processing & Scalability (30%)

Focus: Moving from a manual script to a production-grade asynchronous queue.

Week 3 (Queue Setup):

Deploy Redis for state management.

Set up BullMQ with a dedicated scanner-worker process.

Task: Implement "Global Concurrency Limiting" (e.g., max 5 Puppeteer instances) to prevent server RAM exhaustion.

Week 4 (API Development):

Endpoint: POST /v1/scan – Accepts a URL, validates it, and pushes a job to BullMQ. Returns a jobId.

Endpoint: GET /v1/scan/:jobId – Checks Redis to return pending, active, failed, or completed.

Task: Implement Exponential Backoff logic (retrying a scan if it hits a 403 or timeout error).

Milestone 3: UI & Analytics Engine (30%)

Focus: Speeding up data retrieval and building the user interface.

Week 5 (Data Aggregation):

Task: Create TimescaleDB Continuous Aggregates (Materialized Views) for daily/weekly averages so the frontend doesn't have to calculate thousands of rows on every refresh.

Task: Set up a Refresh Policy to update these aggregates every hour automatically.

Week 6 (Frontend Integration):

Endpoint: GET /v1/analytics/history – Returns aggregated data from the Continuous Aggregate.

Task: Connect the UI to a WebSocket (using Socket.io) to provide real-time updates on the progress bar while a scan is running.

Deliverable: A dashboard that loads in under 500ms even with 10,000+ data points.

Milestone 4: Billing, Reporting & Hardening (20%)

Focus: Monetization and production stability.

Week 7 (Monetization & Reporting):

Endpoint: POST /v1/billing/create-subscription – Integrates Stripe Checkouts.

Task: Implement a Stripe Webhook listener to enable/disable user features based on payment status.

Task: Use a library like jspdf or puppeteer-pdf to generate a downloadable report from the dashboard view.

Week 8 (Testing & Launch):

Task: Conduct Load Testing—simulate 50 users triggering scans simultaneously to verify Redis/BullMQ stability.

Task: Final security audit (Environment variable protection, rate-limiting on APIs).

Deliverable: Production deployment on your final server (AWS/DigitalOcean/Hetzner).

Please find the attached requirements doc.