How drspgroup/dr-sushant-patil-group works
1. Overall shape
- This is a Next.js App Router site for the Dr. Sushant Patil Group, built as a mostly static, content-driven marketing/information website.
- The architecture is layered: route pages in src/app, page sections in src/sections, shared UI in src/components, and content/data in src/data.
2. Routing and page boundaries
- The main routes are:
- / home
- /about
- /entities
- /journey
- /news
- /team
- Each route has its own page.js under src/app/<route>/page.js, which acts as the composition boundary for that page.
- There is also not-found.js for missing routes, plus robots.js and sitemap.js for crawler/indexing support.
3. Page composition model
- Pages are not built from server/API data flows; instead, they are assembled from predefined section components.
- For example, the home page is likely composed from src/sections/home/*, while the about page uses src/sections/about/*.
- This indicates a presentation-first architecture where the route layer orchestrates sections, and the sections contain the actual UI/marketing content.
4. Content sources and data flow
- Structured content lives in src/data/:
- entities.js
- journey.js
- news.js
- team.js
- videoSeries.js
- These data modules are the main source of truth for repeatable content such as lists, timelines, cards, team profiles, and media series.
- The flow is generally: data module → section component → page route.
5. Home page subsystem
- src/sections/home/ contains the homepage’s major storytelling blocks:
- hero
- founder/leadership sections
- business/entity section
- Anuja-related content
- podcast/video-related content
- This page appears to be a curated landing experience with strong brand/leadership emphasis rather than a transactional homepage.
6. About, entities, journey, news, and team subsystems
- src/sections/about/ contains mission/values/ambition and patriarch/leadership-oriented sections.
- src/sections/entities/ handles business/entity listings and a hero banner for that page.
- src/sections/journey/ provides a hero plus timeline-style content, suggesting a historical or growth narrative.
- src/sections/news/ is structured as a hero plus grid, implying a content listing/press/newsroom page.
- src/sections/team/ contains a hero and team listing page, backed by team data.
7. Shared components and cross-cutting UI
- src/components/ contains reusable elements used across multiple routes:
- Navbar.js
- Footer.js
- shared utilities like ScrollToTop, ReadMore, and VideoModal
- These components form the stable chrome and behavior layer around the page-specific sections.
- The presence of VideoModal and ReadMore suggests interactive enhancement, but the site is still primarily static content.
8. Layout and global app shell
- src/app/layout.js defines the global shell that wraps all routes.
- src/app/globals.css is the central stylesheet entrypoint.
- The app uses Next.js font optimization through next/font per the README, and the project is configured with modern Next.js tooling such as next.config.mjs, PostCSS, and ESLint.
9. Static assets and media-heavy presentation
- The public/ directory holds most of the site’s heavy assets:
- hero video
- team imagery organized by entity/team folders
- news thumbnails
- event thumbnails
- additional images
- an Excel file for news links/titles
- This reinforces that the app is asset-driven and likely renders many image/video-rich sections without an external CMS in the repository.
10. SEO and crawlability
- The inclusion of robots.js and sitemap.js means the site is designed to be discoverable and indexable.
- This is important architecturally because it suggests the routes are intended as public marketing pages with search visibility, not just internal UI.
11. No visible backend or API layer
- There is no src/app/api directory, no database layer, and no service integration layer in the tree.
- That implies the site is frontend-only within this repository, with content embedded in code/data files and assets shipped from public/.
12. Likely runtime and deployment model
- The project is a standard Next.js application intended to run locally with npm run dev and deploy cleanly to Vercel.
- Because the content is static and route-based, it is well-suited to static generation or hybrid rendering, but the repo structure strongly suggests a mostly static marketing site rather than a dynamic app.
13. How to draw the architecture
- A clear diagram would show:
- Browser → Next.js route pages
- Route pages → section components
- Section components → shared components and data modules
- All UI → public assets
- The major boundaries are route-level pages, section-level content blocks, and shared cross-page UI/data.
14. Core takeaway
- This repository is a content-managed-in-code Next.js site with a modular section system, strong brand/storytelling focus, and a static asset pipeline.
- Its architecture is optimized for maintainability of marketing pages, not for backend-driven workflows or complex client-server interactions.
Main entry points: layout.js App Shell · data Content Data · public Static Assets · home Home Blocks
Components 22
App Router
Next.js route layer and global shell
- App Shell · Global wrapper for all routes
src/app/layout.js - Home Page · Entry route composition
src/app/page.js - About Page · About route composition
src/app/about/page.js - Entities Page · Entities route composition
src/app/entities/page.js - Journey Page · Journey route composition
src/app/journey/page.js - News Page · News route composition
src/app/news/page.js - Team Page · Team route composition
src/app/team/page.js - SEO Routes · robots and sitemap support
src/app/robots.js - 404 Page · Fallback route for missing pages
src/app/not-found.js
Page Sections
Route-specific content blocks composed into pages
- About Blocks · Mission, values, ambition, and leadership storytelling
src/sections/about - Home Blocks · Hero and brand/storytelling sections for the landing page
src/sections/home - Entity Blocks · Businesses hero and listings
src/sections/entities - Journey Blocks · Journey hero and timeline narrative
src/sections/journey - News Blocks · News hero and grid listing
src/sections/news - Team Blocks · Team hero and roster sections
src/sections/team - Shared Sections · Cross-page leadership and media sections
src/sections/shared
Shared UI
Reusable chrome and cross-page widgets
- Navbar · Primary navigation component
src/components/Navbar.js - Footer · Site-wide footer component
src/components/Footer.js - Shared Widgets · Scroll-to-top, read-more, and video modal behaviors
src/components/shared
Content & Assets
Structured data and static media sources
- Content Data · Entities, journey, news, team, and video series content
src/data - Static Assets · Images, video, and downloadable news sheet
public
Other components
- Browser · Visitor requests and views pages
Connections 30
- Browser → App Shell: requests · All visits enter through the app shell
- App Shell → Navbar: includes · Global chrome rendered across routes
- App Shell → Footer: includes · Global chrome rendered across routes
- App Shell → Home Page: wraps · Home route is rendered inside the shell
- App Shell → About Page: wraps · About route is rendered inside the shell
- App Shell → Entities Page: wraps · Entities route is rendered inside the shell
- App Shell → Journey Page: wraps · Journey route is rendered inside the shell
- App Shell → News Page: wraps · News route is rendered inside the shell
- App Shell → Team Page: wraps · Team route is rendered inside the shell
- Home Page → Home Blocks: composes · Home page assembles storytelling blocks
- Home Blocks → Shared Sections: reuses · Home page shares leadership and media modules
- About Page → About Blocks: composes · About page assembles mission and values content
- Entities Page → Entity Blocks: composes · Entities page assembles business listings
- Journey Page → Journey Blocks: composes · Journey page assembles the timeline narrative
- News Page → News Blocks: composes · News page assembles the newsroom grid
- Team Page → Team Blocks: composes · Team page assembles team listing content
- Shared Sections → Content Data: reads · Shared sections are driven by structured content
- Home Blocks → Content Data: reads · Home storytelling blocks use curated data
- Entity Blocks → Content Data: reads · Entity listings come from data modules
- Journey Blocks → Content Data: reads · Timeline content comes from journey data
- News Blocks → Content Data: reads · News cards are populated from data modules
- Team Blocks → Content Data: reads · Team roster uses team data
- Home Blocks → Static Assets: uses · Homepage media is served from public assets
- About Blocks → Static Assets: uses · About visuals and portraits come from public assets
- Entity Blocks → Static Assets: uses · Entity imagery is served from public assets
- News Blocks → Static Assets: uses · News thumbnails are served from public assets
- Team Blocks → Static Assets: uses · Team imagery is served from public assets
- Shared Widgets → Static Assets: uses · Video modal and media helpers depend on bundled assets
- SEO Routes → App Shell: supports · Metadata routes support the global app shell
- 404 Page → App Shell: uses · 404 page shares the same shell