Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
48946ab
Lint fixes
webstackdev Dec 7, 2025
af65bd1
Change astro check and sync to astro build in test workflow to verify…
webstackdev Dec 7, 2025
a79ee50
Remove unused page fiels in src/content, stash info in demo articles …
webstackdev Dec 7, 2025
3ee829d
Add 'success' and 'danger' types to Callout component
webstackdev Dec 7, 2025
a40587c
Add fallback method to Avatar component in case avatar image is not f…
webstackdev Dec 7, 2025
afaa123
Update Markdown layout to use render method
webstackdev Dec 7, 2025
169fdb9
Rename .md files to .mdx
webstackdev Dec 8, 2025
c5c6978
Rename testid to remove Preact reference in footer.spec.ts e2e
webstackdev Dec 8, 2025
0167c08
Remove 'remark-toc' dependency in favor of Astro's built-in headings …
webstackdev Dec 8, 2025
65fe69e
Move Toc component folder to top-level to reflect that it's not a lay…
webstackdev Dec 8, 2025
839ed46
Refactor Toc component to custom Lit web component, add mobile slider…
webstackdev Dec 8, 2025
4cbcaa3
Update instructions on correct Preact usage, only used in Markdown e2…
webstackdev Dec 8, 2025
051b5e7
Fix broken code preventing green build
webstackdev Dec 8, 2025
1144c3f
Add broken links check integration
webstackdev Dec 8, 2025
c0d6059
Move breadcrumbTitleLengthRefinement from content.config.ts to own fi…
webstackdev Dec 8, 2025
847b0ac
Docs updates
webstackdev Dec 8, 2025
db057aa
Remove Footer markdown Layout and related 'section' prop
webstackdev Dec 8, 2025
cfa87ca
Add Downloads collection to tags page
webstackdev Dec 8, 2025
bfde0d9
Add missing image links with dummy images to pass check link - conten…
webstackdev Dec 8, 2025
8f91dec
Add 'export' to components not exporting Props interfaces
webstackdev Dec 8, 2025
b387643
Refactor server code in Carousel component to server/index.ts file, a…
webstackdev Dec 8, 2025
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
9 changes: 8 additions & 1 deletion .cache/pages.json
Original file line number Diff line number Diff line change
Expand Up @@ -25,18 +25,25 @@
"privacy": ["my-data"]
},
{
"services": ["create-custom-font-sets", "overview"]
"services": ["consulting", "overview", "web-development"]
},
{
"tags": [
"apiDesign",
"aws",
"ci",
"cms",
"code",
"crm",
"databaseNormalization",
"deployment",
"devPortals",
"graphql",
"online-learning",
"react",
"restful",
"services",
"sqlOptimization",
"typescript"
]
}
Expand Down
1 change: 1 addition & 0 deletions .github/instructions/general.instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ applyTo: "**"
- Always create TypeScript files, not JavaScript files.
- Prefer destructured imports over namespace imports when importing specific functions from modules (e.g., `import { resolve } from 'path'` instead of `import * as path from 'path'`).
- Do not access nanostore observables (e.g., `$consent`) directly from components; expose helper/action methods in `@components/scripts/store` and import those instead.
- Preact exists only for the Markdown E2E harness under `src/lib/markdown/__tests__/e2e`; all production UI components must use Lit web components instead of Preact.

# Code Organization and Directory Structure

Expand Down
8 changes: 3 additions & 5 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -79,11 +79,9 @@ jobs:
- name: Install dependencies
run: npm ci --legacy-peer-deps

- name: Sync Astro types
run: npm run sync

- name: Run Astro check
run: npm run check
# Astro build runs sync, check, and integrations including verify links
- name: Verify green build
run: npm run build

- name: Run unit tests (Vitest — coverage with GitHub Actions reporter)
id: vitest
Expand Down
3 changes: 3 additions & 0 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,9 @@ fi
# Run lint suite (includes TypeScript check + ESLint + Stylelint + JSON formatting)
npm run lint

# Make sure types are sync'ed before commit
npm run sync

# Verify branch naming convention
.husky/scripts/check-branch-name.sh

Expand Down
10 changes: 10 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,14 @@
"Fedibird",
"Fediverse",
"finnadie",
"firko",
"Flink",
"FNAME",
"fosstodon",
"FOUC",
"fprintf",
"glidejs",
"gomodule",
"GSAP",
"hocho",
"Hudi",
Expand Down Expand Up @@ -76,7 +79,12 @@
"pleroma",
"Poslovski",
"Postg",
"postgrest",
"psql",
"qpart",
"qparts",
"Qualys",
"redigo",
"registrator",
"repost",
"reposts",
Expand All @@ -103,11 +111,13 @@
"tsdoc",
"tseslint",
"tshirt",
"Turso",
"tydata",
"unspaced",
"unstub",
"uppy",
"uuidv",
"valyala",
"Veeam",
"vercel",
"virt",
Expand Down
37 changes: 33 additions & 4 deletions _TODO.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,16 @@
<!-- markdownlint-disable-file -->
# TODO

