https://github.com/writingdeveloper/portfolio
· scanned 2026-06-16 01:00 UTC (2 months, 1 week ago)
31 raw signals (0 security + 31 graph)
Last scanned 2 months, 1 week ago · v1 · 31 actionable findings from 1 signal source. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 353 nodes from the latest scan, grouped by kind. Each node is a unit the engine identified (file, function, endpoint, table…). Most users won't need this view — it's primarily for debugging the engine's graph extraction or for AI agents that want to enumerate the project structure.
| Label | Layer | Status | Path |
|---|---|---|---|
getMdxFiles |
software | healthy | scripts/untranslated.ts:getMdxFiles |
proxy |
software | healthy | src/proxy.ts:proxy |
isImmersiveRoute |
software | healthy | src/components/layout/layout-chrome-rules.ts:isImmersiveRou… |
Footer |
software | healthy | src/components/layout/Footer.tsx:Footer |
LanguageToggle |
software | healthy | src/components/layout/LanguageToggle.tsx:LanguageToggle |
toggle |
software | healthy | src/components/layout/LanguageToggle.tsx:toggle |
getThemeSnapshot |
software | healthy | src/components/layout/ThemeToggle.tsx:getThemeSnapshot |
getServerSnapshot |
software | healthy | src/components/layout/ThemeToggle.tsx:getServerSnapshot |
subscribeToTheme |
software | healthy | src/components/layout/ThemeToggle.tsx:subscribeToTheme |
ThemeToggle |
software | healthy | src/components/layout/ThemeToggle.tsx:ThemeToggle |
toggle |
software | healthy | src/components/layout/ThemeToggle.tsx:toggle |
Header |
software | healthy | src/components/layout/Header.tsx:Header |
handleKeyDown |
software | healthy | src/components/layout/Header.tsx:handleKeyDown |
handleTab |
software | healthy | src/components/layout/Header.tsx:handleTab |
CategoryFilter |
software | healthy | src/components/blog/CategoryFilter.tsx:CategoryFilter |
ReadingProgress |
software | healthy | src/components/blog/ReadingProgress.tsx:ReadingProgress |
ShareButtons |
software | healthy | src/components/blog/ShareButtons.tsx:ShareButtons |
Comments |
software | healthy | src/components/blog/Comments.tsx:Comments |
Pagination |
software | healthy | src/components/blog/Pagination.tsx:Pagination |
pageUrl |
software | healthy | src/components/blog/Pagination.tsx:pageUrl |
TableOfContents |
software | healthy | src/components/blog/TableOfContents.tsx:TableOfContents |
TocList |
software | healthy | src/components/blog/TableOfContents.tsx:TocList |
RelatedPosts |
software | healthy | src/components/blog/RelatedPosts.tsx:RelatedPosts |
PostCard |
software | healthy | src/components/blog/PostCard.tsx:PostCard |
Newsletter |
software | healthy | src/components/blog/Newsletter.tsx:Newsletter |
handleSubmit |
software | healthy | src/components/blog/Newsletter.tsx:handleSubmit |
SearchBar |
software | healthy | src/components/blog/SearchBar.tsx:SearchBar |
GoogleAnalytics |
software | healthy | src/components/analytics/GoogleAnalytics.tsx:GoogleAnalytics |
gtag |
software | healthy | src/components/analytics/GoogleAnalytics.tsx:gtag |
GoogleAdSense |
software | healthy | src/components/analytics/GoogleAdSense.tsx:GoogleAdSense |
ProjectCard |
software | healthy | src/components/projects/ProjectCard.tsx:ProjectCard |
PageTransition |
software | healthy | src/components/ui/PageTransition.tsx:PageTransition |
generateSlug |
software | healthy | src/components/mdx/MdxComponents.tsx:generateSlug |
extractText |
software | healthy | src/components/mdx/MdxComponents.tsx:extractText |
createSlugCounter |
software | healthy | src/components/mdx/MdxComponents.tsx:createSlugCounter |
CodeBlock |
software | healthy | src/components/mdx/MdxComponents.tsx:CodeBlock |
createMdxComponents |
software | healthy | src/components/mdx/MdxComponents.tsx:createMdxComponents |
CopyButton |
software | healthy | src/components/mdx/CopyButton.tsx:CopyButton |
robots |
software | healthy | src/app/robots.ts:robots |
AppleIcon |
software | healthy | src/app/apple-icon.tsx:AppleIcon |
manifest |
software | healthy | src/app/manifest.ts:manifest |
sitemap |
software | healthy | src/app/sitemap.ts:sitemap |
RootError |
software | healthy | src/app/error.tsx:RootError |
KeystaticNotFound |
software | healthy | src/app/keystatic/not-found.tsx:KeystaticNotFound |
KeystaticLayout |
software | healthy | src/app/keystatic/layout.tsx:KeystaticLayout |
TranslationBanner |
software | healthy | src/app/keystatic/[[...params]]/page.tsx:TranslationBanner |
KeystaticPage |
software | healthy | src/app/keystatic/[[...params]]/page.tsx:KeystaticPage |
notFound |
software | healthy | src/app/api/keystatic/[...params]/route.ts:notFound |
GET |
software | healthy | src/app/api/keystatic/[...params]/route.ts:GET |
POST |
software | healthy | src/app/api/keystatic/[...params]/route.ts:POST |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
postcss.config.mjs |
software | healthy | postcss.config.mjs |
README.md |
software | healthy | README.md |
package.json |
software | healthy | package.json |
package-lock.json |
software | healthy | package-lock.json |
keystatic.config.ts |
software | healthy | keystatic.config.ts |
.env.example |
software | healthy | .env.example |
tsconfig.json |
software | healthy | tsconfig.json |
LICENSE |
software | healthy | LICENSE |
eslint.config.mjs |
software | healthy | eslint.config.mjs |
vitest.config.ts |
software | healthy | vitest.config.ts |
next.config.ts |
software | healthy | next.config.ts |
2026-03-06-keystatic-korean-ux.md |
software | healthy | docs/plans/2026-03-06-keystatic-korean-ux.md |
2026-02-25-i18n-blog-translation-design.md |
software | healthy | docs/plans/2026-02-25-i18n-blog-translation-design.md |
2026-02-23-portfolio-improvements.md |
software | healthy | docs/plans/2026-02-23-portfolio-improvements.md |
2026-03-07-portfolio-improvements.md |
software | healthy | docs/plans/2026-03-07-portfolio-improvements.md |
2026-02-25-i18n-blog-translation.md |
software | healthy | docs/plans/2026-02-25-i18n-blog-translation.md |
2026-02-23-portfolio-improvements-design.md |
software | healthy | docs/plans/2026-02-23-portfolio-improvements-design.md |
2026-03-15-explore-rpg-implementation.md |
software | healthy | docs/plans/2026-03-15-explore-rpg-implementation.md |
2026-06-02-portfolio-projects-update-design.md |
software | healthy | docs/plans/2026-06-02-portfolio-projects-update-design.md |
2026-03-08-keystatic-singletons-design.md |
software | healthy | docs/plans/2026-03-08-keystatic-singletons-design.md |
2026-03-06-keystatic-korean-ux-design.md |
software | healthy | docs/plans/2026-03-06-keystatic-korean-ux-design.md |
2026-02-20-portfolio-implementation.md |
software | healthy | docs/plans/2026-02-20-portfolio-implementation.md |
2026-03-15-explore-rpg-design.md |
software | healthy | docs/plans/2026-03-15-explore-rpg-design.md |
2026-03-23-three-js-showcase-design.md |
software | healthy | docs/plans/2026-03-23-three-js-showcase-design.md |
2026-02-20-portfolio-redesign-design.md |
software | healthy | docs/plans/2026-02-20-portfolio-redesign-design.md |
2026-03-23-three-js-showcase-plan.md |
software | healthy | docs/plans/2026-03-23-three-js-showcase-plan.md |
2026-03-08-keystatic-singletons.md |
software | healthy | docs/plans/2026-03-08-keystatic-singletons.md |
untranslated.ts |
software | healthy | scripts/untranslated.ts |
ko.json |
software | healthy | messages/ko.json |
en.json |
software | healthy | messages/en.json |
settings.json |
software | healthy | .claude/settings.json |
settings.local.json |
software | healthy | .claude/settings.local.json |
categories.json |
software | healthy | content/categories.json |
about.json |
software | healthy | content/about.json |
projects.json |
software | healthy | content/projects.json |
proxy.ts |
software | healthy | src/proxy.ts |
content.ts |
software | healthy | src/types/content.ts |
routing.ts |
software | healthy | src/i18n/routing.ts |
request.ts |
software | healthy | src/i18n/request.ts |
navigation.ts |
software | healthy | src/i18n/navigation.ts |
layout-chrome-rules.ts |
software | healthy | src/components/layout/layout-chrome-rules.ts |
Footer.tsx |
software | healthy | src/components/layout/Footer.tsx |
LanguageToggle.tsx |
software | healthy | src/components/layout/LanguageToggle.tsx |
ThemeToggle.tsx |
software | healthy | src/components/layout/ThemeToggle.tsx |
Header.tsx |
software | healthy | src/components/layout/Header.tsx |
LayoutChrome.test.tsx |
software | healthy | src/components/layout/__tests__/LayoutChrome.test.tsx |
CategoryFilter.tsx |
software | healthy | src/components/blog/CategoryFilter.tsx |
ReadingProgress.tsx |
software | healthy | src/components/blog/ReadingProgress.tsx |
ShareButtons.tsx |
software | healthy | src/components/blog/ShareButtons.tsx |
Comments.tsx |
software | healthy | src/components/blog/Comments.tsx |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
docs |
software | healthy | docs |
plans |
software | healthy | docs/plans |
scripts |
software | healthy | scripts |
messages |
software | healthy | messages |
.claude |
software | healthy | .claude |
content |
software | healthy | content |
src |
software | healthy | src |
types |
software | healthy | src/types |
i18n |
software | healthy | src/i18n |
components |
software | healthy | src/components |
layout |
software | healthy | src/components/layout |
__tests__ |
software | healthy | src/components/layout/__tests__ |
blog |
software | healthy | src/components/blog |
analytics |
software | healthy | src/components/analytics |
projects |
software | healthy | src/components/projects |
ui |
software | healthy | src/components/ui |
mdx |
software | healthy | src/components/mdx |
app |
software | healthy | src/app |
keystatic |
software | healthy | src/app/keystatic |
[[...params]] |
software | healthy | src/app/keystatic/[[...params]] |
api |
software | healthy | src/app/api |
keystatic |
software | healthy | src/app/api/keystatic |
[...params] |
software | healthy | src/app/api/keystatic/[...params] |
content-image |
software | healthy | src/app/api/content-image |
[...path] |
software | healthy | src/app/api/content-image/[...path] |
og |
software | healthy | src/app/api/og |
llms-full.txt |
software | healthy | src/app/llms-full.txt |
feed.xml |
software | healthy | src/app/feed.xml |
ads.txt |
software | healthy | src/app/ads.txt |
[locale] |
software | healthy | src/app/[locale] |
about |
software | healthy | src/app/[locale]/about |
blog |
software | healthy | src/app/[locale]/blog |
[slug] |
software | healthy | src/app/[locale]/blog/[slug] |
play |
software | healthy | src/app/[locale]/play |
ui |
software | healthy | src/app/[locale]/play/ui |
components |
software | healthy | src/app/[locale]/play/components |
sections |
software | healthy | src/app/[locale]/play/sections |
scene |
software | healthy | src/app/[locale]/play/scene |
projects |
software | healthy | src/app/[locale]/projects |
llms.txt |
software | healthy | src/app/llms.txt |
lib |
software | healthy | src/lib |
__tests__ |
software | healthy | src/lib/__tests__ |
hooks |
software | healthy | src/hooks |
| Label | Layer | Status | Path |
|---|---|---|---|
AppleIcon |
frontend | healthy | src/app/apple-icon.tsx |
RootError |
frontend | healthy | src/app/error.tsx |
KeystaticNotFound |
frontend | healthy | src/app/keystatic/not-found.tsx |
KeystaticLayout |
frontend | healthy | src/app/keystatic/layout.tsx |
KeystaticPage |
frontend | healthy | src/app/keystatic/[[...params]]/page.tsx |
NotFound |
frontend | healthy | src/app/[locale]/not-found.tsx |
Loading |
frontend | healthy | src/app/[locale]/loading.tsx |
Error |
frontend | healthy | src/app/[locale]/error.tsx |
BlogLoading |
frontend | healthy | src/app/[locale]/blog/loading.tsx |
PostLoading |
frontend | healthy | src/app/[locale]/blog/[slug]/loading.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
/keystatic/[[...params]] |
frontend | healthy | src/app/keystatic/[[...params]]/page.tsx |
/[locale] |
frontend | healthy | src/app/[locale]/page.tsx |
/[locale]/about |
frontend | healthy | src/app/[locale]/about/page.tsx |
/[locale]/blog |
frontend | healthy | src/app/[locale]/blog/page.tsx |
/[locale]/blog/[slug] |
frontend | healthy | src/app/[locale]/blog/[slug]/page.tsx |
/[locale]/play |
frontend | healthy | src/app/[locale]/play/page.tsx |
/[locale]/projects |
frontend | healthy | src/app/[locale]/projects/page.tsx |
| Label | Layer | Status | Path |
|---|---|---|---|
postgresql |
data | healthy | content/about.json |
redis |
data | healthy | content/about.json |
sqlite |
data | healthy | content/projects.json |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-vbcl_x3w |
software | healthy | /tmp/repobility-clone-vbcl_x3w |
| Label | Layer | Status | Path |
|---|---|---|---|
SceneErrorBoundary |
software | healthy | src/app/[locale]/play/PlayLoader.tsx:SceneErrorBoundary |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::src/lib/keystatic-access.ts |
security | healthy | src/lib/keystatic-access.ts |
This page is publicly accessible at:
https://repobility.com/scan/12e8c8e9-5176-4016-971e-f9b6d2cec736/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/12e8c8e9-5176-4016-971e-f9b6d2cec736/
Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.