Digital Hub is the public-facing portfolio and link-safety platform for Lindocode Digital. It does two things:
-
Project showcase — a Cover Flow carousel that lets visitors browse and deep-dive into Lindocode's work. Each card opens a full-screen overlay with project details, live screenshots, and direct links.
-
Link Safety Scanner — paste any URL and get an instant trust score. The scanner checks HTTPS, TLS certificate validity, redirect chains, security headers (HSTS, CSP, X-Frame-Options, Referrer-Policy, Permissions-Policy), URL structure signals (IP addresses, shorteners, punycode, subdomain depth), and site reachability — then surfaces a scored, human-readable report.
- Cover Flow carousel — GSAP-powered card browsing with active-state interactions and full-screen project overlays
- Link Safety Scanner — real-time URL analysis with a trust score, signal breakdown, and redirect chain visualization
- Live site preview — iframe preview of scanned URLs with bot-protection and reachability detection
- Upstream API fallback — scanner tries a hosted analysis API first; falls back to full local analysis (network probe + TLS check + header analysis) when unavailable
- Responsive — optimized for mobile and desktop
- 131 passing tests — unit, integration, and API route tests with CI enforcement on every PR
app/
├── api/
│ ├── scan/route.ts # Link safety analysis (upstream fallback + local)
│ └── validate/route.ts # URL reachability check with redirect chain
├── globals.css
├── layout.tsx
├── not-found.tsx
└── page.tsx
components/
├── common/
│ ├── Banner.tsx
│ ├── CompanyName.tsx
│ ├── Footer.tsx
│ └── logo/Logo.tsx
└── landing/
├── LandingPage.tsx
├── LinkChecker.tsx
├── carousel/
│ ├── CarouselShell.tsx
│ ├── CoverFlow.tsx
│ └── CoverFlowCard.tsx
└── overlay/
└── ProjectOverlay.tsx
lib/
└── projects.ts # Project data and description helpers
__tests__/ # 131 tests across 12 suites
.github/workflows/test.yml # CI: blocks merges when tests fail
| Layer | Technology |
|---|---|
| Framework | Next.js 16 App Router, React 19 |
| Language | TypeScript 5 |
| Styling | Tailwind CSS v4, custom CSS |
| Animation | GSAP |
| Testing | Jest + Testing Library (131 tests) |
| CI | GitHub Actions — blocks merge on failure |
| Infrastructure | Oracle Cloud VM |
| Media | Cloudflare Workers (image delivery) |
Scores a URL for safety. Tries an upstream hosted API first; on failure runs local analysis:
- Phase 1 — URL signals: HTTPS, IP address, URL shortener, punycode, subdomain depth, query parameter count
- Phase 2 — Network probe: reachability, HTTP status, redirect chain, cross-domain redirects
- Phase 3 — TLS: certificate validity and expiry
- Phase 4 — Security headers: HSTS, CSP, X-Frame-Options, Referrer-Policy, Permissions-Policy
Returns a score (0–100), level (good / caution / high_caution), full signals array, redirect_chain, and scanned_at timestamp.
Fast reachability check with redirect chain following. Returns isWorking, statusCode, finalUrl, responseTime, and friendly status text for bot-blocked codes (401, 403, 406, 429).
Lindocode Digital
Trading as Lazy Apps
All rights reserved © Lindocode Digital
