# itnproject/minimalist-homepage-be architecture

> Architecture diagram of the GitHub repository itnproject/minimalist-homepage-be, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/itnproject/minimalist-homepage-be
- Repository: https://github.com/itnproject/minimalist-homepage-be

## Overview

Minimalist-Homepage-BE is a browser-extension homepage offering search, navigation, personalization, and installable extensions. The main workflow is user interaction with the homepage, which reads settings, selects a search engine or shortcut, and renders the chosen experience. The README also documents classic and modern layouts, themes, backgrounds, date/time, quotes, engine switching, and a replacement context menu. The sampled source supports storage, extension persistence, quote fetching, and extension-code dispatch; other feature wiring is represented only where the README or tree supports it.

Main entry points: [`Minimalist.js`](https://github.com/itnproject/minimalist-homepage-be/blob/main/Minimalist.js) (Homepage behavior), [`background.js`](https://github.com/itnproject/minimalist-homepage-be/blob/main/background.js) (Background message handler), [`storage.js`](https://github.com/itnproject/minimalist-homepage-be/blob/main/storage.js) (Storage utilities), [`index.html`](https://github.com/itnproject/minimalist-homepage-be/blob/main/index.html) (Homepage UI)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_home["Homepage experience"]
  node_homepage["Homepage UI<br/>[index.html]"]
  node_home_logic["Homepage behavior<br/>[Minimalist.js]"]
  node_search["Search engines<br/>[Minimalist.js]"]
  node_quick_nav["Quick navigation<br/>[Minimalist.js]"]
  node_appearance["Themes and background<br/>[Minimalist.js]"]
  node_date_quote["Date and quotes<br/>[Minimalist.js]"]
  node_context_menu["Context menu<br/>[Minimalist.js]"]
  node_search_provider["Search providers"]
end

subgraph group_settings["Preferences and storage"]
  node_settings_ui["Settings UI<br/>[Minimalist.js]"]
  node_storage_api["Storage utilities<br/>[storage.js]"]
  node_browser_storage[("Browser local storage")]
end

subgraph group_extensions["Extension system"]
  node_extension_store[("Extension archive<br/>[Minimalist.js]")]
  node_extension_manager["Extension management<br/>[Minimalist.js]"]
  node_sandbox["Extension sandbox<br/>[sandbox.js]"]
end

subgraph group_runtime["Browser runtime"]
  node_background["Background message handler<br/>[background.js]"]
  node_content["Content script injector<br/>[content.js]"]
  node_quote_service["Quote service"]
end

node_user(("User"))

node_user -->|"opens and uses"| node_homepage
node_homepage -->|"loads behavior"| node_home_logic
node_home_logic -->|"reads settings"| node_storage_api
node_settings_ui -->|"saves preferences"| node_storage_api
node_storage_api -->|"reads and writes"| node_browser_storage
node_home_logic -->|"handles queries"| node_search
node_search -->|"opens search"| node_search_provider
node_home_logic -->|"renders shortcuts"| node_quick_nav
node_home_logic -->|"applies preferences"| node_appearance
node_home_logic -->|"renders date and quote"| node_date_quote
node_home_logic -->|"handles right-click"| node_context_menu
node_date_quote -->|"requests quote"| node_background
node_background -->|"fetches quote"| node_quote_service
node_home_logic -->|"manages extensions"| node_extension_manager
node_extension_manager -->|"saves and loads"| node_extension_store
node_extension_manager -->|"requests code dispatch"| node_background
node_background -->|"forwards code"| node_content
node_content -->|"injects extension code"| node_sandbox

click node_homepage "https://github.com/itnproject/minimalist-homepage-be/blob/main/index.html"
click node_home_logic "https://github.com/itnproject/minimalist-homepage-be/blob/main/Minimalist.js"
click node_search "https://github.com/itnproject/minimalist-homepage-be/blob/main/Minimalist.js"
click node_quick_nav "https://github.com/itnproject/minimalist-homepage-be/blob/main/Minimalist.js"
click node_appearance "https://github.com/itnproject/minimalist-homepage-be/blob/main/Minimalist.js"
click node_date_quote "https://github.com/itnproject/minimalist-homepage-be/blob/main/Minimalist.js"
click node_context_menu "https://github.com/itnproject/minimalist-homepage-be/blob/main/Minimalist.js"
click node_settings_ui "https://github.com/itnproject/minimalist-homepage-be/blob/main/Minimalist.js"
click node_storage_api "https://github.com/itnproject/minimalist-homepage-be/blob/main/storage.js"
click node_extension_store "https://github.com/itnproject/minimalist-homepage-be/blob/main/Minimalist.js"
click node_extension_manager "https://github.com/itnproject/minimalist-homepage-be/blob/main/Minimalist.js"
click node_sandbox "https://github.com/itnproject/minimalist-homepage-be/blob/main/sandbox.js"
click node_background "https://github.com/itnproject/minimalist-homepage-be/blob/main/background.js"
click node_content "https://github.com/itnproject/minimalist-homepage-be/blob/main/content.js"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_homepage,node_home_logic,node_search,node_quick_nav,node_appearance,node_date_quote,node_context_menu,node_search_provider,node_user toneBlue
class node_settings_ui,node_storage_api,node_browser_storage toneAmber
class node_extension_store,node_extension_manager,node_sandbox toneMint
class node_background,node_content,node_quote_service toneRose
```

## Components

### Homepage experience

- [Homepage UI](https://github.com/itnproject/minimalist-homepage-be/blob/main/index.html): `index.html`
- [Homepage behavior](https://github.com/itnproject/minimalist-homepage-be/blob/main/Minimalist.js): `Minimalist.js`
- [Search engines](https://github.com/itnproject/minimalist-homepage-be/blob/main/Minimalist.js): `Minimalist.js`
- [Quick navigation](https://github.com/itnproject/minimalist-homepage-be/blob/main/Minimalist.js): `Minimalist.js`
- [Themes and background](https://github.com/itnproject/minimalist-homepage-be/blob/main/Minimalist.js): `Minimalist.js`
- [Date and quotes](https://github.com/itnproject/minimalist-homepage-be/blob/main/Minimalist.js): `Minimalist.js`
- [Context menu](https://github.com/itnproject/minimalist-homepage-be/blob/main/Minimalist.js): `Minimalist.js`
- **Search providers**

### Preferences and storage

- [Settings UI](https://github.com/itnproject/minimalist-homepage-be/blob/main/Minimalist.js): `Minimalist.js`
- [Storage utilities](https://github.com/itnproject/minimalist-homepage-be/blob/main/storage.js): `storage.js`
- **Browser local storage**

### Extension system

- [Extension archive](https://github.com/itnproject/minimalist-homepage-be/blob/main/Minimalist.js): `Minimalist.js`
- [Extension management](https://github.com/itnproject/minimalist-homepage-be/blob/main/Minimalist.js): `Minimalist.js`
- [Extension sandbox](https://github.com/itnproject/minimalist-homepage-be/blob/main/sandbox.js): `sandbox.js`

### Browser runtime

- [Background message handler](https://github.com/itnproject/minimalist-homepage-be/blob/main/background.js): `background.js`
- [Content script injector](https://github.com/itnproject/minimalist-homepage-be/blob/main/content.js): `content.js`
- **Quote service**

### Other components

- **User**

## Connections

- User → Homepage UI: opens and uses
- Homepage UI → Homepage behavior: loads behavior
- Homepage behavior → Storage utilities: reads settings
- Settings UI → Storage utilities: saves preferences
- Storage utilities → Browser local storage: reads and writes
- Homepage behavior → Search engines: handles queries
- Search engines → Search providers: opens search
- Homepage behavior → Quick navigation: renders shortcuts
- Homepage behavior → Themes and background: applies preferences
- Homepage behavior → Date and quotes: renders date and quote
- Homepage behavior → Context menu: handles right-click
- Date and quotes → Background message handler: requests quote
- Background message handler → Quote service: fetches quote
- Homepage behavior → Extension management: manages extensions
- Extension management → Extension archive: saves and loads
- Extension management → Background message handler: requests code dispatch
- Background message handler → Content script injector: forwards code
- Content script injector → Extension sandbox: injects extension code
