{"id":26020942,"url":"https://github.com/zntb/nextjs-startpage","last_synced_at":"2026-04-12T07:36:30.567Z","repository":{"id":279573526,"uuid":"938849712","full_name":"zntb/nextjs-startpage","owner":"zntb","description":null,"archived":false,"fork":false,"pushed_at":"2025-07-16T07:18:47.000Z","size":7538,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-17T09:37:55.849Z","etag":null,"topics":["authjs","cloudinary","module-css","mongodb","nextjs","prisma","typescript"],"latest_commit_sha":null,"homepage":"https://nextjs-startpage.vercel.app","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/zntb.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":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-02-25T15:47:17.000Z","updated_at":"2025-07-16T07:18:18.000Z","dependencies_parsed_at":"2025-02-26T09:35:14.931Z","dependency_job_id":"c817a847-4df4-432a-8eb3-85dc4962f141","html_url":"https://github.com/zntb/nextjs-startpage","commit_stats":null,"previous_names":["zntb/nextjs-startpage"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/zntb/nextjs-startpage","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zntb%2Fnextjs-startpage","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zntb%2Fnextjs-startpage/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zntb%2Fnextjs-startpage/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zntb%2Fnextjs-startpage/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zntb","download_url":"https://codeload.github.com/zntb/nextjs-startpage/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zntb%2Fnextjs-startpage/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":267569621,"owners_count":24109114,"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","status":"online","status_checked_at":"2025-07-28T02:00:09.689Z","response_time":68,"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":["authjs","cloudinary","module-css","mongodb","nextjs","prisma","typescript"],"created_at":"2025-03-06T08:31:57.417Z","updated_at":"2026-04-12T07:36:25.541Z","avatar_url":"https://github.com/zntb.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Startpage - Personalized Dashboard with Next.js\n\n**Startpage** is a highly customizable and user-friendly dashboard built using Next.js. It offers a seamless experience for users to manage their favorite links, access live weather data, view the current time, and convert currencies—all in one place.\n\n![Main Image](./assets//images/main-image.png)\n\n## Features\n\n- User Authentication: Users can register and log in to save their personalized settings and lists.\n\n- Dynamic Categories: Five customizable dropdown categories that users can edit, reorder, and manage.\n\n- Live Weather Data: Displays real-time weather information based on the user's current location.\n\n- Clock: Shows the current time.\n\n- Currency Converter: Allows users to convert currencies on the fly.\n\n- Editable Lists: Users can add, edit, and delete links within each category.\n\n- Customizable backgrounds: Users can select their preferred background image and upload it to the database. The selected image is saved by the browser when you log out.\n\n- Persistent Data: All user data is stored in a database, ensuring that users can access their personalized dashboard from any device.\n\n- Footer Links: Useful links are available in the footer for quick access.\n\n### How It Works\n\n- Guest users: Unregistered users will get the default list of links and the default wallpaper.\n\n- Registered Users: Logged-in users can create and manage individual categories and lists, customize their wallpaper, and save their preferences.\n\n- Edit mode: Moving the mouse to the top right corner will bring up the \"Update DL\" and \"Update BG\" checkboxes, the former allowing users to edit their lists and categories, the latter to select images.\n\n### Technologies Used\n\n- Next.js: For server-side rendering and static site generation. [Nextjs Docs](https://nextjs.org/docs).\n\n- React: For building the user interface.\n\n- Auth.js: For user authentication and management. [Auth.js Docs](https://authjs.dev/getting-started/installation?framework=next-js).\n\n- Mongodb Database with Prisma ORM: To store user data and preferences.\n\n- Weather API: For fetching live weather data. [Openweather guide](https://openweathermap.org/guide)\n\n- Currency Conversion API: For real-time currency conversion.\n\n## Getting Started\n\n1. Clone the repository:\n\n```bash\ngit clone https://github.com/zntb/nextjs-startpage.git\n```\n\n2. Install dependencies:\n\n```bash\nnpm install\n```\n\n3. Set up environment variables for APIs and database connections.\n\n```env\n# MongoDB database connection string\nDATABASE_URL=\"your_database_url\"\n\n# OpenWeather API key\nWEATHER_API_KEY=\"your_weather_api_key\"\n# waqi.info API key\nAQI_API_KEY=\"your_aqi_api_key\"\n\nNEXT_PUBLIC_DEFAULT_LATITUDE=set your default latitude\nNEXT_PUBLIC_DEFAULT_LONGITUDE=set your default longitude\nNEXT_PUBLIC_DEFAULT_LANGUAGE=set your default language\n\n# Auth.js\nAUTH_URL=\"http://localhost:3000\" # or your production URL\nAUTH_SECRET=\"your_auth_secret_key\"\nAUTH_GOOGLE_ID=\"your_google_client_id\"\nAUTH_GOOGLE_SECRET=\"your_google_client_secret\"\n\n# user\nNEXT_PUBLIC_USER=\"your_github_username\"\n\n# exchangerate-api.com API key\nNEXT_PUBLIC_EXCHANGE_API_KEY=\"your_exchange_api_key\"\n```\n\n4. Run the development server:\n\n```bash\nnpm run dev\n```\n\n### Contribution\n\nFeel free to fork the project, open issues, and submit pull requests. Any contributions you make are greatly appreciated.\n\n### License\n\nThis project is licensed under the MIT License. See the [LICENSE](./LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzntb%2Fnextjs-startpage","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzntb%2Fnextjs-startpage","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzntb%2Fnextjs-startpage/lists"}