Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,14 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v7

- name: Initialize CodeQL
uses: github/codeql-action/init@v3
uses: github/codeql-action/init@v4
with:
languages: javascript-typescript

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
uses: github/codeql-action/analyze@v4
with:
category: "/language:javascript-typescript"
6 changes: 3 additions & 3 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,9 +33,9 @@ jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v7

- uses: actions/setup-node@v4
- uses: actions/setup-node@v7
with:
node-version: 22
cache: npm
Expand Down Expand Up @@ -82,7 +82,7 @@ jobs:
run: npm run verify:seo

- name: Upload build artifact
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: dist
path: dist
Expand Down
15 changes: 11 additions & 4 deletions src/data/seo.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@
// Extension required: vite.config.js loads this file in raw Node, where
// extensionless specifiers do not resolve even though Vite accepts them.
import { GALLERY_IS_PLACEHOLDER } from './gallery.js'
import { PROJECTS_ARE_PLACEHOLDER } from './projects.js'
import { RESOURCES_ARE_PROTOTYPE } from './resources.js'

export const SITE_URL = 'https://kalapritidesigns.com'

Expand Down Expand Up @@ -85,21 +87,26 @@ export const ROUTES = [
noindex: GALLERY_IS_PLACEHOLDER,
},

// Routed and reachable, but placeholder content. Indexing them now would put
// thin pages in front of the pages that are finished.
// On the client's agreed page list, so they stay — but their content is not
// ready. Each reads its own data file's flag, the same single switch the
// gallery uses: flipping it reveals the nav entry, drops the noindex and adds
// the sitemap entry together. Before this, nav and SEO were gated in two
// separate places that could drift apart.
{
path: '/projects',
title: 'Projects | Kalapriti Designs',
description:
'Exterior and interior work across residential and commercial briefs.',
noindex: true,
priority: '0.9',
noindex: PROJECTS_ARE_PLACEHOLDER,
},
{
path: '/resources',
title: 'Resources | Kalapriti Designs',
description:
'Practical guidance on planning, budgeting and running a design project — free to read, no form in the way.',
noindex: true,
priority: '0.7',
noindex: RESOURCES_ARE_PROTOTYPE,
},
]

Expand Down
6 changes: 4 additions & 2 deletions src/data/site.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@
* separate concern and lives in vite.config.js; see `asset()` below.
*/
import { GALLERY_IS_PLACEHOLDER } from './gallery'
import { PROJECTS_ARE_PLACEHOLDER } from './projects'
import { RESOURCES_ARE_PROTOTYPE } from './resources'

export const BRAND = {
name: 'Kalapriti',
Expand Down Expand Up @@ -75,14 +77,14 @@ export const CONTACT = {
*/
export const NAV = [
{ label: 'Home', path: '/' },
{ label: 'Projects', path: '/projects', hidden: true },
{ label: 'Projects', path: '/projects', hidden: PROJECTS_ARE_PLACEHOLDER },
// Hidden until the real photography lands. GALLERY_IS_PLACEHOLDER is the one
// switch: it reveals this entry, drops the noindex and adds the page to the
// sitemap, so the page cannot go half-live.
{ label: 'Gallery', path: '/gallery', hidden: GALLERY_IS_PLACEHOLDER },
{ label: 'Services', path: '/services' },
{ label: 'Process', path: '/process' },
{ label: 'Resources', path: '/resources', hidden: true },
{ label: 'Resources', path: '/resources', hidden: RESOURCES_ARE_PROTOTYPE },
{ label: 'About', path: '/about' },
{ label: 'Contact', path: '/contact' },
]
Expand Down
Loading