{"id":27315225,"url":"https://github.com/ericblue/modern-start-page","last_synced_at":"2025-04-12T08:03:20.504Z","repository":{"id":286487632,"uuid":"961127668","full_name":"ericblue/modern-start-page","owner":"ericblue","description":"Modern, self-hosted startpage with app launcher, bookmarks, and theme customization. Built with Astro and React.","archived":false,"fork":false,"pushed_at":"2025-04-06T19:33:37.000Z","size":1780,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-06T19:34:39.589Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","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/ericblue.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}},"created_at":"2025-04-05T20:12:22.000Z","updated_at":"2025-04-06T19:33:40.000Z","dependencies_parsed_at":"2025-04-06T19:44:50.563Z","dependency_job_id":null,"html_url":"https://github.com/ericblue/modern-start-page","commit_stats":null,"previous_names":["ericblue/modern-start-page"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericblue%2Fmodern-start-page","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericblue%2Fmodern-start-page/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericblue%2Fmodern-start-page/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ericblue%2Fmodern-start-page/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ericblue","download_url":"https://codeload.github.com/ericblue/modern-start-page/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248537142,"owners_count":21120709,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":[],"created_at":"2025-04-12T08:01:11.944Z","updated_at":"2025-04-12T08:03:20.496Z","avatar_url":"https://github.com/ericblue.png","language":"TypeScript","funding_links":[],"categories":["Projects"],"sub_categories":["Hosted"],"readme":"# Modern Start Page\n\nA modern, customizable browser start page built with Astro and React. Features a clean UI, multiple search engines, theme switching, and persistent configuration. Perfect for self-hosted server dashboards and new tab pages.\n\n![Modern Start Page Preview](public/msp-preview.png)\n\n\u003e **Note:** This project was heavily influenced by [SUI](https://github.com/jeroenpardon/sui), a start page that served as my daily driver for many years. After 5-6 years since its last update, I decided to modernize the concept with current web technologies while maintaining its core functionality and simplicity.\n\n## Features\n\n- 🎨 Multiple pre-defined themes with easy customization\n- 🔍 Support for multiple search engines\n- 📱 Responsive design that works on all devices\n- 📦 Simple JSON-based configuration\n- 🐳 Easy Docker deployment\n- 🔄 Persistent configuration with file-based storage\n- 🎯 Clean, modern UI with Lucide icons\n- ⚡ Fast and lightweight\n- 🌤️ Widget support (Weather, Clock, and more to come)\n\n## Getting Started\n\n### Prerequisites\n\n- Node.js (v18 or higher)\n- npm or yarn\n- OpenWeather API key (for weather widget)\n\n### Installation\n\n1. Clone the repository:\n```bash\ngit clone https://github.com/ericblue/modern-start-page.git\ncd modern-start-page\n```\n\n2. Install dependencies:\n```bash\nnpm install\n```\n\n3. Create a `.env` file based on `.env.example` and add your OpenWeather API key:\n```bash\ncp .env.example .env\n# Edit .env and add your OpenWeather API key\n```\n\n4. Start the development server:\n```bash\nnpm run dev\n```\n\n5. Build for production:\n```bash\nnpm run build\n```\n\n## Configuration\n\nThe application uses a simple JSON file storage system for configuration. Here's the default configuration structure:\n\n```json\n{\n  \"contexts\": [\n    {\n      \"id\": \"default\",\n      \"name\": \"Default\",\n      \"categories\": [\n        {\n          \"name\": \"Development\",\n          \"displayMode\": \"icon\",\n          \"links\": [\n            {\n              \"name\": \"GitHub\",\n              \"url\": \"https://github.com\",\n              \"icon\": \"github\"\n            },\n            {\n              \"name\": \"GitLab\",\n              \"url\": \"https://gitlab.com\",\n              \"icon\": \"gitlab\"\n            }\n          ]\n        },\n        {\n          \"name\": \"Social\",\n          \"displayMode\": \"icon\",\n          \"links\": [\n            {\n              \"name\": \"Twitter\",\n              \"url\": \"https://twitter.com\",\n              \"icon\": \"twitter\"\n            },\n            {\n              \"name\": \"Reddit\",\n              \"url\": \"https://reddit.com\",\n              \"icon\": \"reddit\"\n            }\n          ]\n        }\n      ]\n    }\n  ],\n  \"activeContext\": \"default\",\n  \"theme\": \"dark\",\n  \"gridColumns\": 4,\n  \"displayMode\": \"icon\",\n  \"showCategoryBorders\": true,\n  \"widgets\": {\n    \"weather\": {\n      \"enabled\": true,\n      \"useCelsius\": false\n    },\n    \"clock\": {\n      \"enabled\": true,\n      \"showSeconds\": true\n    }\n  }\n}\n```\n\n### Widgets\n\nThe start page includes several widgets that can be enabled/disabled and customized:\n\n- **Weather Widget**: Shows current weather conditions based on your location\n  - Requires an OpenWeather API key\n  - Can toggle between Celsius and Fahrenheit\n  - Automatically detects your location\n\n- **Clock Widget**: Displays the current time\n  - Can show/hide seconds\n  - Updates in real-time\n\nWidget settings can be configured through the settings modal, where you can:\n- Enable/disable individual widgets\n- Configure widget-specific settings\n- Customize the appearance and behavior\n\n### Customization Options\n\n- Theme selection (Dark/Light)\n- Layout customization (grid columns, display mode)\n- Quick links management with icons\n- Search engine preferences\n- Multiple contexts for different use cases\n- Category-based organization\n\n## Docker Support\n\nThe application can be run in a Docker container:\n\n```bash\n# Build the image\ndocker build -t modern-start-page:latest .\n\n# Run the container\ndocker run -p 4000:4000 modern-start-page:latest\n```\n\n## Setting as Default Home Page\n\n### Google Chrome\n1. Click the three-dot menu (⋮) in the top-right corner\n2. Go to Settings\n3. Under \"On startup\", select \"Open a specific page or set of pages\"\n4. Click \"Add a new page\"\n5. Enter your Modern Start Page URL (e.g., `http://localhost:4000` or your deployed URL)\n6. Click \"Add\"\n\n### Mozilla Firefox\n1. Click the three-line menu (☰) in the top-right corner\n2. Go to Settings\n3. Under \"Home\" section, find \"Homepage and new windows\"\n4. Select \"Custom URLs...\"\n5. Enter your Modern Start Page URL (e.g., `http://localhost:4000` or your deployed URL)\n6. Click \"Save\"\n\n### Safari\n1. Click Safari in the menu bar\n2. Go to Settings (or Preferences)\n3. Select the \"General\" tab\n4. In the \"Homepage\" field, enter your Modern Start Page URL (e.g., `http://localhost:4000` or your deployed URL)\n5. Close the settings window\n\n\u003e **Note:** If you're running Modern Start Page locally, make sure to use the correct port number (default is 4000). For production deployments, use your deployed URL.\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request.\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Author\n\nCreated by Eric Blue (https://ericblue.com)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fericblue%2Fmodern-start-page","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fericblue%2Fmodern-start-page","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fericblue%2Fmodern-start-page/lists"}