devXY web presence
https://devxy.io
| .vscode | ||
| post-template | ||
| public | ||
| scripts | ||
| src | ||
| src-dev | ||
| .gitignore | ||
| .lycheeignore | ||
| .npmrc | ||
| .pre-commit-config.yaml | ||
| .prettierignore | ||
| .prettierrc | ||
| .prettierrc.json | ||
| .terraform.lock.hcl | ||
| astro.config.mjs | ||
| backend.tf | ||
| bun.lock | ||
| bunny.tf | ||
| Justfile | ||
| LICENSE.md | ||
| package.json | ||
| provider.tf | ||
| README.md | ||
| renovate.json | ||
| s3.tf | ||
| tsconfig.json | ||
| vars.tf | ||
devXY Website
An Astro 5.x static website for devXY, built with TypeScript and Tailwind CSS.
Quick Start
bun install
bun run dev
# Build for production
bun run build
# Preview production build
bun run preview
Content Creation
Adding Blog Posts
-
Create new markdown file in
src/content/blog/ -
Add frontmatter with required fields:
--- draft: false title: "Your Post Title" description: "Brief description for SEO" slug: "your-post-slug" image: "your-image.png" # Place in src/assets/blog-images/thumbnails/ imageAlt: "Alt text for image" publishDate: 2024-01-01 category: "your-category" categories_rss: ["category1", "category2"] author: "Your Name" tags: ["tag1", "tag2"] --- -
Write content in Markdown
-
Images are automatically optimized and imported
Adding Images
- Place images in
src/assets/blog-images/thumbnails/ - Reference by filename only in blog post frontmatter
- System automatically handles import and optimization
Icons
Add new icon sets:
bun add @iconify-json/<icon-set-name>
Use icons:
<Icon name="mdi:home" />
Find icons at Iconify
Fonts
- Install via Fontsource:
bun add @fontsource/font-name - Import in
src/layouts/Layout.astro - Configure in
src/styles/theme.css
Deployment
Environment Variables
SITE_URL- Site URL for current environmentUMAMI_ID- Analytics tracking ID
Build Process
- Environment-specific builds set proper analytics and
robots.txt - Static files generated to
/dist - Deployed to AWS S3 + Bunny CDN
- Terraform manages infrastructure