## Fix E2E mock container test runner, migrate DB providers

Refactor from using Suprabase and Upstash to using Astro DB + Turso

[Astro DB](https://docs.astro.build/en/guides/astro-db/)

## Mobile Social Shares

See the example image in Social Shares.

## Performance

Implement mitigations in test/e2e/specs/07-performance/PERFORMANCE.md
Expand Down Expand Up @@ -38,10 +48,6 @@ Lunr is a JS search library using an inverted index. Client-side search for stat

Right now we're using string literals to define HTML email templates for site mails. We should use Nunjucks with the rule-checking for valid CSS in HTML emails like we have in the corporate email footer repo.

## @TODO: Provide button to turn off animation in Hero

"Scaling/zooming animations are problematic for accessibility, as they are a common trigger for certain types of migraine. If you need to include such animations on your website, you should provide a control to allow users to turn off animations, preferably site-wide. Also, consider making use of the prefers-reduced-motion media feature — use it to write a media query that will turn off animations if the user has reduced animation specified in their system preferences. "

## Color vars

brand primary: #001733
Expand Down Expand Up @@ -101,12 +107,35 @@ cat.structure: Rules related to the document's overall structure, like the prope
cat.tables: Rules for data tables, including headers and associations.
cat.text-alternatives: Rules for ensuring that text alternatives are provided for non-text content, such as images.

## Privacy policy errors

fatal: /home/kevin/Repos/Webstack: '/home/kevin/Repos/Webstack' is outside repository at '/home/kevin/Repos/Webstack Builders/Corporate Website/astro.webstackbuilders.com'

[privacy-policy-version] Could not get privacy policy version from git: Command failed: git log -1 --format=%cd --date=format:%Y-%m-%d -- /home/kevin/Repos/Webstack Builders/Corporate Website/astro.webstackbuilders.com/src/pages/privacy/index.astro

fatal: /home/kevin/Repos/Webstack: '/home/kevin/Repos/Webstack' is outside repository at '/home/kevin/Repos/Webstack Builders/Corporate Website/astro.webstackbuilders.com'

⚠️ Privacy policy version fallback applied: 2025-12-08

## @TODO: Add Check HTML Links to test workflow

npm i -D check-html-links
npx check-html-links _site
`https://github.com/modernweb-dev/rocket/tree/main/packages/check-html-links`

22:38:43 [ERROR] [astro-link-validator] ❌ Found 2 broken links:
\n📄 index.html:
🔗 /services/web-development
File not found: services/web-development
Text: "Improve Your Product"
🔗 /services/consulting
File not found: services/consulting
Text: "Start from scratch"

## Tags

Can we add a markdown page to explain what each tag is, and use those pages instead of src/content/_tagList.ts to define the tags available?

## Social Media Preview Cards

Looking at the social-card endpoint implementation, it's designed to work with third-party screenshot services, not the social networks themselves.
Expand Down
11 changes: 11 additions & 0 deletions astro.config.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import AstroPWA from '@vite-pwa/astro'
import icon from 'astro-icon'
import linkValidator from 'astro-link-validator'
import lit from '@semantic-ui/astro-lit'
import mdx from '@astrojs/mdx'
import sentry from '@sentry/astro'
Expand All @@ -8,6 +9,7 @@ import tailwindcss from '@tailwindcss/vite'
import vercelStatic from '@astrojs/vercel'
import vtbot from 'astro-vtbot'
import { defineConfig } from 'astro/config'
import type { AstroUserConfig } from 'astro'
import { fileURLToPath } from 'node:url'
import type { PluginOption } from 'vite'
/**
Expand All @@ -22,6 +24,7 @@ import {
environmentalVariablesConfig,
getSentryAuthToken,
getSiteUrl,
isGitHub,
isUnitTest,
isVercel,
markdownConfig,
Expand Down Expand Up @@ -70,6 +73,13 @@ const standardIntegrations = [
exclude: ['downloads', 'social-shares', '/articles/demo', 'testing'],
}),
}),
/** Validate links in built site output on astro:build:done integration hook */
linkValidator({
checkExternal: isGitHub(),
failOnBrokenLinks: false,
verbose: true,
}),
/** Integration to write pages.json after build so E2E tests can discover what pages exist */
pagesJsonWriter(),
/** Debugging tools for Astro View Transition API */
vtbot(),
Expand All @@ -81,6 +91,7 @@ export default defineConfig({
enabled: false,
},
env: environmentalVariablesConfig,
markdown: markdownConfig as AstroUserConfig['markdown'],
/**
* Astro sets substantial Vite config internally in the framework. When you use Vitest
* in an Astro project, you use Astro's getViteConfig helper to get the resolved internal
Expand Down
Loading
Loading