You are browsing as a guest. Sign up (or log in) to start making projects!

7h 52m 13s logged

Refactored the codebase after review feedback — real types, shared components, and copy that actually sounds like me

Got flagged for overusing AI in the submission, so I went back through the whole thing file by file instead of just tweaking the surface. Turned into a proper refactor pass.

What’s in it

  • Fixed the types instead of casting around themProject and ExperienceItem in lib/data.ts were missing fields (status, link, impact, highlights), so every component consuming them was littered with as any. Extended the actual types and removed every cast.
  • Extracted Badge and TerminalWindow — the same colored-badge markup was copy-pasted near-identically across Projects.tsx, Experience.tsx, CTF.tsx, and Contact.tsx, and the terminal-window mock was duplicated in two more places. Pulled both into shared components.
  • Simplified the Brevo integrationlib/brevo.ts had a full HTML “email card” builder with its own design-token constants and a hand-rolled escapeHtml, for an email that only ever lands in my own inbox. Cut it down to what the contact form actually needs.
  • Killed a recurring string hackcolor.replace("1)", "0.2)") to derive a lighter shade from an rgba string was showing up in three different files. Replaced with actual stored bg values.
  • Rewrote the bio and project/experience copy — the original text in data.ts and About.tsx all had the same over-polished, bolded-keyword rhythm you get from one AI pass. Rewrote it to sound like how I'd actually describe this stuff.
  • Repo cleanup — deleted a pile of unused screenshots in /public and a stale implementation.md that no longer matched the site.
  • Swapped a placeholder hero stat for a real one — now shows my actual HackerDNA rank (#1 in Nigeria) instead of a filler number, and fixed the scroll-behavior build warning while I was in there.

Why this fits

The flag wasn’t wrong to catch — a lot of this genuinely read as generated: duplicated markup that was never refactored, any-casts instead of fixed types, an over-engineered email builder for a one-off form, and bio copy that hit every AI-bio beat (bolded keywords, tidy aphoristic closers). Going through it properly meant fixing the root causes — bad types, real duplication — not just rewording things. Ended up being a better codebase either way, not just a resubmission.

0
6

Comments 0

No comments yet. Be the first!