Inspiration
Why this project exists – explain the pain point that sparked the idea.
What it does
A concise, bullet‑point summary of functionality:
Generate fake certificates (self‑signed, expired, not‑yet‑valid, revoked). Validate certificates (real or fake) against common security rules (dates, revocation lists, signatures). Interactive UI built with Next 16 + TailwindCSS to upload a real cert or click “Generate Fake”. CLI utilities for DynamoDB table creation and bulk certificate generation. Exportable verification library (@fake‑cert/verify) for reuse in other services.
How we built it
Scaffold – npx create-next-app@latest (Next 16, Turbopack). Core logic – TypeScript module src/lib/verify.ts exposing verifyCertificate(cert). Fake cert generator – src/scripts/createTable.ts plus npm script gen-fake. UI – Single‑page app (pages/index.tsx) with Tailwind‑styled glass cards. AWS DynamoDB mock – @aws-sdk/client-dynamodb + aws-sdk-client-mock. Testing – Jest unit tests + Playwright end‑to‑end tests. Deployment – Standalone build (output: "standalone"), Docker‑ready.
Challenges we ran into
Challenge How we solved it PowerShell script‑execution policy blocked npm run dev. Added one‑time Set‑ExecutionPolicy -Scope Process -ExecutionPolicy Bypass and documented the step. Windows firewall blocked localhost:3000. Opened inbound rule for node.exe or switched to a custom port (-p 3001). Mocking DynamoDB with SDK v3 (needs signed requests). Used aws-sdk-client-mock to intercept calls and return in‑memory data. Large PEM files slowed UI. Implemented lazy parsing – only read needed fields (notBefore, notAfter). Cross‑platform path handling. Leveraged path.join and avoided hard‑coded separators. Accomplishments that we're proud of Instant certificate swapping – users can toggle between real and fake certificates with a single click. 95 % test coverage for verification logic + full UI flow coverage with Playwright. Reusable NPM package (@fake‑cert/verify) published and used by two internal services. Performance – Turbopack hot‑reload under 1 second on Windows 10.
What we learned
The power of Next 16 + Turbopack for rapid prototyping, but also the need to watch for Windows‑specific quirks (execution policy, firewall). TypeScript’s type safety dramatically reduces bugs when modeling crypto‑related data structures. Mocking cloud services locally (DynamoDB) is feasible with SDK v3 and client‑side mocks. Tailwind + glass‑morphism can produce a premium look without heavy CSS frameworks. What's next for Fake‑certificate‑verification Add revocation‑list (CRL) support and OCSP checking. Provide Docker‑Compose stack that spins up a mock DynamoDB Local instance automatically. Integrate with CI pipelines to run verification tests on every PR. Publish a VS Code extension that adds snippets for generating fake certificates directly from the editor. Explore WebAssembly for client‑side cryptographic verification to eliminate server round‑trips.
Built With
- aws-dynamodb-(via-aws-sdk?v3)
- css
- docker
- dynamodb?local
- eslint
- git
- github-actions
- html
- javascript
- jest
- lucide?react
- next?16-(turbopack)
- node?20
- node?crypto
- npm
- playwright
- prettier
- react?19
- tailwind?css
- typescript
Log in or sign up for Devpost to join the conversation.