Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
cbcd2b2
Add accessible help for time zone selection (#460)
shlokmestry Feb 11, 2026
de9d350
Add workshops page to mutua11y (#478)
courtneylinder Feb 11, 2026
a1bf690
Good news blog Jan 2026 (#480)
rachaelbradley Feb 13, 2026
9bca4a7
Astro and Plausible updates (#483)
brian-montgomery Feb 23, 2026
450f0d8
Issue #484: Post-netlify move cleanup (#486)
brian-montgomery Feb 26, 2026
72a2df4
Merge branch 'main' into brian/escape-room-login
brian-montgomery Mar 3, 2026
22e0ae4
In progress Auth and DB integration
brian-montgomery Mar 3, 2026
3591983
Forcing on static pages.
brian-montgomery Mar 3, 2026
e2e2967
Integrating `better-auth` with `drizzle` and prototype Escape Room
brian-montgomery Mar 3, 2026
b42f8b4
Add markdown definition list support
brian-montgomery Mar 4, 2026
95d8472
Revived Kit Page
brian-montgomery Mar 4, 2026
e3f10c3
Bump rollup in /astro in the npm_and_yarn group across 1 directory (#…
dependabot[bot] Mar 4, 2026
3a90aa1
Merge branch 'main' into brian/escape-room-login
brian-montgomery Mar 4, 2026
9691450
Bump the npm_and_yarn group across 1 directory with 2 updates (#488)
dependabot[bot] Mar 4, 2026
5a5ee3c
Merge branch 'main' into brian/escape-room-login
brian-montgomery Mar 4, 2026
4b47236
Update to navigation capabilities and theme coloring on Escape Rooms.
brian-montgomery Mar 4, 2026
a067f6a
Small fixes
brian-montgomery Mar 5, 2026
6c20006
Added two blogs by Amanda (#485)
aluevano859 Mar 12, 2026
db87965
DAF Town Hall agenda March 2026 (#506)
michael-n-cooper Mar 12, 2026
5e0432d
Issue #469: Use Atkinson Hyperlegible Next Variable font. (#508)
alexisreytech Mar 12, 2026
883b1be
Bump the npm_and_yarn group across 1 directory with 1 update (#494)
dependabot[bot] Mar 12, 2026
8474567
Bump the npm_and_yarn group across 1 directory with 2 updates (#509)
dependabot[bot] Mar 12, 2026
ae61252
Bump devalue in /astro in the npm_and_yarn group across 1 directory (…
dependabot[bot] Mar 12, 2026
e450548
Added Good News blog for February (#512)
rachaelbradley Mar 14, 2026
ea90f86
Bump undici in /astro in the npm_and_yarn group across 1 directory (#…
dependabot[bot] Mar 14, 2026
2a322fb
Added 'Designing for Everyone' blog article (#513)
rachaelbradley Mar 15, 2026
209a526
Added Autism Podcast blog (#514)
rachaelbradley Mar 19, 2026
10f7d5c
Added react-email and react renderer
brian-montgomery Mar 19, 2026
11273c2
Implemented initial email with Resend
brian-montgomery Mar 19, 2026
359dca9
Bump h3 in /astro in the npm_and_yarn group across 1 directory (#516)
dependabot[bot] Mar 19, 2026
82818d6
Bump h3 in /astro in the npm_and_yarn group across 1 directory (#518)
dependabot[bot] Mar 23, 2026
ffead40
Update content for Evaluations page. (#507)
alexisreytech Mar 23, 2026
e40d1e7
Update mentor and protegé form look and feel + Add 1 checkbox group (…
alexisreytech Mar 23, 2026
fb38452
Bump smol-toml in /astro in the npm_and_yarn group across 1 directory…
dependabot[bot] Mar 26, 2026
eab5841
Add login page.
brian-montgomery Mar 26, 2026
6a30a38
Issue #405: Update breadcrumb divider to have empty alt text for its …
alexisreytech Mar 26, 2026
42345d6
Bump the npm_and_yarn group across 1 directory with 3 updates (#525)
dependabot[bot] Mar 26, 2026
8ceee8c
Issue #521: Update contributors on team and podcast pages (#522)
rachaelbradley Mar 26, 2026
9767569
Security updates
brian-montgomery Mar 26, 2026
5fcd4e4
Domain update
brian-montgomery Mar 26, 2026
afd5a9b
Add 'Accessibility in Practice' blog (#527)
rachaelbradley Mar 27, 2026
79871f6
Merge branch 'main' into brian/escape-room-login
brian-montgomery Apr 2, 2026
8fca25a
DAF Town Hall: April 2026 (#530)
michael-n-cooper Apr 6, 2026
9e0c6c9
Issue #520: Make main skip link and nav links visible in dark mode. (…
alexisreytech Apr 6, 2026
35e013b
Bump the npm_and_yarn group across 1 directory with 2 updates (#526)
dependabot[bot] Apr 6, 2026
258e5a7
Security update for `lodash-es` to 4.18.x (#532)
brian-montgomery Apr 6, 2026
9ec0e41
Issue #430: Created `Column` and `ThemedColumn` components. (#535)
alexisreytech Apr 14, 2026
d50975c
Issue #426: Componentize image card (#427)
ashimupd Apr 14, 2026
dfa9892
march good news article
rachaelbradley Apr 15, 2026
1ac7a16
Revert previous commit (#539)
brian-montgomery Apr 15, 2026
7235f03
Issue #531: Update "ThemedSection" component to responsively reduce v…
alexisreytech Apr 15, 2026
25ffb88
March "Good News" Blog (#540)
rachaelbradley Apr 15, 2026
755b3aa
Merge branch 'main' into brian/escape-room-login
brian-montgomery Apr 16, 2026
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
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,6 @@ astro/src/protected-materials/
# Test files and debug content
**/test*.astro
**/debug*.astro
**/*-test.*
**/*-test.*
# Local Netlify folder
.netlify
144 changes: 77 additions & 67 deletions astro/astro.config.mjs
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
import { defineConfig, envField } from "astro/config";
import { remarkDefinitionList, defListHastHandlers } from 'remark-definition-list';
import styleGuide from "./style-guide/register.js";

import icon from "astro-icon";
import mdx from "@astrojs/mdx";
import netlify from '@astrojs/netlify';
import react from '@astrojs/react';
import robotsTxt from "astro-robots-txt";
import sitemap from "@astrojs/sitemap";

Expand All @@ -26,7 +28,7 @@ const botsToDisallow = [

export default defineConfig({
site: "https://accessiblecommunity.org",
output: 'server',
output: 'static',
adapter: netlify(),

server: {
Expand All @@ -41,6 +43,9 @@ export default defineConfig({
"/services/globa11y/": "/globa11y/",
"/services/mutua11y/": "/mutua11y/",
"/services/tip-of-the-week": "/tips/",
// Redirect to Github projects
"/fixable": "https://accessiblecommunity.github.io/fixable/",
"/useable": "https://accessiblecommunity.github.io/useable/",
},

vite: {
Expand All @@ -51,75 +56,80 @@ export default defineConfig({

env: {
schema: {
BETTER_AUTH_SECRET: envField.string({ context: "server", access: "secret", optional: false }),
BETTER_AUTH_URL: envField.string({ context: "server", access: "public", }),
DATABASE_URL: envField.string({ context: "server", access: "secret", optional: false }),
RESEND_API_KEY: envField.string({ context: "server", access: "secret", optional: false }),
// TODO: Remove later.
TEST_EMAIL: envField.string({ context: "server", access: "public", optional: false }),
}
},

integrations: [
mdx(),
styleGuide(),
icon({
include: {
// Bootstrap Icons
bi: [
// Navigation
'arrow-down-square', 'arrow-up-right-square', 'arrow-right-square', 'list',
// Contact Info
'envelope-at-fill', 'telephone-fill', 'geo-alt-fill',
// Social Media
'facebook', 'instagram', 'linkedin', 'rss-fill', 'tiktok', 'globe', 'mastodon', 'twitter',
// Descriptive
'gift-fill', 'pencil-fill', 'people-fill', 'person-fill',
// Additional icons
'check-circle-fill', 'exclamation-triangle-fill', 'file-text-fill', 'display-fill', 'puzzle-fill', 'tools',
'gift-fill', 'pencil-fill', 'people-fill', 'person-fill', 'puzzle-fill', 'stopwatch-fill', 'tools',
],
// CoreUI Brands
cib: [
// Social Media
'facebook', 'instagram', 'linkedin', 'mastodon', 'twitter',
// Streaming
'apple-podcasts', 'youtube',
// Payment
"cc-paypal", "cc-stripe", "paypal", "stripe",
],
'simple-icons': [
// Streaming
'podcastindex'
markdown: {
remarkPlugins: [ remarkDefinitionList, ],
remarkRehype: { handlers: defListHastHandlers },
},

integrations: [mdx(), react(), styleGuide(), icon({
include: {
// Bootstrap Icons
bi: [
// Navigation
'arrow-down-square', 'arrow-up-right-square', 'arrow-right-square', 'list',
// Contact Info
'envelope-at-fill', 'telephone-fill', 'geo-alt-fill',
// Social Media
'facebook', 'instagram', 'linkedin', 'rss-fill', 'tiktok', 'globe', 'mastodon', 'twitter',
'github',
// Descriptive
'gift-fill', 'pencil-fill', 'people-fill', 'person-fill',
// Additional icons
'check-circle-fill', 'exclamation-triangle-fill', 'file-text-fill', 'display-fill', 'puzzle-fill', 'tools',
'gift-fill', 'pencil-fill', 'people-fill', 'person-fill', 'puzzle-fill', 'stopwatch-fill', 'tools',
],
// CoreUI Brands
cib: [
// Social Media
'facebook', 'instagram', 'linkedin', 'mastodon', 'twitter',
// Streaming
'apple-podcasts', 'youtube',
// Payment
"cc-paypal", "cc-stripe", "paypal", "stripe",
],
'simple-icons': [
// Streaming
'podcastindex'
],
}
}), sitemap({
filter: (page) =>
!page.endsWith('/commitment-form/') &&
!page.includes('/fixable/') &&
!page.includes('/services/escape-room/content/') &&
!page.endsWith('tips/archive/')
}), robotsTxt({
sitemap: true,
policy: [
// Block specified bots entirely
...botsToDisallow.map((userAgent) => ({
userAgent,
disallow: ['/'],
})),
// General user-agent rules
{
userAgent: '*',
allow: ['/', '/materials/basic/'],
disallow: [
'/fixable/',
'/materials/premium/',
'/protected-materials/',
'/api/download-material',
'/api/digital-content',
'/api/verify-purchase',
'/services/escape-room/content/',
'/tips/archive/',
],
}
}),
sitemap({
filter: (page) =>
!page.endsWith('/commitment-form/') &&
!page.includes('/fixable/') &&
!page.includes('/services/escape-room/content/') &&
!page.endsWith('tips/archive/')
}),
robotsTxt({
sitemap: true,
policy: [
// Block specified bots entirely
...botsToDisallow.map((userAgent) => ({
userAgent,
disallow: ['/'],
})),
// General user-agent rules
{
userAgent: '*',
allow: ['/', '/materials/basic/'],
disallow: [
'/fixable/',
'/materials/premium/',
'/protected-materials/',
'/api/download-material',
'/api/digital-content',
'/api/verify-purchase',
'/services/escape-room/content/',
'/tips/archive/',
],
},
]
})
],
});
],
})],
});
2 changes: 1 addition & 1 deletion astro/drizzle.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ import { defineConfig } from 'drizzle-kit';

export default defineConfig({
out: './drizzle',
schema: './src/db/schema.ts',
schema: './src/db/schema',
dialect: 'postgresql',
dbCredentials: {
url: process.env.DATABASE_URL!,
Expand Down
53 changes: 53 additions & 0 deletions astro/drizzle/0000_secret_leo.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
CREATE TABLE "account" (
"id" text PRIMARY KEY NOT NULL,
"account_id" text NOT NULL,
"provider_id" text NOT NULL,
"user_id" text NOT NULL,
"access_token" text,
"refresh_token" text,
"id_token" text,
"access_token_expires_at" timestamp,
"refresh_token_expires_at" timestamp,
"scope" text,
"password" text,
"created_at" timestamp DEFAULT now() NOT NULL,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we need created by/updated by fields?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the automatic schema generated by better-auth. We didn't write this one.

"updated_at" timestamp NOT NULL
);
--> statement-breakpoint
CREATE TABLE "session" (
"id" text PRIMARY KEY NOT NULL,
"expires_at" timestamp NOT NULL,
"token" text NOT NULL,
"created_at" timestamp DEFAULT now() NOT NULL,
"updated_at" timestamp NOT NULL,
"ip_address" text,
"user_agent" text,
"user_id" text NOT NULL,
CONSTRAINT "session_token_unique" UNIQUE("token")
);
--> statement-breakpoint
CREATE TABLE "user" (
"id" text PRIMARY KEY NOT NULL,
"name" text NOT NULL,
"email" text NOT NULL,
"email_verified" boolean DEFAULT false NOT NULL,
"image" text,
"created_at" timestamp DEFAULT now() NOT NULL,
"updated_at" timestamp DEFAULT now() NOT NULL,
CONSTRAINT "user_email_unique" UNIQUE("email")
);
--> statement-breakpoint
CREATE TABLE "verification" (
"id" text PRIMARY KEY NOT NULL,
"identifier" text NOT NULL,
"value" text NOT NULL,
"expires_at" timestamp NOT NULL,
"created_at" timestamp DEFAULT now() NOT NULL,
"updated_at" timestamp DEFAULT now() NOT NULL
);
--> statement-breakpoint
ALTER TABLE "account" ADD CONSTRAINT "account_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
ALTER TABLE "session" ADD CONSTRAINT "session_user_id_user_id_fk" FOREIGN KEY ("user_id") REFERENCES "public"."user"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
CREATE INDEX "account_userId_idx" ON "account" USING btree ("user_id");--> statement-breakpoint
CREATE INDEX "session_userId_idx" ON "session" USING btree ("user_id");--> statement-breakpoint
CREATE INDEX "verification_identifier_idx" ON "verification" USING btree ("identifier");
Loading