chore: updated pages and nav to path style 7adfa550
Steve · 2026-05-23 19:30 24 file(s) · +57 −56
src/content/pages/about.mdx +3 −3
1 1
---
2 -
title: About
2 +
title: /about
3 3
---
4 4
5 5
import { Image } from "astro:assets";
6 6
import aboutImg from "../../assets/pfp.png";
7 7
import Diagram from "@/components/blog/Diagram.astro";
8 8
9 -
# About Me
9 +
# /about
10 10
11 11
My name is Steve and I'm a DX Engineer with a passion for developer tooling that advances an open web. I'm currently working at [Stablecore](https://stablecore.com) as a senior solutions engineer. I'm also working on a host of other [projects](/projects), the latest being [Andromeda](https://andromeda.build). Check out what else I've been up to recently at my [now page](/now)!
12 12
24 24
25 25
Feel free to [reach out](mailto:contact@stevedylan.dev)!
26 26
27 -
# About This Site
27 +
## About this Site
28 28
29 29
This website was built with [Astro](https://astro.build), and started out with the [Astro Cactus theme](https://astro.build/themes/details/astro-cactus/), but has significantly diverged as the years have gone by. Astro is an incredible framework for building personal sites/blogs and I would highly recommend it to anyone looking for a solution that needs just a bit more juice than your standard SSG.
30 30
src/content/pages/uses.md +1 −1
1 -
# Uses
1 +
# /uses
2 2
3 3
A non-comprehensive list of things I'm currently using.
4 4
src/data/constants.ts +17 −17
6 6
7 7
export const MENU_LINKS = [
8 8
	{
9 -
		title: "Home",
9 +
		title: "/home",
10 10
		path: "/",
11 11
	},
12 12
	{
13 -
		title: "About",
13 +
		title: "/about",
14 14
		path: "/about",
15 15
	},
16 16
	{
17 -
		title: "Blog",
17 +
		title: "/blog",
18 18
		path: "/posts",
19 19
	},
20 20
	{
21 -
		title: "Projects",
21 +
		title: "/projects",
22 22
		path: "/projects",
23 23
	},
24 24
	{
25 -
		title: "CV",
25 +
		title: "/cv",
26 26
		path: "/cv",
27 27
	},
28 28
	{
29 -
		title: "Now",
29 +
		title: "/now",
30 30
		path: "/now",
31 31
	},
32 32
	{
33 -
		title: "Feeds",
33 +
		title: "/feeds",
34 34
		path: "/feeds",
35 35
	},
36 36
	{
37 -
		title: "Blogroll",
37 +
		title: "/blogroll",
38 38
		path: "/blogroll",
39 39
	},
40 40
	{
41 -
		title: "Library",
41 +
		title: "/library",
42 42
		path: "/library",
43 43
	},
44 44
	{
45 -
		title: "Bookmarks",
45 +
		title: "/bookmarks",
46 46
		path: "/bookmarks",
47 47
	},
48 48
	{
49 -
		title: "Git",
49 +
		title: "/git",
50 50
		path: "/git",
51 51
	},
52 52
	{
53 -
		title: "Cellar",
53 +
		title: "/cellar",
54 54
		path: "/cellar",
55 55
	},
56 56
	{
57 -
		title: "Birds",
57 +
		title: "/birds",
58 58
		path: "/birds",
59 59
	},
60 60
	{
61 -
		title: "Art Cal",
61 +
		title: "/art-cal",
62 62
		path: "/art-calendar",
63 63
	},
64 64
	{
65 -
		title: "Uses",
65 +
		title: "/uses",
66 66
		path: "/uses",
67 67
	},
68 68
	{
69 -
		title: "Photos",
69 +
		title: "/photos",
70 70
		path: "https://steve.photo",
71 71
	},
72 72
	{
73 -
		title: "Links",
73 +
		title: "/links",
74 74
		path: "/links",
75 75
	},
76 76
];
src/pages/about.astro +1 −1
3 3
import { Content } from "../content/pages/about.mdx";
4 4
5 5
const meta = {
6 -
	title: "About",
6 +
title: "/about",
7 7
	description: "More about Steve Simkins",
8 8
};
9 9
---
src/pages/art-calendar.astro +2 −2
21 21
};
22 22
23 23
const meta = {
24 -
  title: "Art Calendar",
24 +
  title: "/art-calendar",
25 25
  description:
26 26
    "A different painting every day from the Art Institute of Chicago.",
27 27
};
52 52
  <div class="flex min-h-screen flex-col items-start justify-start gap-6">
53 53
    <div class="flex flex-col gap-1 w-full">
54 54
      <div class="flex flex-row justify-between items-center w-full">
55 -
        <h1 class="title">Art Calendar</h1>
55 +
        <h1 class="title">/art-calendar</h1>
56 56
        <div class="flex gap-2 items-center">
57 57
          <a
58 58
            class="inline-block p-2 sm:hover:text-link"
src/pages/birds.astro +2 −2
3 3
import { birds } from "@/data/birds";
4 4
5 5
const meta = {
6 -
	title: "Birds",
6 +
	title: "/birds",
7 7
	description: "My life list — every species I've logged on Merlin Bird ID",
8 8
};
9 9
---
11 11
<PageLayout meta={meta}>
12 12
	<div class="flex min-h-screen flex-col items-start justify-start gap-6">
13 13
		<div>
14 -
			<h1 class="title">Birds</h1>
14 +
      <h1 class="title">/birds</h1>
15 15
			<p class="mt-2 text-sm text-zinc-400">{birds.length} species observed</p>
16 16
		</div>
17 17
		<div class="flex w-full flex-col sm:grid sm:grid-cols-2">
src/pages/blogroll.astro +2 −2
4 4
import PageLayout from "@/layouts/Base.astro";
5 5
6 6
const meta = {
7 -
	title: "Blogroll",
7 +
	title: "/blogroll",
8 8
	description: "A collection of RSS feeds I'm subscribed to",
9 9
};
10 10
20 20
21 21
<PageLayout meta={meta}>
22 22
  <div class="space-y-6">
23 -
    <h1 class="title">Blogroll</h1>
23 +
    <h1 class="title">/blogroll</h1>
24 24
    <p>
25 25
      Help build a blog network with me! Check out some of the people I follow
26 26
      below, and if you end up following them too, create a <a
src/pages/bookmarks.astro +2 −2
15 15
};
16 16
17 17
const meta = {
18 -
	title: "Bookmarks",
18 +
	title: "/bookmarks",
19 19
	description: "Links I've saved and want to read",
20 20
};
21 21
36 36
37 37
<PageLayout meta={meta}>
38 38
	<div class="flex min-h-screen flex-col items-start justify-start gap-6">
