Metoric Teachings Source Code
This is the source code of Metoric Teachings, a personal blog and portfolio.
-
Install dependencies
npm install
-
Start developing.
gatsby develop
-
Default structure:
. ├── public | └──public-files # => site wide config ├── src | ├── content # => content | ├── components | ├── config | | └──site.js # => site wide config | | └── taxonomy.yml # => taxonomy content | ├── images | ├── pages | ├── layouts | ├── styles | └── lib ├── postcss.config.cjs ├── astro.config.mjs
Posts are all Markdown files and should be placed in src/content/ and filed under the appropriate category. Pages can be Markdown or .js files placed in src/pages/.
Front matter available for Markdown files.
| Type | Description | Example | |
|---|---|---|---|
| title | string | Page title. | "How I use Jekyll to build sites" |
| path | string | Page permalink. | /category-name/file-name-slug/ |
| date | datetime | Published date. | 2020-01-09 |
| last_modified_at | datetime | Updated date. | 2020-01-09T13:52:13-05:00 |
| excerpt | string | Page description used a teaser text in listings and SEO purposes. | "This is a most excellent post about static site generators." |
| image | string | Path to an image (relative to the Markdown file) used as a cover or teaser in listings and SEO purposes. | ../../images/post-image.jpeg |
| categories | array | Categories to classify the post as. | [articles] |
| tags | array | Tags to classify the post as. | [web development, GitHub, tutorial] |
| toc | boolean | Display table of contents links. | true |
| hide_meta | boolean | Hide post meta data from page e.g. (date, read time, etc.) | true |
| comments | boolean | Display comments. Disabled by default. | true |
| comments_locked | boolean | Lock a comment threads discussion. | true |
| featured | boolean | Mark a post post/page as featured. | true |
HTML recipes and such for styling custom bits of content used in Markdown files.
TODO: Migrate into a component. For now HTML in Markdown will suffice.
Example:
<figure>
<img src="../../images/image.jpeg" alt="">
<figcaption><p>Figure caption goes here.</p></figcaption>
</figure>Two column rows:
<figure class="two-column">
<img src="../../images/image-1.jpeg" alt="">
<img src="../../images/image-2.jpeg" alt="">
<figcaption><p>Figure caption goes here.</p></figcaption>
</figure>Three column rows:
<figure class="three-column">
<img src="../../images/image-1.jpeg" alt="">
<img src="../../images/image-2.jpeg" alt="">
<img src="../../images/image-3.jpeg" alt="">
<figcaption><p>Figure caption goes here.</p></figcaption>
</figure>Call-out text via gatsby-remark-custom-blocks plugin with Markdown.
TBD
Example:
[[notice | iOS screen recording]]
| Apple has built this feature directly into iOS allowing you to [capture the screen](https://support.apple.com/en-us/HT207935) directly on device.TODO: Migrate into a component. For now HTML in Markdown will suffice.
Example:
<ul class="gallery-thumbnails">
<li>
<a href="../../images/thumbnail-1.jpeg">
<img src="../../images/image-1.jpeg" alt="">
</a>
</li>
...
</ul>Wrap an image with the .browser-frame class to give it browser chrome styling.
Example:
<div class="browser-frame">
<img src="../../images/webpage.jpeg" alt="">
</div>Style links to look like a button.
Example:
<p>
<a href="#" class="btn">Link label</a>
</p>Project Astro-Ascension is the branch-isolated, multi-agent workflow for moving this Astro 4.15 site toward Astro 6.2 compatibility while preserving SEO, content, Cloudflare D1 behavior, and core HTML structure.
- Codex / GPT-5.5 is the Mechanic: heavy logic, wiring, Astro component changes, and structural updates.
- Claude Opus / Anti-Gravity is the Architect: architecture documentation, structural analysis, and repo evaluation.
- Gemini 3 Pro is the Marathoner: long-session reviews, broad audits, and sustained iterative improvements.
- Jules is the Observer & Maintainer: background maintenance, builds, tests, and site integrity verification.
During the first bootstrap run, all agents follow the Architect baseline: documentation, repository evaluation, and structural analysis only. No migrations, dependency upgrades, UI changes, or runtime logic changes happen until the baseline is reviewed.
- Never commit directly to
main. - Use only these branch prefixes:
feature/,docs/,maintenance/, andContent/. - Work on a dedicated branch per task.
- Alok reviews and merges branches into
main. - Preserve SEO metadata, Cloudflare D1 bindings, and basic HTML structure unless a reviewed task explicitly changes them.
- Treat React components as read-only unless Alok explicitly assigns React work.
- During the first-run bootstrap and Milestone 2 audit work, keep changes limited to documentation and task-tracking surfaces such as
docs/,README.md,ARCHITECTURE.md, and the root agent task files. - Do not change runtime Astro components, API handlers, migrations, dependencies, or deployment configuration until the reviewed upgrade plan says that slice is ready.
- Preserve
src/content/config.tsin its current legacydefineCollectionshape until the approved Content Layer migration branch exists. - Preserve the
src/components/Head.astrotransition and analytics contract, especially theastro:after-swaplisteners and thewindow.checkAnalyticsConsent,window.trackEngagementEvent, andwindow.trackConversionEventglobals. - Preserve Cloudflare D1 invariants: binding
DB, database namemeteoric, database id8380ec22-098e-4814-a56f-48d907425b35, andnodejs_compat.
The repository uses five root task files:
central_milestones.mdtracks major milestones, why they matter, and how they split across agents.claude_tasks.mdtracks Architect tasks.codex_tasks.mdtracks Mechanic tasks.gemini_tasks.mdtracks Marathoner tasks.jules_tasks.mdtracks Observer & Maintainer tasks.
Granular execution tasks belong in agent-specific files, not in central_milestones.md.
The root skills/ directory codifies standard operating procedures for recurring work:
documentation.mdcontent_edition.mdfrontend_changes.mdbackend_changes.mddatabase_management.mddeployment.mdtest_and_build_verification.md
For implementation-sensitive Astro 6 work, start from these companion docs:
docs/astro_6_2_upgrade_plan.mddocs/astro_6_2_risk_inventory.mddocs/astro_6_2_implementation_audit.mddocs/d1_api_contract.md
The current project uses Astro ^4.15.12 and legacy-style content collections in src/content/config.ts. Astro 6.2 compatibility work must be phased. Do not proactively migrate existing collections to the Astro 5+ loader pattern during baseline setup. First audit breaking changes, document the compatibility path, and preserve current collection behavior until a reviewed migration branch exists.