-
-### writing
-
-i write more than i share but here are some things that have made it out of my drafts folder recently
-
-<%= for post <- Enum.take(sorted_post_attrs(ctx), 3) do %>
- - <%= fmt_date(post[:date]) %>: [<%= post[:title] %>](<%= post[:permalink] %>)
-<% end %>
-
-
-### projects
-
-
diff --git a/priv/site/pages/search.html b/priv/site/pages/search.html
deleted file mode 100644
index 8e75ffd..0000000
--- a/priv/site/pages/search.html
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/priv/site/posts/2023-07-03-obsidianrc.md b/priv/site/posts/2023-07-03-obsidianrc.md
deleted file mode 100644
index b327357..0000000
--- a/priv/site/posts/2023-07-03-obsidianrc.md
+++ /dev/null
@@ -1,33 +0,0 @@
-+++
-date = 2023-07-23
-title = "obsidianrc - a programmer's approach to obsidian"
-page_title = "obsidian"
-+++
-
-my biggest hangup with obsidian has always been that it isn't vim. as a longtime vim user i'm used to being able to fully customize and extend my editing experience.
-
-there are many existing community plugins that make it easy to customize some parts of obsidian but whenever i would have an idea or a desired workflow that didn't fit into one of those existing boxes i was stuck.
-
-i had three options, roughly in order of immediate work required:
-
-1. adapt my own workflows to fit the existing options
-1. contribute to an existing community plugin and hope that the original author has time to review, merge in, and publish my change
-1. build my own plugin to do exactly what i want
-
-so today i had an idea for another, hopefully easier option: obsidianrc
-
-an obsidianrc is a personal, custom plugin that resembles an "[rc](https://superuser.com/questions/144339/vimrc-screenrc-bashrc-kshrc-etc-what-does-the-rc-mean)" file like a `.vimrc`. it has no one purpose but instead is a grab-bag of whatever the author needed at the time. an obsidian user's obsidianrc evolves with her as she comes up with new workflows or changes her existing workflows.
-
-the freedom of the obsidianrc is that it never needs to be used by anyone but its author. it's a workbench covered in jigs. if any bit of functionality ever sticks out as generally useful the code is easily (famous last words perhaps...) extracted into its own plugin and published in the community plugin repo.
-
-## create your own obsidianrc
-
-1. use the [obsidian-sample-plugin](https://github.com/obsidianmd/obsidian-sample-plugin) template
-1. name your repo `obsidianrc`
-1. install your obsidianrc in your vault
-1. fill your obsidianrc with whatever need whenever you need it
-1. (optional) use [BRAT](https://github.com/TfTHacker/obsidian42-brat) to install your obsidianrc and keep it up-to-date
-
-## what's in my obsidianrc?
-
-well at time of writing, not much. but you can take a look for yourself: [sloanelybutsurely/obsidianrc](https://github.com/sloanelybutsurely/obsidianrc)
diff --git a/priv/site/posts/2023-12-28-in-review-2023.md b/priv/site/posts/2023-12-28-in-review-2023.md
deleted file mode 100644
index 091f259..0000000
--- a/priv/site/posts/2023-12-28-in-review-2023.md
+++ /dev/null
@@ -1,19 +0,0 @@
-+++
-date = 2023-12-28
-title = "in review: 2023"
-page_title = "in review: 2023"
-+++
-
-- **january**: visited family in florida
-- **february**: switched to injections (dolls, i implore you to do the same)
-- **march**: back in florida for an elastic on-site (and an evening at disney world)
-- **april**: saw caroline polachek live
-- **may**: visited a friend in kentucky
-- **june**: was in a friend’s wedding, had brunch with friends passing through town, performed with the columbus gay men’s chorus, pride!! 🏳️🌈
-- **july**: vacationed in northern michigan, went to a minor league baseball game, saw an airshow (hayley’s first!), started a new job
-- **august**: went to the state fair
-- **september**: just enjoyed the last bits of summer
-- **october**: saw kim petras live in DC, started working towards my private pilot certificate
-- **november**: celebrated my 30th birthday
-- **december**: celebrated the holidays and rang in the new year with family and friends
-
diff --git a/priv/site/posts/2024-03-09-uses.md b/priv/site/posts/2024-03-09-uses.md
deleted file mode 100644
index 6dc87c7..0000000
--- a/priv/site/posts/2024-03-09-uses.md
+++ /dev/null
@@ -1,60 +0,0 @@
-+++
-title = "\"Uses This\""
-page_title = "uses"
-permalink = "/uses"
-date = 2024-03-09
-+++
-
-> **Have you considered adding a `/uses/` page to your own site, answering the same questions?**
-> \- [Daniel](https://wafer.baby/@d) of [usesthis.com](https://usesthis.com/)
-
-## Who are you, and what do you do?
-
-I'm a professional software engineer and once engineering manager. I work a day job but I'm also working with a good friend and former boss to bring [screen.garden](https://screen.garden), a real-time collaboration tool for PKMs and the web, to life.
-
-In my free time I sing with a local queer TTBB chorus, play table-top RPGs, watch Formula 1, and play video games.
-
-## What hardware do you use?
-
-I work atop a sit-stand desk I bought when I first started working remotely in 2017. It stays in the "sit" position 99% of the time. For work I use whatever machine my employer provides. Right now that's a 14in M3 MacBook Pro. Personally, I have an M1 MacBook Air which I love. A single thunderbolt cable runs from either of those machines to a [CalDigit TS4](https://www.caldigit.com/thunderbolt-station-4/) which connects it to power, ethernet, a USB hub, and my display.
-
-I use just the one display, a [GIGABYTE M32U](https://www.gigabyte.com/Monitor/M32U), which is a 32 inch, 4k, 144Hz monitor. Whenever someone is talking about replacing their monitor I always bring up refresh rate. It's one of those things that sounds like you wouldn't notice but it actually makes looking at a screen for most of your day a lot more pleasant. I've sat a no-name-brand monitor light and a Logitech webcam atop it.
-
-I have a collection of mechanical keyboards ([ErgoDox EZ](https://ergodox-ez.com/), [Keyboardio Atreus](https://shop.keyboard.io/products/keyboardio-atreus), to name a couple) which all live in a drawer while I type away on my [Glorious GMMK Pro](https://www.gloriousgaming.com/products/glorious-gmmk-pro-75-barebone-black) with [Glorious Panda tactile switches](https://www.gloriousgaming.com/products/glorious-panda-mechanical-switches?variant=37691905933487). I think Glorious's branding is a bit "cringe" to say the least but they were the only custom keyboard option I could get same-day at the nearby Micro Center when I needed to replace my [Pok3r](https://drop.com/buy/vortex-poker-iii-compact-keyboard) following a coffee spill incident.
-
-I talk to my coworkers and friends through a [Blue Yeti mic](https://www.bestbuy.com/site/blue-microphones-blue-yeti-professional-multi-pattern-usb-condenser-microphone/9737441.p?skuId=9737441) that I bought when a former employer gave everyone a couple hundred dollars for work-from-home equipment in early 2020 (despite my having already worked from my home my entire tenure there).
-
-At the edges of my desk are piles of scrunchies, a couple hair clips, my AirPods Pros, a pair of Sennheiser HD 600s, my iPhone 14 Pro Max (I always go "Max" or "Plus" for the extra battery life), an [Aquaphor lip balm stick](https://www.aquaphorus.com/products/lip-care/lip-repair-stick), some hand lotion, and a nice candle.
-
-Away from my desk I have a collection of cameras but the one I use the most is my Leica M6 which I usually shoot with a Voigtlander Nokton Classic 35mm f/1.4. I digitize my negatives with a beat-up Sony a6000, a cheap macro lens, and a [Valoi easy35](https://www.valoi.co/easy35).
-
-I have a couple Apple TV 4ks to stream content from the cloud and also the Plex Media Server running on a Synology NAS. I have a couple TVs in different rooms but the Xbox Series X stays connected to the 65 inch LG C1 OLED (once again which a high refresh rate).
-
-Finally, currently sitting on my nightstand wrapped in some FiiO IEMs is a 5th iPod Classic (aka an iPod Video) whose hard disk I've [replaced with a 512gb microSD card](https://www.iflash.xyz/). It's really incredible how well it still works.
-
-## And what software?
-
-These days I'm macOS all-the-way. I'm fully integrated into the ecosystem and the ergonomics and reliability of development on the platform is unparalleled in my opinion. Obviously I use a ton of software so I'll limit (mostly) to things I keep pinned to my dock (although most of the time I'm launching things from [Alfred](https://www.alfredapp.com/)):
-
-- [Firefox](https://www.mozilla.org/en-US/firefox/new/) to browse the web
-- [Fantastical](https://flexibits.com/fantastical) to manage several calendar accounts. I could just use Calendar.app but there are few features (like travel time and automatic event merging) that keep me renewing my subscription.
-- Mail.app for emails...
-- [Things 3](https://culturedcode.com/things/) makes sure I get things done. I switched from an Android phone to an iPhone many years ago just so I could use Things while I was away from my computer.
-- [Kitty](https://sw.kovidgoyal.net/kitty/) to run all of my command line apps. I always work within a `tmux` session so my terminal emulator doesn't really matter all that much (because I'm never using tabs or splits or whatever) but Kitty is quick and the [alternative icon](https://github.com/DinkDonk/kitty-icon) I use for it is really cute. I'm a vim user (neovim really) and have been since 2015. My neovim setup could be its own post...
-- Music - I switch between two libraries: 1. My local library which I sync with my iPod and 2. My iCloud, Apple Music backed library
-- [Dash 6](https://kapeli.com/dash) (usually via Alfred) to quickly reference documentation. Elixir / Hex package docs support is incredible
-- [Obsidian](https://obsidian.md) for personal, work, and TTRPG notes. I keep my plugins list slip with just Templater, DataView, Tasks, Periodic Notes, and of course screen.garden.
-- [Readwise Reader](https://readwise.io/read) as my read-later service
-
-I have to shout-out Lightroom with [Negative Lab Pro](https://www.negativelabpro.com/) for converting scans/photos of film negatives.
-
-
-## What would be your dream setup?
-
-I've obviously spoiled myself already so I'd keep most things the same but...
-
-I'd love a thunderbolt KVM of some kind that would let me swap _quickly_ between machines at the press of a button. I also feel like I'd benefit from a larger desk.
-
-I think about replacing my webcam with the Sony a6000 and replacing that with a newer, higher resolution mirrorless camera.
-
-I'm really hoping the ARM desktop / server market continues to become more accessible to the consumer market because the Synology NAS is looking a little worse-for-wear these days. I've thought about replacing it with a custom build x64 machine but the additional power consumption and heat keep me from doing it (I'm spoiled by these Apple ARM machines...).
diff --git a/site/index.html.pm b/site/index.html.pm
new file mode 100644
index 0000000..a8af549
--- /dev/null
+++ b/site/index.html.pm
@@ -0,0 +1,3 @@
+#lang pollen
+
+hey, i'm sloane! i'm a professional software engineer and an amateur musician, photographer, wife, chef, and pet mom.
diff --git a/site/index.ptree b/site/index.ptree
new file mode 100644
index 0000000..969f11d
--- /dev/null
+++ b/site/index.ptree
@@ -0,0 +1,3 @@
+#lang pollen
+
+index.html
diff --git a/site/pollen.rkt b/site/pollen.rkt
new file mode 100644
index 0000000..6472f96
--- /dev/null
+++ b/site/pollen.rkt
@@ -0,0 +1,17 @@
+#lang racket/base
+(require pollen/decode pollen/misc/tutorial txexpr)
+(provide (all-defined-out))
+
+(define site-name "sloane.sh")
+(define email "sloane@fastmail.com")
+
+(define txexpr-elements-proc decode-paragraphs)
+(define string-proc (compose1 smart-quotes smart-dashes))
+
+(define (root . elements)
+ (txexpr 'root empty (decode-elements elements
+ #:txexpr-elements-proc txexpr-elements-proc
+ #:string-proc string-proc)))
+
+(module setup racket/base
+ (provide (all-defined-out)))
diff --git a/site/template.html.p b/site/template.html.p
new file mode 100644
index 0000000..43f22ae
--- /dev/null
+++ b/site/template.html.p
@@ -0,0 +1,10 @@
+
+
+
+
+ ◊|site-name|
+
+
+ ◊(->html doc)
+
+
diff --git a/test/sloane_sh/front_matter_test.exs b/test/sloane_sh/front_matter_test.exs
deleted file mode 100644
index 001c281..0000000
--- a/test/sloane_sh/front_matter_test.exs
+++ /dev/null
@@ -1,42 +0,0 @@
-defmodule SloaneSH.FrontMatterTest do
- use ExUnit.Case
-
- alias SloaneSH.FrontMatter
-
- test "parses TOML front matter" do
- document = ~S"""
- +++
- foo = "bar"
- +++
- # Hello, World!
-
- This is a document with front matter.
- """
-
- assert {:ok, %{foo: "bar"}, "# Hello, World!" <> _} = FrontMatter.parse(document, %{})
- end
-
- test "returns an empty map is the document doesn't have front matter" do
- document = ~S"""
- # Hello, World!
-
- This is a document with front matter.
- """
-
- assert {:ok, %{} = map, document} = FrontMatter.parse(document, %{})
- assert %{} = map
- end
-
- test "errors in TOML front matter produce an error" do
- document = ~S"""
- +++
- foo = "bar
- +++
- # Hello, World!
-
- This is a document with front matter.
- """
-
- assert {:error, _} = FrontMatter.parse(document, %{})
- end
-end
diff --git a/test/sloane_sh_test.exs b/test/sloane_sh_test.exs
deleted file mode 100644
index a7ada2d..0000000
--- a/test/sloane_sh_test.exs
+++ /dev/null
@@ -1,3 +0,0 @@
-defmodule SloaneSHTest do
- use ExUnit.Case
-end
diff --git a/test/test_helper.exs b/test/test_helper.exs
deleted file mode 100644
index 869559e..0000000
--- a/test/test_helper.exs
+++ /dev/null
@@ -1 +0,0 @@
-ExUnit.start()