Building a βSwiss Army Knifeβ of Reconnaissance. If data exists publicly, this tool must find it.
Building a βSwiss Army Knifeβ of Reconnaissance. If data exists publicly, this tool must find it.
The scanner form is the heart of OwlEye - itβs literally the first thing users interact with. This session was dedicated to making it bulletproof: handling edge cases, providing great UX, and making it look absolutely fire.
Working on ScannerForm.tsx:*
This component needs to handle a lot of complexity while appearing simple to the user
Deep Dive: Domain Cleaning Logic:
Users will paste URLs in all sorts of formats. Our cleanDomain function handles them all:
| User Input | Cleaned Output |
|ββββββββββββββββ|ββββββββ|
| https://www.example.com/page | example.com |
| http://example.com | example.com |
| WWW.EXAMPLE.COM | example.com |
| example.com:8080 | example.com |
| example.com/path?query=1 | example.com |
| example.com | example.com |
Log in to leave a comment
Working on globals.css - The Heart of Theming:
This is where I defined all the CSS custom properties that power the theme system. Using CSS variables means we can change the entire color scheme by just updating a few values:
/* app/globals.css */
@tailwind base;
@tailwind components;
@tailwind utilities;
// components/Providers.tsx
Log in to leave a comment
This session was all about creating the visual foundation for OwlEye. The layout and global styles define how every single page in the application looks and feels. I wanted to nail the cyberpunk aesthetic from day one, so I spent extra time perfecting the colors, fonts, and overall vibe.
In Next.js App Router, layout.tsx is the root wrapper for your entire application. Every page, every route, everything gets wrapped by this layout. Itβs crucial to get it right because changes here affect everything.
Hereβs what I set up:(refer img)
I experimented with several fonts before settling on JetBrains Mono. The alternatives I tried:
Log in to leave a comment
The research phase helped me understand the market gaps and define a clear vision. Without these two hours of planning, I would have built something mediocre instead of something exceptional.
After weighing and trying the options (React vs Vue vs Svelte, and different backend options), I decided on:
Log in to leave a comment
Every great project starts with an idea. I was doing a CTF challenge and got frustrated with how ugly and scattered OSINT tools were. Thatβs when it hit me - why not build my own? One that actually looks good and combines everything in one place.
##idea
Dark cyberpunk theme (because weβre hackers, duh)
###file structure
owleye-osint/
βββ src/
β βββ app/
β β βββ page.tsx # Main dashboard
β β βββ layout.tsx # Root layout
β β βββ providers.tsx # React Query provider
β β βββ globals.css # Cyberpunk styles
and then end getting error
Log in to leave a comment