- Created complete Next.js 15 teaser website with CHORUS brand styling - Implemented mobile-responsive 3D logo (128px mobile, 512px desktop) - Added proper Exo font loading via Next.js Google Fonts for iOS/Chrome compatibility - Built comprehensive early access form with GDPR compliance and rate limiting - Integrated PostgreSQL database with complete schema for lead capture - Added scroll indicators that auto-hide when scrolling begins - Optimized mobile modal forms with proper scrolling and submit button access - Deployed via Docker Swarm with Traefik SSL termination at chorus.services - Includes database migrations, consent tracking, and email notifications 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
85 lines
2.1 KiB
JSON
85 lines
2.1 KiB
JSON
{
|
|
"version": 4,
|
|
"routes": {
|
|
"/_not-found": {
|
|
"initialStatus": 404,
|
|
"experimentalBypassFor": [
|
|
{
|
|
"type": "header",
|
|
"key": "next-action"
|
|
},
|
|
{
|
|
"type": "header",
|
|
"key": "content-type",
|
|
"value": "multipart/form-data;.*"
|
|
}
|
|
],
|
|
"initialRevalidateSeconds": false,
|
|
"srcRoute": "/_not-found",
|
|
"dataRoute": "/_not-found.rsc",
|
|
"allowHeader": [
|
|
"host",
|
|
"x-matched-path",
|
|
"x-prerender-revalidate",
|
|
"x-prerender-revalidate-if-generated",
|
|
"x-next-revalidated-tags",
|
|
"x-next-revalidate-tag-token"
|
|
]
|
|
},
|
|
"/privacy": {
|
|
"experimentalBypassFor": [
|
|
{
|
|
"type": "header",
|
|
"key": "next-action"
|
|
},
|
|
{
|
|
"type": "header",
|
|
"key": "content-type",
|
|
"value": "multipart/form-data;.*"
|
|
}
|
|
],
|
|
"initialRevalidateSeconds": false,
|
|
"srcRoute": "/privacy",
|
|
"dataRoute": "/privacy.rsc",
|
|
"allowHeader": [
|
|
"host",
|
|
"x-matched-path",
|
|
"x-prerender-revalidate",
|
|
"x-prerender-revalidate-if-generated",
|
|
"x-next-revalidated-tags",
|
|
"x-next-revalidate-tag-token"
|
|
]
|
|
},
|
|
"/": {
|
|
"experimentalBypassFor": [
|
|
{
|
|
"type": "header",
|
|
"key": "next-action"
|
|
},
|
|
{
|
|
"type": "header",
|
|
"key": "content-type",
|
|
"value": "multipart/form-data;.*"
|
|
}
|
|
],
|
|
"initialRevalidateSeconds": false,
|
|
"srcRoute": "/",
|
|
"dataRoute": "/index.rsc",
|
|
"allowHeader": [
|
|
"host",
|
|
"x-matched-path",
|
|
"x-prerender-revalidate",
|
|
"x-prerender-revalidate-if-generated",
|
|
"x-next-revalidated-tags",
|
|
"x-next-revalidate-tag-token"
|
|
]
|
|
}
|
|
},
|
|
"dynamicRoutes": {},
|
|
"notFoundRoutes": [],
|
|
"preview": {
|
|
"previewModeId": "b1aa30b7e175d2a1717a7b378440146f",
|
|
"previewModeSigningKey": "e1c56ccd2c096b45b5f8b7833ff83afe69ced05a28b8f9af6b8ef6e099be5c2a",
|
|
"previewModeEncryptionKey": "4b62fef44de56bf8a0237e4935747a8142567c28cdbc6fdf0fd6b3712ee90e8e"
|
|
}
|
|
} |