A static website for sharing curated resources (books, videos, tools) for parents of autistic children, with blog posts and a contact form. Content is managed through a web-based admin panel (DecapCMS).
- Astro (static site generator)
- DecapCMS (content management via
/admin) - Netlify (hosting, forms, identity)
- Plain CSS with custom properties
npm install
npm run devThe site will be available at http://localhost:4321.
Push to GitHub and connect to Netlify. The netlify.toml handles build configuration automatically.
After connecting your GitHub repo to Netlify, complete these steps in the Netlify dashboard:
-
Enable Identity
- Go to Site settings > Identity > Enable Identity
-
Set registration to Invite Only
- Identity > Registration > set to "Invite only"
-
Enable Git Gateway
- Identity > Services > Enable Git Gateway
-
Invite the site admin
- Identity > Invite users > enter the admin's email address
- They'll receive an email to set a password
-
Log in to the CMS
- Visit
yoursite.netlify.app/admin - Log in with the credentials from the invite email
- Visit
-
Set up form notifications (optional but recommended)
- Forms > contact > Outgoing notifications > add email notification
- This sends you an email whenever someone submits the contact form
-
Custom domain (optional)
- Domain settings > Add custom domain
- Follow Netlify's instructions for DNS configuration
All content is managed through the admin panel at /admin. Log in with your Netlify Identity credentials to:
- Create and edit blog posts with a rich text editor
- Add resources with type, topic, age range, and recommendation badges
- Upload images that are stored in the repository
Changes go through Git, so you have full version history of all content.
src/
content/
blog/ # Blog post markdown files
resources/ # Resource markdown files
content.config.ts # Collection schemas
layouts/
BaseLayout.astro # Shared layout with nav, footer, CSS
pages/
index.astro # Home page
about.astro # About page
contact.astro # Contact form (Netlify Forms)
blog/
index.astro # Blog listing
[id].astro # Individual blog post
resources/
index.astro # Resource library with filters
[id].astro # Individual resource page
public/
admin/
index.html # DecapCMS entry point
config.yml # CMS collection configuration
images/uploads/ # Uploaded media