├── .gitignore ├── .nvmrc ├── LICENSE ├── README.md ├── components ├── Footer.js ├── Footer.module.css └── Header.js ├── jsconfig.json ├── netlify.toml ├── next.config.js ├── package-lock.json ├── package.json ├── pages ├── _app.js └── index.js ├── public ├── favicon.ico └── logo-netlify.svg ├── renovate.json └── styles └── globals.css /.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # next.js 12 | /.next/ 13 | /out/ 14 | 15 | # production 16 | /build 17 | 18 | # misc 19 | .DS_Store 20 | 21 | # debug 22 | npm-debug.log* 23 | yarn-debug.log* 24 | yarn-error.log* 25 | 26 | # local env files 27 | .env.local 28 | .env.development.local 29 | .env.test.local 30 | .env.production.local 31 | 32 | # Local Netlify folder 33 | .netlify 34 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | v18 -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 netlify-templates 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Next + Netlify Starter 2 | 3 | [![Netlify Status](https://api.netlify.com/api/v1/badges/46648482-644c-4c80-bafb-872057e51b6b/deploy-status)](https://app.netlify.com/sites/next-dev-starter/deploys) 4 | 5 | This is a [Next.js](https://nextjs.org/) v15 project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app) and set up to be instantly deployed to [Netlify](https://url.netlify.com/SyTBPVamO)! 6 | 7 | This project is a very minimal starter that includes 2 sample components, a global stylesheet, a `netlify.toml` for deployment, and a `jsconfig.json` for setting up absolute imports and aliases. With Netlify, you'll have access to features like Preview Mode, server-side rendering/incremental static regeneration via Netlify Functions, and internationalized routing on deploy automatically. 8 | 9 | [![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/netlify-templates/next-netlify-starter&utm_source=github&utm_medium=nextstarter-cs&utm_campaign=devex-cs) 10 | 11 | (If you click this button, it will create a new repo for you that looks exactly like this one, and sets that repo up immediately for deployment on Netlify) 12 | 13 | ## Table of Contents: 14 | 15 | - [Getting Started](#getting-started) 16 | - [Installation options](#installation-options) 17 | - [Testing](#testing) 18 | - [Included Default Testing](#included-default-testing) 19 | - [Removing Renovate](#removing-renovate) 20 | 21 | ## Getting Started 22 | 23 | First, run the development server: 24 | 25 | ```bash 26 | npm run dev 27 | # or 28 | yarn dev 29 | ``` 30 | 31 | Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. 32 | 33 | You can start editing the page by modifying `pages/index.js`. The page auto-updates as you edit the file. 34 | 35 | ### Installation options 36 | 37 | **Option one:** One-click deploy 38 | 39 | [![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/netlify-templates/next-netlify-starter&utm_source=github&utm_medium=nextstarter-cs&utm_campaign=devex-cs) 40 | 41 | **Option two:** Manual clone 42 | 43 | 1. Clone this repo: `git clone https://github.com/netlify-templates/next-netlify-starter.git` 44 | 2. Navigate to the directory and run `npm install` 45 | 3. Run `npm run dev` 46 | 4. Make your changes 47 | 5. Connect to [Netlify](https://url.netlify.com/Bk4UicocL) manually (the `netlify.toml` file is the one you'll need to make sure stays intact to make sure the export is done and pointed to the right stuff) 48 | 49 | ## Testing 50 | 51 | ### Included Default Testing 52 | 53 | We’ve included some tooling that helps us maintain these templates. This template currently uses: 54 | 55 | - [Renovate](https://www.mend.io/free-developer-tools/renovate/) - to regularly update our dependencies 56 | - [Cypress](https://www.cypress.io/) - to run tests against how the template runs in the browser 57 | - [Cypress Netlify Build Plugin](https://github.com/cypress-io/netlify-plugin-cypress) - to run our tests during our build process 58 | 59 | If your team is not interested in this tooling, you can remove them with ease! 60 | 61 | ### Removing Renovate 62 | 63 | In order to keep our project up-to-date with dependencies we use a tool called [Renovate](https://github.com/marketplace/renovate). If you’re not interested in this tooling, delete the `renovate.json` file and commit that onto your main branch. 64 | -------------------------------------------------------------------------------- /components/Footer.js: -------------------------------------------------------------------------------- 1 | import styles from './Footer.module.css' 2 | 3 | export default function Footer() { 4 | return ( 5 | <> 6 | 9 | 10 | ) 11 | } 12 | -------------------------------------------------------------------------------- /components/Footer.module.css: -------------------------------------------------------------------------------- 1 | .footer { 2 | width: 100%; 3 | height: 100px; 4 | border-top: 1px solid #eaeaea; 5 | display: flex; 6 | justify-content: center; 7 | align-items: center; 8 | } 9 | 10 | .logo { 11 | height: 3em; 12 | margin: 5px; 13 | } 14 | -------------------------------------------------------------------------------- /components/Header.js: -------------------------------------------------------------------------------- 1 | export default function Header({ title }) { 2 | return

{title}

