{"id":40897728,"url":"https://github.com/alexey-lapin/spring-boot-startup-analyzer","last_synced_at":"2026-01-22T02:25:36.009Z","repository":{"id":107099488,"uuid":"379690624","full_name":"alexey-lapin/spring-boot-startup-analyzer","owner":"alexey-lapin","description":"Spring Boot startup (actuator endpoint) analyzer","archived":false,"fork":false,"pushed_at":"2026-01-19T06:47:19.000Z","size":3092,"stargazers_count":37,"open_issues_count":12,"forks_count":4,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-01-19T15:05:11.669Z","etag":null,"topics":["actuator","spring","spring-boot","startup"],"latest_commit_sha":null,"homepage":"https://alexey-lapin.github.io/spring-boot-startup-analyzer/","language":"Vue","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/alexey-lapin.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-06-23T18:06:21.000Z","updated_at":"2026-01-14T06:29:44.000Z","dependencies_parsed_at":"2025-12-15T15:04:50.122Z","dependency_job_id":null,"html_url":"https://github.com/alexey-lapin/spring-boot-startup-analyzer","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"purl":"pkg:github/alexey-lapin/spring-boot-startup-analyzer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexey-lapin%2Fspring-boot-startup-analyzer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexey-lapin%2Fspring-boot-startup-analyzer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexey-lapin%2Fspring-boot-startup-analyzer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexey-lapin%2Fspring-boot-startup-analyzer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alexey-lapin","download_url":"https://codeload.github.com/alexey-lapin/spring-boot-startup-analyzer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alexey-lapin%2Fspring-boot-startup-analyzer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28651457,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T01:17:37.254Z","status":"online","status_checked_at":"2026-01-22T02:00:07.137Z","response_time":144,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["actuator","spring","spring-boot","startup"],"created_at":"2026-01-22T02:25:35.903Z","updated_at":"2026-01-22T02:25:36.002Z","avatar_url":"https://github.com/alexey-lapin.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://alexey-lapin.github.io/spring-boot-startup-analyzer/\"\u003e\n        \u003cimg src=\"public/logo.svg\" width=\"200\" alt=\"Spring Boot Startup Analyzer Logo\"\u003e\n    \u003c/a\u003e\n\u003c/p\u003e\n\u003ch3 align=\"center\"\u003espring-boot-startup-analyzer\u003c/h3\u003e\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/alexey-lapin/spring-boot-startup-analyzer/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/alexey-lapin/spring-boot-startup-analyzer?style=flat-square\" alt=\"Release\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/alexey-lapin/spring-boot-startup-analyzer/blob/master/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square\" alt=\"License\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://github.com/alexey-lapin/spring-boot-startup-analyzer/actions\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/alexey-lapin/spring-boot-startup-analyzer/main.yml?style=flat-square\" alt=\"Build Status\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nAnalyze Spring Boot Actuator `/actuator/startup` payloads directly in your browser. All data stays in your browser—no server uploads—while still offering rich visualizations and actionable insights.\n\n➡️ **Try it now:** https://alexey-lapin.github.io/spring-boot-startup-analyzer/\n\n## Features\n\n- **Summary view** with total duration, hotspot phases, bean bottlenecks, and key insights at a glance.\n- **Tree and table visualizations** for drilling into nested startup phases or scanning steps quickly.\n- **Flexible data loading:** paste JSON, upload files, call a live actuator endpoint, or load the bundled sample.\n- **Light and dark themes** with a modern, responsive interface.\n- **Offline parsing** in the browser—no backend component or data collection.\n\n## Quick Start\n\n1. Open the [web app](https://alexey-lapin.github.io/spring-boot-startup-analyzer/).\n2. Choose how to provide startup data:\n    - **Endpoint:** fetch data directly from `/actuator/startup` (configure CORS if calling a remote server).\n    - **File:** upload a saved JSON response.\n    - **Paste:** paste JSON directly into the text editor.\n    - **Sample:** click _Load sample data_ to explore instantly.\n3. Switch between the Summary, Tree, or Table tabs to explore the trace.\n\n\u003e ℹ️ Need CORS for remote URLs? See the Usage tab inside the app for Spring configuration snippets.\n\n## Local Development\n\n```bash\nnpm install\nnpm run dev\nnpm run test:unit\nnpm run build\n```\n\nPrerequisites: Node 20+ (or 22 LTS) and npm.\n\n## Docker Image\n\nImages are published to GitHub Container Registry (GHCR):\n\n```bash\ndocker run -d --name sbsa -p 8080:80 ghcr.io/alexey-lapin/spring-boot-startup-analyzer:latest\n```\n\nTo run behind a reverse proxy with a custom base path:\n\n```bash\ndocker run -d --name sbsa -p 8080:80 \\\n  -e UI_PUBLIC_PATH=/spring-boot-startup-analyzer \\\n  ghcr.io/alexey-lapin/spring-boot-startup-analyzer:latest\n```\n\n## For Maintainers\n\n**Deployment \u0026 Release:**\n- Tagged commits trigger GitHub Actions to build, type-check, and deploy to GitHub Pages.\n- Multi-arch Docker images are published to `ghcr.io/alexey-lapin/spring-boot-startup-analyzer`.\n- Releases are created automatically with generated notes.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexey-lapin%2Fspring-boot-startup-analyzer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falexey-lapin%2Fspring-boot-startup-analyzer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falexey-lapin%2Fspring-boot-startup-analyzer/lists"}