How picakhant/aster-dev works
This is a Next.js personal portfolio: visitors browse the profile, GitHub-backed projects, Markdown blog posts, and contact options. The main dynamic workflows fetch project or blog data from GitHub, present listings, and render selected repository README or post content. Configuration supplies site and refresh settings. The graph follows documented behavior and indexed imports; unsampled component internals are represented by their enclosing directories, so their internal interactions are not inferred.
Main entry points: [slug]/page.tsx Project detail · [slug]/page.tsx Blog detail · projects/page.tsx Project listing · blog/page.tsx Blog listing
Components 20
Portfolio experience
- Home profile
app/page.tsx - Profile sections
components/home - Contact page
app/contact/page.tsx - Contact cards
components/contact - Navigation
components/layout/Navbar.tsx - Site configuration
site.config.ts
Projects
- Project listing
app/projects/page.tsx - Project cards
components/projects/ProjectGrid.tsx - Project card
components/projects/ProjectCard.tsx - Project detail
app/projects/[slug]/page.tsx - GitHub project data
lib/github.ts
Blog publishing
- Blog listing
app/blog/page.tsx - Blog cards
components/blog/BlogGrid.tsx - Blog card
components/blog/BlogCard.tsx - Blog detail
app/blog/[slug]/page.tsx - Blog fetching
lib/blog.ts
Shared presentation
- Markdown renderer
components/projects/Markdown.tsx - Shared UI
components/ui
Other components
- Visitor
- GitHub
Connections 25
- Visitor → Home profile: opens
README.md - Home profile → Profile sections: renders
app/page.tsx - Visitor → Project listing: opens
README.md - Project listing → GitHub project data: loads repositories
app/projects/page.tsx - Project listing → Project cards: renders
app/projects/page.tsx - Project cards → Project card: renders cards
components/projects/ProjectGrid.tsx - Project card → Project detail: links overview
components/projects/ProjectCard.tsx - Visitor → Project detail: opens
README.md - Project detail → GitHub project data: loads project and README
app/projects/[slug]/page.tsx - Project detail → Markdown renderer: renders README
app/projects/[slug]/page.tsx - GitHub project data → GitHub: fetches repositories
lib/github.ts - Visitor → Blog listing: opens
README.md - Blog listing → Blog fetching: loads posts
app/blog/page.tsx - Blog listing → Blog cards: renders
app/blog/page.tsx - Blog cards → Blog card: renders cards
components/blog/BlogGrid.tsx - Blog card → Blog detail: links post
components/blog/BlogCard.tsx - Visitor → Blog detail: opens
README.md - Blog detail → Blog fetching: loads post content
app/blog/[slug]/page.tsx - Blog detail → Markdown renderer: renders post
app/blog/[slug]/page.tsx - Blog fetching → GitHub: fetches Markdown
lib/blog.ts - Visitor → Contact page: opens
README.md - Contact page → Contact cards: renders cards
app/contact/page.tsx - Navigation → Site configuration: reads links
components/layout/Navbar.tsx - Navigation → Shared UI: uses theme toggle
components/layout/Navbar.tsx - Profile sections → Site configuration: reads profile content
components/home/Hero.tsx