~ Just Vibin' by Pixel and Code
← back
005 / 008 · Live · 2026

Security Report Generator

A full-stack internal tool for writing, managing, and publishing smart contract security audit reports.

Business Next.js 14 Puppeteer Railway React Supabase (Auth + Postgres + Realtime + RLS) Tailwind CSS Tiptap TypeScript

About this project

Paladin audits smart contracts and delivers formal PDF reports to clients. Each report has a cover page, a findings section with severity-ranked issues, resolution tracking across multiple audit rounds, and client-facing notes. Before this tool existed, that probably meant Word docs, manual formatting, and hoping nothing got out of sync between the fifth finding and the third resolution round.

I built a web editor that handles the whole thing. Editors log in, create a report, and fill out metadata, contracts, and security issues in a sidebar with rich-text fields and drag-and-drop ordering. Everything autosaves. When two editors are in the same report, they see each other’s presence in real time, and optimistic locking prevents them from overwriting each other’s work.

PDF export runs through Puppeteer. The print page does careful height estimation to pack content across A4 pages without splitting issue cards mid-card or leaving orphaned table rows. It’s finicky work, but it means the output looks like a real professional document instead of a browser print dialog disaster.

Each report gets a shareable public link with an optional password. Clients open it, read through the findings, leave comments per issue, and submit fix statuses with commit URLs. There’s a separate issue tracker view for responding to everything at once. Admins can reply to comments directly from the viewer.

Details

Role

Product Design

Timeline

5 days

Type

Business

Stack

Next.js 14 Puppeteer Railway React Supabase (Auth + Postgres + Realtime + RLS) Tailwind CSS Tiptap TypeScript

Key features

// 01

Optimistic locking

Version header on every save catches concurrent edits and throws a 409 before data gets clobbered

// 02

Autosave

1.5s debounce, runs silently. Editors don't touch a save button.

// 03

Puppeteer PDF export

Spawned as a child process, captures the print page with authentication baked in, streams the PDF back.

// 04

Resolution rounds

Tracks multiple rounds of fixes with per-issue statuses (resolved, partially fixed, acknowledged, failed).

// 05

Public viewer with password gate

Shareable link, scrypt-hashed passwords, HMAC-signed cookies, rate-limited auth attempts.

// 06

Client issue tracker

One-shot batch submission view where clients respond to all findings with fix statuses and commit URL.

// 07

Admin panel

User management, editor-to-report assignments, message template editor.

Next project

Super Events Calendar WordPress Plugin

$ Just Vibin' by Pixel and Code S A S I S S C G
W LI E