39 -
		<h1 class="title">Bookmarks</h1>
39 +
    <h1 class="title">/bookmarks</h1>
40 40
		{error ? (
41 41
			<p class="text-red-400 text-sm">Could not load bookmarks: {error}</p>
42 42
		) : categories.length === 0 ? (
src/pages/cellar/index.astro +2 −2
5 5
import WineCard from "@/components/page/WineCard.astro";
6 6
7 7
const meta = {
8 -
	title: "Cellar",
8 +
	title: "/cellar",
9 9
	description: "My wine tasting log",
10 10
};
11 11
28 28
29 29
<PageLayout meta={meta}>
30 30
	<div class="flex min-h-screen flex-col items-start justify-start gap-6">
31 -
		<h1 class="title">Cellar</h1>
31 +
    <h1 class="title">/cellar</h1>
32 32
		{error ? (
33 33
			<p class="text-red-400 text-sm">Could not load wines: {error}</p>
34 34
		) : wines.length === 0 ? (
src/pages/cv.astro +2 −2
2 2
import PageLayout from "@/layouts/Base.astro";
3 3
4 4
const meta = {
5 -
	title: "CV",
5 +
	title: "/cv",
6 6
	description: "History of work",
7 7
};
8 8
49 49
50 50
<PageLayout meta={meta}>
51 51
	<div class="space-y-6">
52 -
		<h1 class="title">CV</h1>
52 +
    <h1 class="title">/cv</h1>
53 53
		<div class="relative space-y-10">
54 54
			<span class="absolute left-[4px] top-3 bottom-0 w-px bg-gradient-to-b from-accent to-transparent" aria-hidden="true"></span>
55 55
			{experience.map((job, i) => (
src/pages/feeds.astro +2 −2
3 3
import { RSS_FEEDS } from "@/data/constants";
4 4
5 5
const meta = {
6 -
	title: "Feeds",
6 +
	title: "/feeds",
7 7
	description: "RSS feeds available on this site",
8 8
};
9 9
---
10 10
<PageLayout meta={meta}>
11 11
  <div class="space-y-6">
12 -
    <h1 class="title">Feeds</h1>
12 +
    <h1 class="title">/feeds</h1>
13 13
    <p>RSS feeds available on this site and some of my other apps. Drop any of these into your reader of choice.</p>
14 14
    <ul class="list-none pl-0 grid grid-cols-1 sm:grid-cols-2 gap-4">
15 15
      {RSS_FEEDS.map((feed) => {
src/pages/git.astro +2 −2
6 6
} from "../../scripts/shiki-setup.mjs";
7 7
8 8
const meta = {
9 -
	title: "Git",
9 +
	title: "/git",
10 10
	description: "Access the open source repos I'm working on",
11 11
};
12 12
20 20
21 21
<PageLayout meta={meta}>
22 22
	<div class="space-y-6">
23 -
		<h1 class="title">Git</h1>
23 +
    <h1 class="title">/git</h1>
24 24
		<p>Access my open source repos either through <a href="https://github.com/stevedylandev" target="_blank" rel="noreferrer" class="style-link">GitHub</a> or over SSH:</p>
25 25
		<div set:html={codeHtml} />
26 26
	</div>
src/pages/index.astro +1 −0
15 15
---
16 16
17 17
<PageLayout meta={{ title: "Steve Simkins" }}>
18 +
  <h1 class="title mb-4">/</h1>
18 19
  <section>
19 20
    <p class="mb-4">
20 21
      DX Engineer with a passion for developer tooling that advances an open
src/pages/kill-your-lawn.astro +1 −1
3 3
import { Content } from "../content/pages/lawn.mdx";
4 4
5 5
const meta = {
6 -
	title: "Kill Your Lawn",
6 +
	title: "/kill-your-lawn",
7 7
	description: "Before it kills you",
8 8
};
9 9
---
src/pages/library.astro +2 −2
14 14
};
15 15
16 16
const meta = {
17 -
	title: "Library",
17 +
	title: "/library",
18 18
	description: "Books I'm reading, have read, and want to read",
19 19
};
20 20
46 46
47 47
<PageLayout meta={meta}>
48 48
	<div class="flex min-h-screen flex-col items-start justify-start gap-6">
49 -
		<h1 class="title">Library</h1>
49 +
    <h1 class="title">/library</h1>
50 50
		{error ? (
51 51
			<p class="text-red-400 text-sm">Could not load books: {error}</p>
52 52
		) : books.length === 0 ? (
src/pages/links.astro +2 −2
3 3
import { SOCIAL_ITEMS } from "@/data/constants";
4 4
5 5
const meta = {
6 -
	title: "Links",
6 +
	title: "/links",
7 7
	description: "Connect with me on all the things",
8 8
};
9 9
---
10 10
11 11
<PageLayout meta={meta}>
12 12
  <div class="space-y-6">
13 -
    <h1 class="title mb-6">Links</h1>
13 +
    <h1 class="title mb-6">/links</h1>
14 14
    <ul class="flex flex-col items-start gap-x-4 sm:flex-initial">
15 15
      {
16 16
        SOCIAL_ITEMS.map((link) => (
src/pages/murmurations.astro +1 −1
3 3
import Murmurations from "@/components/page/Murmurations.astro";
4 4
5 5
const meta = {
6 -
	title: "Murmurations",
6 +
	title: "/murmurations",
7 7
  description: "Birds, math, and poetry in motion",
8 8
};
9 9
---
src/pages/now/index.astro +2 −2
5 5
import NowUpdates from "@/components/now/NowUpdates.astro";
6 6
7 7
const meta = {
8 -
	title: "Now",
8 +
	title: "/now",
9 9
	description: "What I'm up to recently",
10 10
};
11 11
---
12 12
<PageLayout meta={meta}>
13 13
  <div class="space-y-6">
14 -
    <h1 class="title">Now</h1>
14 +
    <h1 class="title">/now</h1>
15 15
    <p>What I'm up to recently</p>
16 16
    <ul class="list-disc pl-4 space-y-4">
17 17
      <li>Working as Senior Solutions Engineer at Stablecore</li>
src/pages/posts/[...page].astro +2 −2
23 23
const { page, uniqueTags } = Astro.props;
24 24
25 25
const meta = {
26 -
	title: "Blog",
26 +
	title: "/blog",
27 27
	description: "Posts by Steve",
28 28
};
29 29
44 44
---
45 45
46 46
<PageLayout meta={meta}>
47 -
  <h1 class="title mb-6">Blog</h1>
47 +
  <h1 class="title mb-6">/blog</h1>
48 48
	<div class="grid gap-y-16 sm:grid-cols-[3fr_1fr] sm:gap-x-8">
49 49
		<section aria-label="Blog post list">
50 50
			<ul class="space-y-8 text-left">
src/pages/projects.astro +2 −2
4 4
import { projects } from "@/data/projects";
5 5
6 6
const meta = {
7 -
	title: "Projects",
7 +
	title: "/projects",
8 8
	description: "What I've worked on over the years",
9 9
};
10 10
---
11 11
12 12
<PageLayout meta={meta}>
13 13
	<div class="flex min-h-screen flex-col items-start justify-start gap-6 max-w-none">
14 -
	<h1 class="title">Projects</h1>
14 +
    <h1 class="title">/projects</h1>
15 15
		{projects.map((project, index) => <ProjectCard content={project} index={index} />)}
16 16
	</div>
17 17
</PageLayout>
src/pages/soundboard.astro +2 −2
2 2
import PageLayout from "@/layouts/Base.astro";
3 3
4 4
const meta = {
5 -
	title: "Soundboard",
5 +
	title: "/soundboard",
6 6
	description: "Click buttons. Hear sounds.",
7 7
};
8 8
18 18
19 19
<PageLayout meta={meta}>
20 20
  <div class="space-y-6">
21 -
    <h1 class="title mb-6">Soundboard</h1>
21 +
    <h1 class="title mb-6">/soundboard</h1>
22 22
    <div class="grid grid-cols-2 gap-4 sm:grid-cols-3">
23 23
      {
24 24
        sounds.map((sound) => (
src/pages/tags/index.astro +1 −1
7 7
const allTags = getUniqueTagsWithCount(allPosts);
8 8
9 9
const meta = {
10 -
	title: "All Tags",
10 +
	title: "/tags",
11 11
	description: "All Tags from my blogs",
12 12
};
13 13
---
src/pages/uses.astro +1 −1
3 3
import { Content } from "../content/pages/uses.md";
4 4
5 5
const meta = {
6 -
	title: "Uses",
6 +
	title: "/uses",
7 7
	description: "Things I use every day",
8 8
};
9 9
---
src/pages/videos.astro +2 −2
2 2
import PageLayout from "@/layouts/Base.astro";
3 3
4 4
const meta = {
5 -
	title: "Videos",
5 +
	title: "/videos",
6 6
	description: "Video content made by Steve Simkins",
7 7
};
8 8
18 18
19 19
<PageLayout meta={meta}>
20 20
	<div class="space-y-6">
21 -
	<h1 class="title">Videos</h1>
21 +
    <h1 class="title">/videos</h1>
22 22
		<p>Here are some samples of video content I've produced to help users!</p>
23 23
		{
24 24
			videoIds.map((id) => (