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
40 changes: 40 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: Deploy to GitHub Pages

on:
push:
branches: [main]
pull_request:
workflow_dispatch:

permissions:
contents: read

concurrency:
group: pages
cancel-in-progress: false

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v7
- name: Install, build, and upload site
uses: withastro/action@v6
with:
node-version: 24

deploy:
if: github.event_name != 'pull_request'
needs: build
runs-on: ubuntu-latest
permissions:
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v5
10 changes: 7 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
# IDE and Editor files
node_modules/
dist/
.astro/

# IDE and editor files
.vscode/
.idea/
*.swp
*.swo

# OS generated files
# OS-generated files
.DS_Store
.DS_Store?
._*
Expand All @@ -22,4 +26,4 @@ npm-debug.log*
*.temp

# Personal documents
Profile.pdf
Profile.pdf
1 change: 0 additions & 1 deletion CNAME

This file was deleted.

47 changes: 46 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,46 @@
A minimal, fast-loading portfolio website available at **[daniissac.com](https://daniissac.com)**
# daniissac.com

The source for [daniissac.com](https://daniissac.com), a technical publication and project hub focused on networks, observability, technical learning, and practical tools.

## Local development

Requires Node.js 22.12 or newer.

```bash
npm install
npm run dev
```

## Content

- Writing: `src/data/writing/`
- Project overviews: `src/data/projects/`
- Shared site copy: `src/config.ts`
- Public assets: `public/`

## Publishing an article

Create a draft with a consistent filename, frontmatter, and network-focused outline:

```bash
npm run new:article -- "How DNS Resolution Actually Works"
```

The command prints the generated file and its local preview path. Drafts are available by direct URL during local
development, but they are excluded from production pages, RSS, the sitemap, and `llms.txt`.

1. Frame one reader question and define the practical outcome.
2. Develop the explanation around observable evidence, a useful mental model, practical checks, and known limits.
3. Keep `draft: true` while writing and preview with `npm run dev`.
4. Replace every placeholder, verify links, commands, code, citations, and image alt text.
5. Set `publishedDate` to the release date and change `draft` to `false`.
6. Run `npm test`, open a pull request, and merge after the build passes.
7. Publish a shorter LinkedIn version that links back to the site as the canonical article.

## Verification

```bash
npm test
```

The production build is written to `dist/`. GitHub Actions publishes `main` to GitHub Pages while preserving the custom domain.
13 changes: 13 additions & 0 deletions astro.config.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
import { defineConfig } from "astro/config";
import sitemap from "@astrojs/sitemap";
import tailwindcss from "@tailwindcss/vite";

export default defineConfig({
site: "https://daniissac.com",
output: "static",
trailingSlash: "always",
vite: {
plugins: [tailwindcss()],
},
integrations: [sitemap()],
});
12 changes: 0 additions & 12 deletions favicon.svg

This file was deleted.

163 changes: 0 additions & 163 deletions index.html

This file was deleted.

Loading