{"id":31130986,"url":"https://github.com/ivanms1/cautious-waffle","last_synced_at":"2025-09-18T03:11:09.402Z","repository":{"id":305145968,"uuid":"1022055377","full_name":"ivanms1/cautious-waffle","owner":"ivanms1","description":null,"archived":false,"fork":false,"pushed_at":"2025-07-18T11:52:41.000Z","size":110,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-18T15:51:13.405Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"CSS","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ivanms1.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2025-07-18T11:29:36.000Z","updated_at":"2025-07-18T11:51:38.000Z","dependencies_parsed_at":"2025-07-18T15:54:15.771Z","dependency_job_id":"5b5bc6cd-4a96-4536-9e35-8d3656c42516","html_url":"https://github.com/ivanms1/cautious-waffle","commit_stats":null,"previous_names":["ivanms1/cautious-waffle"],"tags_count":null,"template":false,"template_full_name":"ivanms1/next-js-template","purl":"pkg:github/ivanms1/cautious-waffle","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivanms1%2Fcautious-waffle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivanms1%2Fcautious-waffle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivanms1%2Fcautious-waffle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivanms1%2Fcautious-waffle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ivanms1","download_url":"https://codeload.github.com/ivanms1/cautious-waffle/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ivanms1%2Fcautious-waffle/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275701115,"owners_count":25512264,"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-09-18T02:00:09.552Z","response_time":77,"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":[],"created_at":"2025-09-18T03:11:08.088Z","updated_at":"2025-09-18T03:11:09.393Z","avatar_url":"https://github.com/ivanms1.png","language":"CSS","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Next.js Template\n\nA modern, production-ready Next.js template with TypeScript, comprehensive tooling, and developer experience optimizations.\n\n## ✨ Features\n\n- **⚡ Next.js 15** - Latest version with App Router support\n- **🔷 TypeScript** - Full type safety and IntelliSense\n- **🎨 Sass/SCSS** - Advanced styling with CSS Modules support\n- **🔧 ESLint** - Code linting with Next.js and TypeScript rules\n- **💅 Prettier** - Code formatting\n- **🔒 Pre-commit hooks** - Automated code quality checks\n- **📦 Dependabot** - Automated dependency updates\n- **🖼️ SVG support** - Import SVGs as React components\n- **📱 Responsive** - Mobile-first design approach\n- **🛠️ Path aliases** - Clean imports with `@/` prefix\n\n## 🚀 Quick Start\n\n### Prerequisites\n\n- Node.js 20.19.0+\n- Yarn (recommended) or npm\n\n### Installation\n\n1. **Clone the template**\n\n   ```bash\n   git clone \u003cyour-repo-url\u003e\n   cd next-js-template\n   ```\n\n2. **Install dependencies**\n\n   ```bash\n   yarn install\n   # or\n   npm install\n   ```\n\n3. **Start development server**\n\n   ```bash\n   yarn dev\n   # or\n   npm run dev\n   ```\n\n4. **Open your browser**\n   Navigate to [http://localhost:3000](http://localhost:3000)\n\n## 📁 Project Structure\n\n```\nnext-js-template/\n├── pages/                 # Next.js pages (legacy Pages Router)\n│   ├── _app.tsx          # App wrapper\n│   ├── index.tsx         # Home page\n│   ├── globals.scss      # Global styles\n│   └── api/              # API routes\n├── src/\n│   ├── components/       # Reusable components\n│   │   └── Button/      # Component folder structure\n│   └── pages/           # Page components\n├── public/              # Static assets\n├── templates/           # Plop.js templates\n├── plopfile.js         # Component/page generators\n└── next.config.js      # Next.js configuration\n```\n\n## 🛠️ Development Tools\n\n### Code Generation\n\nGenerate components and pages quickly with Plop.js:\n\n```bash\n# Generate a component\nyarn plop component\n\n# Generate a page\nyarn plop page\n```\n\n### Code Quality\n\nThe template includes automated code quality checks:\n\n- **ESLint** - JavaScript/TypeScript linting\n- **Prettier** - Code formatting\n- **Stylelint** - CSS/SCSS linting\n- **Husky** - Git hooks for pre-commit checks\n\n### Available Scripts\n\n```bash\n# Development\nyarn dev          # Start development server\nyarn build        # Build for production\nyarn start        # Start production server\n\n# Code Quality\nyarn lint         # Run ESLint\nyarn lint:fix     # Fix ESLint issues\nyarn format       # Format code with Prettier\nyarn stylelint    # Run Stylelint\nyarn stylelint:fix # Fix Stylelint issues\n```\n\n## 🎨 Styling\n\n### CSS Modules with Sass\n\nComponents use CSS Modules with Sass for scoped styling:\n\n```tsx\nimport styles from \"./Button.module.scss\";\n\nconst Button = () =\u003e {\n  return \u003cbutton className={styles.button}\u003eClick me\u003c/button\u003e;\n};\n```\n\n### Global Styles\n\nGlobal styles are defined in `pages/globals.scss` and imported in `_app.tsx`.\n\n### SVG Support\n\nImport SVGs as React components:\n\n```tsx\nimport Logo from \"@/public/logo.svg\";\n\nconst Header = () =\u003e {\n  return \u003cLogo className=\"logo\" /\u003e;\n};\n```\n\n## 🔧 Configuration\n\n### TypeScript\n\n- Strict mode enabled\n- Path aliases configured (`@/components/*`, `@/pages/*`)\n- CSS Modules type support\n\n### Next.js\n\n- SVG support via `@svgr/webpack`\n- Optimized for performance\n- SEO-friendly\n\n### ESLint\n\n- Next.js recommended rules\n- TypeScript support\n- Prettier integration\n\n### Stylelint\n\n- Standard CSS rules\n- SCSS support\n- Prettier integration\n- Property ordering\n\n## 📦 Dependencies\n\n### Core\n\n- **Next.js 15** - React framework\n- **React 19** - UI library\n- **TypeScript** - Type safety\n\n### Styling\n\n- **Sass** - CSS preprocessor\n- **CSS Modules** - Scoped styling\n\n### Development\n\n- **ESLint** - Code linting\n- **Prettier** - Code formatting\n- **Stylelint** - CSS linting\n- **Plop.js** - Code generation\n- **Husky** - Git hooks\n- **lint-staged** - Pre-commit checks\n\n## 🚀 Deployment\n\n### Vercel (Recommended)\n\n1. Push your code to GitHub\n2. Connect your repository to Vercel\n3. Deploy automatically\n\n### Other Platforms\n\nThe template is compatible with any platform that supports Next.js:\n\n- Netlify\n- AWS Amplify\n- Railway\n- DigitalOcean App Platform\n\n## 🤝 Contributing\n\n1. Fork the repository\n2. Create a feature branch\n3. Make your changes\n4. Run quality checks: `yarn lint \u0026\u0026 yarn stylelint`\n5. Commit your changes\n6. Push to the branch\n7. Create a Pull Request\n\n## 📄 License\n\nThis template is open source and available under the [MIT License](LICENSE).\n\n## 🆘 Support\n\nIf you encounter any issues or have questions:\n\n1. Check the [Next.js documentation](https://nextjs.org/docs)\n2. Review the [TypeScript documentation](https://www.typescriptlang.org/docs)\n3. Open an issue in this repository\n\n---\n\n**Happy coding! 🎉**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivanms1%2Fcautious-waffle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fivanms1%2Fcautious-waffle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fivanms1%2Fcautious-waffle/lists"}