3 | } 4 | -------------------------------------------------------------------------------- /jsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "baseUrl": "./", 4 | "paths": { 5 | "@components/*": ["components/*"], 6 | "@styles/*": ["styles/*"] 7 | } 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /netlify.toml: -------------------------------------------------------------------------------- 1 | [build] 2 | command = "npm run build" 3 | publish = ".next" -------------------------------------------------------------------------------- /next.config.js: -------------------------------------------------------------------------------- 1 | /** @type {import('next').NextConfig} */ 2 | const nextConfig = { 3 | reactStrictMode: true 4 | }; 5 | 6 | module.exports = nextConfig; -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "next-netlify-starter", 3 | "version": "0.5.0", 4 | "lockfileVersion": 3, 5 | "requires": true, 6 | "packages": { 7 | "": { 8 | "name": "next-netlify-starter", 9 | "version": "0.5.0", 10 | "dependencies": { 11 | "@netlify/plugin-nextjs": "^5.11.2", 12 | "next": "^15.0.0", 13 | "react": "^18.2.0", 14 | "react-dom": "^18.2.0" 15 | } 16 | }, 17 | "node_modules/@emnapi/runtime": { 18 | "version": "1.4.1", 19 | "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.4.1.tgz", 20 | "integrity": "sha512-LMshMVP0ZhACNjQNYXiU1iZJ6QCcv0lUdPDPugqGvCGXt5xtRVBPdtA0qU12pEXZzpWAhWlZYptfdAFq10DOVQ==", 21 | "license": "MIT", 22 | "optional": true, 23 | "dependencies": { 24 | "tslib": "^2.4.0" 25 | } 26 | }, 27 | "node_modules/@img/sharp-darwin-arm64": { 28 | "version": "0.34.1", 29 | "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.34.1.tgz", 30 | "integrity": "sha512-pn44xgBtgpEbZsu+lWf2KNb6OAf70X68k+yk69Ic2Xz11zHR/w24/U49XT7AeRwJ0Px+mhALhU5LPci1Aymk7A==", 31 | "cpu": [ 32 | "arm64" 33 | ], 34 | "license": "Apache-2.0", 35 | "optional": true, 36 | "os": [ 37 | "darwin" 38 | ], 39 | "engines": { 40 | "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 41 | }, 42 | "funding": { 43 | "url": "https://opencollective.com/libvips" 44 | }, 45 | "optionalDependencies": { 46 | "@img/sharp-libvips-darwin-arm64": "1.1.0" 47 | } 48 | }, 49 | "node_modules/@img/sharp-darwin-x64": { 50 | "version": "0.34.1", 51 | "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.34.1.tgz", 52 | "integrity": "sha512-VfuYgG2r8BpYiOUN+BfYeFo69nP/MIwAtSJ7/Zpxc5QF3KS22z8Pvg3FkrSFJBPNQ7mmcUcYQFBmEQp7eu1F8Q==", 53 | "cpu": [ 54 | "x64" 55 | ], 56 | "license": "Apache-2.0", 57 | "optional": true, 58 | "os": [ 59 | "darwin" 60 | ], 61 | "engines": { 62 | "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 63 | }, 64 | "funding": { 65 | "url": "https://opencollective.com/libvips" 66 | }, 67 | "optionalDependencies": { 68 | "@img/sharp-libvips-darwin-x64": "1.1.0" 69 | } 70 | }, 71 | "node_modules/@img/sharp-libvips-darwin-arm64": { 72 | "version": "1.1.0", 73 | "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.1.0.tgz", 74 | "integrity": "sha512-HZ/JUmPwrJSoM4DIQPv/BfNh9yrOA8tlBbqbLz4JZ5uew2+o22Ik+tHQJcih7QJuSa0zo5coHTfD5J8inqj9DA==", 75 | "cpu": [ 76 | "arm64" 77 | ], 78 | "license": "LGPL-3.0-or-later", 79 | "optional": true, 80 | "os": [ 81 | "darwin" 82 | ], 83 | "funding": { 84 | "url": "https://opencollective.com/libvips" 85 | } 86 | }, 87 | "node_modules/@img/sharp-libvips-darwin-x64": { 88 | "version": "1.1.0", 89 | "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.1.0.tgz", 90 | "integrity": "sha512-Xzc2ToEmHN+hfvsl9wja0RlnXEgpKNmftriQp6XzY/RaSfwD9th+MSh0WQKzUreLKKINb3afirxW7A0fz2YWuQ==", 91 | "cpu": [ 92 | "x64" 93 | ], 94 | "license": "LGPL-3.0-or-later", 95 | "optional": true, 96 | "os": [ 97 | "darwin" 98 | ], 99 | "funding": { 100 | "url": "https://opencollective.com/libvips" 101 | } 102 | }, 103 | "node_modules/@img/sharp-libvips-linux-arm": { 104 | "version": "1.1.0", 105 | "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.1.0.tgz", 106 | "integrity": "sha512-s8BAd0lwUIvYCJyRdFqvsj+BJIpDBSxs6ivrOPm/R7piTs5UIwY5OjXrP2bqXC9/moGsyRa37eYWYCOGVXxVrA==", 107 | "cpu": [ 108 | "arm" 109 | ], 110 | "license": "LGPL-3.0-or-later", 111 | "optional": true, 112 | "os": [ 113 | "linux" 114 | ], 115 | "funding": { 116 | "url": "https://opencollective.com/libvips" 117 | } 118 | }, 119 | "node_modules/@img/sharp-libvips-linux-arm64": { 120 | "version": "1.1.0", 121 | "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.1.0.tgz", 122 | "integrity": "sha512-IVfGJa7gjChDET1dK9SekxFFdflarnUB8PwW8aGwEoF3oAsSDuNUTYS+SKDOyOJxQyDC1aPFMuRYLoDInyV9Ew==", 123 | "cpu": [ 124 | "arm64" 125 | ], 126 | "license": "LGPL-3.0-or-later", 127 | "optional": true, 128 | "os": [ 129 | "linux" 130 | ], 131 | "funding": { 132 | "url": "https://opencollective.com/libvips" 133 | } 134 | }, 135 | "node_modules/@img/sharp-libvips-linux-ppc64": { 136 | "version": "1.1.0", 137 | "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-ppc64/-/sharp-libvips-linux-ppc64-1.1.0.tgz", 138 | "integrity": "sha512-tiXxFZFbhnkWE2LA8oQj7KYR+bWBkiV2nilRldT7bqoEZ4HiDOcePr9wVDAZPi/Id5fT1oY9iGnDq20cwUz8lQ==", 139 | "cpu": [ 140 | "ppc64" 141 | ], 142 | "license": "LGPL-3.0-or-later", 143 | "optional": true, 144 | "os": [ 145 | "linux" 146 | ], 147 | "funding": { 148 | "url": "https://opencollective.com/libvips" 149 | } 150 | }, 151 | "node_modules/@img/sharp-libvips-linux-s390x": { 152 | "version": "1.1.0", 153 | "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.1.0.tgz", 154 | "integrity": "sha512-xukSwvhguw7COyzvmjydRb3x/09+21HykyapcZchiCUkTThEQEOMtBj9UhkaBRLuBrgLFzQ2wbxdeCCJW/jgJA==", 155 | "cpu": [ 156 | "s390x" 157 | ], 158 | "license": "LGPL-3.0-or-later", 159 | "optional": true, 160 | "os": [ 161 | "linux" 162 | ], 163 | "funding": { 164 | "url": "https://opencollective.com/libvips" 165 | } 166 | }, 167 | "node_modules/@img/sharp-libvips-linux-x64": { 168 | "version": "1.1.0", 169 | "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.1.0.tgz", 170 | "integrity": "sha512-yRj2+reB8iMg9W5sULM3S74jVS7zqSzHG3Ol/twnAAkAhnGQnpjj6e4ayUz7V+FpKypwgs82xbRdYtchTTUB+Q==", 171 | "cpu": [ 172 | "x64" 173 | ], 174 | "license": "LGPL-3.0-or-later", 175 | "optional": true, 176 | "os": [ 177 | "linux" 178 | ], 179 | "funding": { 180 | "url": "https://opencollective.com/libvips" 181 | } 182 | }, 183 | "node_modules/@img/sharp-libvips-linuxmusl-arm64": { 184 | "version": "1.1.0", 185 | "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.1.0.tgz", 186 | "integrity": "sha512-jYZdG+whg0MDK+q2COKbYidaqW/WTz0cc1E+tMAusiDygrM4ypmSCjOJPmFTvHHJ8j/6cAGyeDWZOsK06tP33w==", 187 | "cpu": [ 188 | "arm64" 189 | ], 190 | "license": "LGPL-3.0-or-later", 191 | "optional": true, 192 | "os": [ 193 | "linux" 194 | ], 195 | "funding": { 196 | "url": "https://opencollective.com/libvips" 197 | } 198 | }, 199 | "node_modules/@img/sharp-libvips-linuxmusl-x64": { 200 | "version": "1.1.0", 201 | "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.1.0.tgz", 202 | "integrity": "sha512-wK7SBdwrAiycjXdkPnGCPLjYb9lD4l6Ze2gSdAGVZrEL05AOUJESWU2lhlC+Ffn5/G+VKuSm6zzbQSzFX/P65A==", 203 | "cpu": [ 204 | "x64" 205 | ], 206 | "license": "LGPL-3.0-or-later", 207 | "optional": true, 208 | "os": [ 209 | "linux" 210 | ], 211 | "funding": { 212 | "url": "https://opencollective.com/libvips" 213 | } 214 | }, 215 | "node_modules/@img/sharp-linux-arm": { 216 | "version": "0.34.1", 217 | "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.34.1.tgz", 218 | "integrity": "sha512-anKiszvACti2sGy9CirTlNyk7BjjZPiML1jt2ZkTdcvpLU1YH6CXwRAZCA2UmRXnhiIftXQ7+Oh62Ji25W72jA==", 219 | "cpu": [ 220 | "arm" 221 | ], 222 | "license": "Apache-2.0", 223 | "optional": true, 224 | "os": [ 225 | "linux" 226 | ], 227 | "engines": { 228 | "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 229 | }, 230 | "funding": { 231 | "url": "https://opencollective.com/libvips" 232 | }, 233 | "optionalDependencies": { 234 | "@img/sharp-libvips-linux-arm": "1.1.0" 235 | } 236 | }, 237 | "node_modules/@img/sharp-linux-arm64": { 238 | "version": "0.34.1", 239 | "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.34.1.tgz", 240 | "integrity": "sha512-kX2c+vbvaXC6vly1RDf/IWNXxrlxLNpBVWkdpRq5Ka7OOKj6nr66etKy2IENf6FtOgklkg9ZdGpEu9kwdlcwOQ==", 241 | "cpu": [ 242 | "arm64" 243 | ], 244 | "license": "Apache-2.0", 245 | "optional": true, 246 | "os": [ 247 | "linux" 248 | ], 249 | "engines": { 250 | "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 251 | }, 252 | "funding": { 253 | "url": "https://opencollective.com/libvips" 254 | }, 255 | "optionalDependencies": { 256 | "@img/sharp-libvips-linux-arm64": "1.1.0" 257 | } 258 | }, 259 | "node_modules/@img/sharp-linux-s390x": { 260 | "version": "0.34.1", 261 | "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.34.1.tgz", 262 | "integrity": "sha512-7s0KX2tI9mZI2buRipKIw2X1ufdTeaRgwmRabt5bi9chYfhur+/C1OXg3TKg/eag1W+6CCWLVmSauV1owmRPxA==", 263 | "cpu": [ 264 | "s390x" 265 | ], 266 | "license": "Apache-2.0", 267 | "optional": true, 268 | "os": [ 269 | "linux" 270 | ], 271 | "engines": { 272 | "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 273 | }, 274 | "funding": { 275 | "url": "https://opencollective.com/libvips" 276 | }, 277 | "optionalDependencies": { 278 | "@img/sharp-libvips-linux-s390x": "1.1.0" 279 | } 280 | }, 281 | "node_modules/@img/sharp-linux-x64": { 282 | "version": "0.34.1", 283 | "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.34.1.tgz", 284 | "integrity": "sha512-wExv7SH9nmoBW3Wr2gvQopX1k8q2g5V5Iag8Zk6AVENsjwd+3adjwxtp3Dcu2QhOXr8W9NusBU6XcQUohBZ5MA==", 285 | "cpu": [ 286 | "x64" 287 | ], 288 | "license": "Apache-2.0", 289 | "optional": true, 290 | "os": [ 291 | "linux" 292 | ], 293 | "engines": { 294 | "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 295 | }, 296 | "funding": { 297 | "url": "https://opencollective.com/libvips" 298 | }, 299 | "optionalDependencies": { 300 | "@img/sharp-libvips-linux-x64": "1.1.0" 301 | } 302 | }, 303 | "node_modules/@img/sharp-linuxmusl-arm64": { 304 | "version": "0.34.1", 305 | "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.34.1.tgz", 306 | "integrity": "sha512-DfvyxzHxw4WGdPiTF0SOHnm11Xv4aQexvqhRDAoD00MzHekAj9a/jADXeXYCDFH/DzYruwHbXU7uz+H+nWmSOQ==", 307 | "cpu": [ 308 | "arm64" 309 | ], 310 | "license": "Apache-2.0", 311 | "optional": true, 312 | "os": [ 313 | "linux" 314 | ], 315 | "engines": { 316 | "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 317 | }, 318 | "funding": { 319 | "url": "https://opencollective.com/libvips" 320 | }, 321 | "optionalDependencies": { 322 | "@img/sharp-libvips-linuxmusl-arm64": "1.1.0" 323 | } 324 | }, 325 | "node_modules/@img/sharp-linuxmusl-x64": { 326 | "version": "0.34.1", 327 | "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.34.1.tgz", 328 | "integrity": "sha512-pax/kTR407vNb9qaSIiWVnQplPcGU8LRIJpDT5o8PdAx5aAA7AS3X9PS8Isw1/WfqgQorPotjrZL3Pqh6C5EBg==", 329 | "cpu": [ 330 | "x64" 331 | ], 332 | "license": "Apache-2.0", 333 | "optional": true, 334 | "os": [ 335 | "linux" 336 | ], 337 | "engines": { 338 | "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 339 | }, 340 | "funding": { 341 | "url": "https://opencollective.com/libvips" 342 | }, 343 | "optionalDependencies": { 344 | "@img/sharp-libvips-linuxmusl-x64": "1.1.0" 345 | } 346 | }, 347 | "node_modules/@img/sharp-wasm32": { 348 | "version": "0.34.1", 349 | "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.34.1.tgz", 350 | "integrity": "sha512-YDybQnYrLQfEpzGOQe7OKcyLUCML4YOXl428gOOzBgN6Gw0rv8dpsJ7PqTHxBnXnwXr8S1mYFSLSa727tpz0xg==", 351 | "cpu": [ 352 | "wasm32" 353 | ], 354 | "license": "Apache-2.0 AND LGPL-3.0-or-later AND MIT", 355 | "optional": true, 356 | "dependencies": { 357 | "@emnapi/runtime": "^1.4.0" 358 | }, 359 | "engines": { 360 | "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 361 | }, 362 | "funding": { 363 | "url": "https://opencollective.com/libvips" 364 | } 365 | }, 366 | "node_modules/@img/sharp-win32-ia32": { 367 | "version": "0.34.1", 368 | "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.34.1.tgz", 369 | "integrity": "sha512-WKf/NAZITnonBf3U1LfdjoMgNO5JYRSlhovhRhMxXVdvWYveM4kM3L8m35onYIdh75cOMCo1BexgVQcCDzyoWw==", 370 | "cpu": [ 371 | "ia32" 372 | ], 373 | "license": "Apache-2.0 AND LGPL-3.0-or-later", 374 | "optional": true, 375 | "os": [ 376 | "win32" 377 | ], 378 | "engines": { 379 | "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 380 | }, 381 | "funding": { 382 | "url": "https://opencollective.com/libvips" 383 | } 384 | }, 385 | "node_modules/@img/sharp-win32-x64": { 386 | "version": "0.34.1", 387 | "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.34.1.tgz", 388 | "integrity": "sha512-hw1iIAHpNE8q3uMIRCgGOeDoz9KtFNarFLQclLxr/LK1VBkj8nby18RjFvr6aP7USRYAjTZW6yisnBWMX571Tw==", 389 | "cpu": [ 390 | "x64" 391 | ], 392 | "license": "Apache-2.0 AND LGPL-3.0-or-later", 393 | "optional": true, 394 | "os": [ 395 | "win32" 396 | ], 397 | "engines": { 398 | "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 399 | }, 400 | "funding": { 401 | "url": "https://opencollective.com/libvips" 402 | } 403 | }, 404 | "node_modules/@netlify/plugin-nextjs": { 405 | "version": "5.11.2", 406 | "resolved": "https://registry.npmjs.org/@netlify/plugin-nextjs/-/plugin-nextjs-5.11.2.tgz", 407 | "integrity": "sha512-9Hgd/J5nP2U/Vv0teytq9uUAGppiKV9t5tzpsuMLqeqUGD9STxXwKmyZd2v8Z4THSW9rw4+8w7dH7LVlFoym2A==", 408 | "license": "MIT", 409 | "engines": { 410 | "node": ">=18.0.0" 411 | } 412 | }, 413 | "node_modules/@next/env": { 414 | "version": "15.3.2", 415 | "resolved": "https://registry.npmjs.org/@next/env/-/env-15.3.2.tgz", 416 | "integrity": "sha512-xURk++7P7qR9JG1jJtLzPzf0qEvqCN0A/T3DXf8IPMKo9/6FfjxtEffRJIIew/bIL4T3C2jLLqBor8B/zVlx6g==", 417 | "license": "MIT" 418 | }, 419 | "node_modules/@next/swc-darwin-arm64": { 420 | "version": "15.3.2", 421 | "resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.3.2.tgz", 422 | "integrity": "sha512-2DR6kY/OGcokbnCsjHpNeQblqCZ85/1j6njYSkzRdpLn5At7OkSdmk7WyAmB9G0k25+VgqVZ/u356OSoQZ3z0g==", 423 | "cpu": [ 424 | "arm64" 425 | ], 426 | "license": "MIT", 427 | "optional": true, 428 | "os": [ 429 | "darwin" 430 | ], 431 | "engines": { 432 | "node": ">= 10" 433 | } 434 | }, 435 | "node_modules/@next/swc-darwin-x64": { 436 | "version": "15.3.2", 437 | "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.3.2.tgz", 438 | "integrity": "sha512-ro/fdqaZWL6k1S/5CLv1I0DaZfDVJkWNaUU3un8Lg6m0YENWlDulmIWzV96Iou2wEYyEsZq51mwV8+XQXqMp3w==", 439 | "cpu": [ 440 | "x64" 441 | ], 442 | "license": "MIT", 443 | "optional": true, 444 | "os": [ 445 | "darwin" 446 | ], 447 | "engines": { 448 | "node": ">= 10" 449 | } 450 | }, 451 | "node_modules/@next/swc-linux-arm64-gnu": { 452 | "version": "15.3.2", 453 | "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.3.2.tgz", 454 | "integrity": "sha512-covwwtZYhlbRWK2HlYX9835qXum4xYZ3E2Mra1mdQ+0ICGoMiw1+nVAn4d9Bo7R3JqSmK1grMq/va+0cdh7bJA==", 455 | "cpu": [ 456 | "arm64" 457 | ], 458 | "license": "MIT", 459 | "optional": true, 460 | "os": [ 461 | "linux" 462 | ], 463 | "engines": { 464 | "node": ">= 10" 465 | } 466 | }, 467 | "node_modules/@next/swc-linux-arm64-musl": { 468 | "version": "15.3.2", 469 | "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.3.2.tgz", 470 | "integrity": "sha512-KQkMEillvlW5Qk5mtGA/3Yz0/tzpNlSw6/3/ttsV1lNtMuOHcGii3zVeXZyi4EJmmLDKYcTcByV2wVsOhDt/zg==", 471 | "cpu": [ 472 | "arm64" 473 | ], 474 | "license": "MIT", 475 | "optional": true, 476 | "os": [ 477 | "linux" 478 | ], 479 | "engines": { 480 | "node": ">= 10" 481 | } 482 | }, 483 | "node_modules/@next/swc-linux-x64-gnu": { 484 | "version": "15.3.2", 485 | "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.3.2.tgz", 486 | "integrity": "sha512-uRBo6THWei0chz+Y5j37qzx+BtoDRFIkDzZjlpCItBRXyMPIg079eIkOCl3aqr2tkxL4HFyJ4GHDes7W8HuAUg==", 487 | "cpu": [ 488 | "x64" 489 | ], 490 | "license": "MIT", 491 | "optional": true, 492 | "os": [ 493 | "linux" 494 | ], 495 | "engines": { 496 | "node": ">= 10" 497 | } 498 | }, 499 | "node_modules/@next/swc-linux-x64-musl": { 500 | "version": "15.3.2", 501 | "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.3.2.tgz", 502 | "integrity": "sha512-+uxFlPuCNx/T9PdMClOqeE8USKzj8tVz37KflT3Kdbx/LOlZBRI2yxuIcmx1mPNK8DwSOMNCr4ureSet7eyC0w==", 503 | "cpu": [ 504 | "x64" 505 | ], 506 | "license": "MIT", 507 | "optional": true, 508 | "os": [ 509 | "linux" 510 | ], 511 | "engines": { 512 | "node": ">= 10" 513 | } 514 | }, 515 | "node_modules/@next/swc-win32-arm64-msvc": { 516 | "version": "15.3.2", 517 | "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.3.2.tgz", 518 | "integrity": "sha512-LLTKmaI5cfD8dVzh5Vt7+OMo+AIOClEdIU/TSKbXXT2iScUTSxOGoBhfuv+FU8R9MLmrkIL1e2fBMkEEjYAtPQ==", 519 | "cpu": [ 520 | "arm64" 521 | ], 522 | "license": "MIT", 523 | "optional": true, 524 | "os": [ 525 | "win32" 526 | ], 527 | "engines": { 528 | "node": ">= 10" 529 | } 530 | }, 531 | "node_modules/@next/swc-win32-x64-msvc": { 532 | "version": "15.3.2", 533 | "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.3.2.tgz", 534 | "integrity": "sha512-aW5B8wOPioJ4mBdMDXkt5f3j8pUr9W8AnlX0Df35uRWNT1Y6RIybxjnSUe+PhM+M1bwgyY8PHLmXZC6zT1o5tA==", 535 | "cpu": [ 536 | "x64" 537 | ], 538 | "license": "MIT", 539 | "optional": true, 540 | "os": [ 541 | "win32" 542 | ], 543 | "engines": { 544 | "node": ">= 10" 545 | } 546 | }, 547 | "node_modules/@swc/counter": { 548 | "version": "0.1.3", 549 | "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", 550 | "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==" 551 | }, 552 | "node_modules/@swc/helpers": { 553 | "version": "0.5.15", 554 | "resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.15.tgz", 555 | "integrity": "sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==", 556 | "license": "Apache-2.0", 557 | "dependencies": { 558 | "tslib": "^2.8.0" 559 | } 560 | }, 561 | "node_modules/busboy": { 562 | "version": "1.6.0", 563 | "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", 564 | "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", 565 | "dependencies": { 566 | "streamsearch": "^1.1.0" 567 | }, 568 | "engines": { 569 | "node": ">=10.16.0" 570 | } 571 | }, 572 | "node_modules/caniuse-lite": { 573 | "version": "1.0.30001607", 574 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001607.tgz", 575 | "integrity": "sha512-WcvhVRjXLKFB/kmOFVwELtMxyhq3iM/MvmXcyCe2PNf166c39mptscOc/45TTS96n2gpNV2z7+NakArTWZCQ3w==", 576 | "funding": [ 577 | { 578 | "type": "opencollective", 579 | "url": "https://opencollective.com/browserslist" 580 | }, 581 | { 582 | "type": "tidelift", 583 | "url": "https://tidelift.com/funding/github/npm/caniuse-lite" 584 | }, 585 | { 586 | "type": "github", 587 | "url": "https://github.com/sponsors/ai" 588 | } 589 | ] 590 | }, 591 | "node_modules/client-only": { 592 | "version": "0.0.1", 593 | "resolved": "https://registry.npmjs.org/client-only/-/client-only-0.0.1.tgz", 594 | "integrity": "sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==" 595 | }, 596 | "node_modules/color": { 597 | "version": "4.2.3", 598 | "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", 599 | "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", 600 | "optional": true, 601 | "dependencies": { 602 | "color-convert": "^2.0.1", 603 | "color-string": "^1.9.0" 604 | }, 605 | "engines": { 606 | "node": ">=12.5.0" 607 | } 608 | }, 609 | "node_modules/color-convert": { 610 | "version": "2.0.1", 611 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", 612 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", 613 | "optional": true, 614 | "dependencies": { 615 | "color-name": "~1.1.4" 616 | }, 617 | "engines": { 618 | "node": ">=7.0.0" 619 | } 620 | }, 621 | "node_modules/color-name": { 622 | "version": "1.1.4", 623 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", 624 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", 625 | "optional": true 626 | }, 627 | "node_modules/color-string": { 628 | "version": "1.9.1", 629 | "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", 630 | "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", 631 | "optional": true, 632 | "dependencies": { 633 | "color-name": "^1.0.0", 634 | "simple-swizzle": "^0.2.2" 635 | } 636 | }, 637 | "node_modules/detect-libc": { 638 | "version": "2.0.3", 639 | "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz", 640 | "integrity": "sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==", 641 | "optional": true, 642 | "engines": { 643 | "node": ">=8" 644 | } 645 | }, 646 | "node_modules/is-arrayish": { 647 | "version": "0.3.2", 648 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", 649 | "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", 650 | "optional": true 651 | }, 652 | "node_modules/js-tokens": { 653 | "version": "4.0.0", 654 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", 655 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" 656 | }, 657 | "node_modules/loose-envify": { 658 | "version": "1.4.0", 659 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", 660 | "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", 661 | "dependencies": { 662 | "js-tokens": "^3.0.0 || ^4.0.0" 663 | }, 664 | "bin": { 665 | "loose-envify": "cli.js" 666 | } 667 | }, 668 | "node_modules/nanoid": { 669 | "version": "3.3.6", 670 | "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", 671 | "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", 672 | "funding": [ 673 | { 674 | "type": "github", 675 | "url": "https://github.com/sponsors/ai" 676 | } 677 | ], 678 | "bin": { 679 | "nanoid": "bin/nanoid.cjs" 680 | }, 681 | "engines": { 682 | "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" 683 | } 684 | }, 685 | "node_modules/next": { 686 | "version": "15.3.2", 687 | "resolved": "https://registry.npmjs.org/next/-/next-15.3.2.tgz", 688 | "integrity": "sha512-CA3BatMyHkxZ48sgOCLdVHjFU36N7TF1HhqAHLFOkV6buwZnvMI84Cug8xD56B9mCuKrqXnLn94417GrZ/jjCQ==", 689 | "license": "MIT", 690 | "dependencies": { 691 | "@next/env": "15.3.2", 692 | "@swc/counter": "0.1.3", 693 | "@swc/helpers": "0.5.15", 694 | "busboy": "1.6.0", 695 | "caniuse-lite": "^1.0.30001579", 696 | "postcss": "8.4.31", 697 | "styled-jsx": "5.1.6" 698 | }, 699 | "bin": { 700 | "next": "dist/bin/next" 701 | }, 702 | "engines": { 703 | "node": "^18.18.0 || ^19.8.0 || >= 20.0.0" 704 | }, 705 | "optionalDependencies": { 706 | "@next/swc-darwin-arm64": "15.3.2", 707 | "@next/swc-darwin-x64": "15.3.2", 708 | "@next/swc-linux-arm64-gnu": "15.3.2", 709 | "@next/swc-linux-arm64-musl": "15.3.2", 710 | "@next/swc-linux-x64-gnu": "15.3.2", 711 | "@next/swc-linux-x64-musl": "15.3.2", 712 | "@next/swc-win32-arm64-msvc": "15.3.2", 713 | "@next/swc-win32-x64-msvc": "15.3.2", 714 | "sharp": "^0.34.1" 715 | }, 716 | "peerDependencies": { 717 | "@opentelemetry/api": "^1.1.0", 718 | "@playwright/test": "^1.41.2", 719 | "babel-plugin-react-compiler": "*", 720 | "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", 721 | "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", 722 | "sass": "^1.3.0" 723 | }, 724 | "peerDependenciesMeta": { 725 | "@opentelemetry/api": { 726 | "optional": true 727 | }, 728 | "@playwright/test": { 729 | "optional": true 730 | }, 731 | "babel-plugin-react-compiler": { 732 | "optional": true 733 | }, 734 | "sass": { 735 | "optional": true 736 | } 737 | } 738 | }, 739 | "node_modules/picocolors": { 740 | "version": "1.0.0", 741 | "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", 742 | "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" 743 | }, 744 | "node_modules/postcss": { 745 | "version": "8.4.31", 746 | "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", 747 | "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", 748 | "funding": [ 749 | { 750 | "type": "opencollective", 751 | "url": "https://opencollective.com/postcss/" 752 | }, 753 | { 754 | "type": "tidelift", 755 | "url": "https://tidelift.com/funding/github/npm/postcss" 756 | }, 757 | { 758 | "type": "github", 759 | "url": "https://github.com/sponsors/ai" 760 | } 761 | ], 762 | "dependencies": { 763 | "nanoid": "^3.3.6", 764 | "picocolors": "^1.0.0", 765 | "source-map-js": "^1.0.2" 766 | }, 767 | "engines": { 768 | "node": "^10 || ^12 || >=14" 769 | } 770 | }, 771 | "node_modules/react": { 772 | "version": "18.3.1", 773 | "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", 774 | "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", 775 | "dependencies": { 776 | "loose-envify": "^1.1.0" 777 | }, 778 | "engines": { 779 | "node": ">=0.10.0" 780 | } 781 | }, 782 | "node_modules/react-dom": { 783 | "version": "18.3.1", 784 | "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", 785 | "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", 786 | "dependencies": { 787 | "loose-envify": "^1.1.0", 788 | "scheduler": "^0.23.2" 789 | }, 790 | "peerDependencies": { 791 | "react": "^18.3.1" 792 | } 793 | }, 794 | "node_modules/scheduler": { 795 | "version": "0.23.2", 796 | "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", 797 | "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", 798 | "dependencies": { 799 | "loose-envify": "^1.1.0" 800 | } 801 | }, 802 | "node_modules/semver": { 803 | "version": "7.7.1", 804 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.1.tgz", 805 | "integrity": "sha512-hlq8tAfn0m/61p4BVRcPzIGr6LKiMwo4VM6dGi6pt4qcRkmNzTcWq6eCEjEh+qXjkMDvPlOFFSGwQjoEa6gyMA==", 806 | "license": "ISC", 807 | "optional": true, 808 | "bin": { 809 | "semver": "bin/semver.js" 810 | }, 811 | "engines": { 812 | "node": ">=10" 813 | } 814 | }, 815 | "node_modules/sharp": { 816 | "version": "0.34.1", 817 | "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.34.1.tgz", 818 | "integrity": "sha512-1j0w61+eVxu7DawFJtnfYcvSv6qPFvfTaqzTQ2BLknVhHTwGS8sc63ZBF4rzkWMBVKybo4S5OBtDdZahh2A1xg==", 819 | "hasInstallScript": true, 820 | "license": "Apache-2.0", 821 | "optional": true, 822 | "dependencies": { 823 | "color": "^4.2.3", 824 | "detect-libc": "^2.0.3", 825 | "semver": "^7.7.1" 826 | }, 827 | "engines": { 828 | "node": "^18.17.0 || ^20.3.0 || >=21.0.0" 829 | }, 830 | "funding": { 831 | "url": "https://opencollective.com/libvips" 832 | }, 833 | "optionalDependencies": { 834 | "@img/sharp-darwin-arm64": "0.34.1", 835 | "@img/sharp-darwin-x64": "0.34.1", 836 | "@img/sharp-libvips-darwin-arm64": "1.1.0", 837 | "@img/sharp-libvips-darwin-x64": "1.1.0", 838 | "@img/sharp-libvips-linux-arm": "1.1.0", 839 | "@img/sharp-libvips-linux-arm64": "1.1.0", 840 | "@img/sharp-libvips-linux-ppc64": "1.1.0", 841 | "@img/sharp-libvips-linux-s390x": "1.1.0", 842 | "@img/sharp-libvips-linux-x64": "1.1.0", 843 | "@img/sharp-libvips-linuxmusl-arm64": "1.1.0", 844 | "@img/sharp-libvips-linuxmusl-x64": "1.1.0", 845 | "@img/sharp-linux-arm": "0.34.1", 846 | "@img/sharp-linux-arm64": "0.34.1", 847 | "@img/sharp-linux-s390x": "0.34.1", 848 | "@img/sharp-linux-x64": "0.34.1", 849 | "@img/sharp-linuxmusl-arm64": "0.34.1", 850 | "@img/sharp-linuxmusl-x64": "0.34.1", 851 | "@img/sharp-wasm32": "0.34.1", 852 | "@img/sharp-win32-ia32": "0.34.1", 853 | "@img/sharp-win32-x64": "0.34.1" 854 | } 855 | }, 856 | "node_modules/simple-swizzle": { 857 | "version": "0.2.2", 858 | "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", 859 | "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", 860 | "optional": true, 861 | "dependencies": { 862 | "is-arrayish": "^0.3.1" 863 | } 864 | }, 865 | "node_modules/source-map-js": { 866 | "version": "1.0.2", 867 | "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", 868 | "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", 869 | "engines": { 870 | "node": ">=0.10.0" 871 | } 872 | }, 873 | "node_modules/streamsearch": { 874 | "version": "1.1.0", 875 | "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", 876 | "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", 877 | "engines": { 878 | "node": ">=10.0.0" 879 | } 880 | }, 881 | "node_modules/styled-jsx": { 882 | "version": "5.1.6", 883 | "resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz", 884 | "integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==", 885 | "dependencies": { 886 | "client-only": "0.0.1" 887 | }, 888 | "engines": { 889 | "node": ">= 12.0.0" 890 | }, 891 | "peerDependencies": { 892 | "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" 893 | }, 894 | "peerDependenciesMeta": { 895 | "@babel/core": { 896 | "optional": true 897 | }, 898 | "babel-plugin-macros": { 899 | "optional": true 900 | } 901 | } 902 | }, 903 | "node_modules/tslib": { 904 | "version": "2.8.0", 905 | "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.0.tgz", 906 | "integrity": "sha512-jWVzBLplnCmoaTr13V9dYbiQ99wvZRd0vNWaDRg+aVYRcjDF3nDksxFDE/+fkXnKhpnUUkmx5pK/v8mCtLVqZA==" 907 | } 908 | } 909 | } 910 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "next-netlify-starter", 3 | "version": "0.5.0", 4 | "private": true, 5 | "scripts": { 6 | "dev": "next dev", 7 | "build": "next build", 8 | "start": "next start", 9 | "export": "next build && next export" 10 | }, 11 | "dependencies": { 12 | "@netlify/plugin-nextjs": "^5.11.2", 13 | "next": "^15.0.0", 14 | "react": "^18.2.0", 15 | "react-dom": "^18.2.0" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /pages/_app.js: -------------------------------------------------------------------------------- 1 | import '@styles/globals.css' 2 | 3 | function Application({ Component, pageProps }) { 4 | return 5 | } 6 | 7 | export default Application 8 | -------------------------------------------------------------------------------- /pages/index.js: -------------------------------------------------------------------------------- 1 | import Head from 'next/head' 2 | import Header from '@components/Header' 3 | import Footer from '@components/Footer' 4 | 5 | export default function Home() { 6 | return ( 7 |
8 | 9 | Next.js Starter! 10 | 11 | 12 | 13 |
14 |
15 |

16 | Get started by editing pages/index.js 17 |

18 |
19 | 20 |
21 |
22 | ) 23 | } 24 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/netlify-templates/next-netlify-starter/33dca259c8e8e24ab87ca166e37197aff0afdda9/public/favicon.ico -------------------------------------------------------------------------------- /public/logo-netlify.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "https://docs.renovatebot.com/renovate-schema.json", 3 | "extends": [ 4 | "local>netlify-templates/renovate-config" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /styles/globals.css: -------------------------------------------------------------------------------- 1 | html, 2 | body { 3 | background-color: #f8fafc; 4 | padding: 0; 5 | margin: 0; 6 | font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Oxygen, Ubuntu, Cantarell, 7 | Fira Sans, Droid Sans, Helvetica Neue, sans-serif; 8 | } 9 | 10 | * { 11 | box-sizing: border-box; 12 | } 13 | 14 | main { 15 | padding: 5rem 0; 16 | flex: 1; 17 | display: flex; 18 | flex-direction: column; 19 | justify-content: center; 20 | align-items: center; 21 | } 22 | 23 | code { 24 | background: #e2e8f0; 25 | border-radius: 5px; 26 | padding: 0.75rem; 27 | font-family: Menlo, Monaco, Lucida Console, Courier New, monospace; 28 | } 29 | 30 | .container { 31 | height: 100vh; 32 | display: flex; 33 | flex-direction: column; 34 | justify-content: center; 35 | align-items: center; 36 | } 37 | --------------------------------------------------------------------------------