Sign in

Sam Littlefair

@littlefair.ca
272 followers 376 following 1K posts

Building @vowel.cc Formerly @storyblok.com, prismic.io, @lionsroar.com

PostsRepliesMedia
Sam Littlefair @littlefair.ca · 03/10/2026
@danabra.mov’s social file system article.
020
Sam Littlefair @littlefair.ca · 03/10/2026
But yes absolutely agree about interop.
010
Sam Littlefair @littlefair.ca · 03/10/2026
I wonder if the audience for microblogging has actually gone to Slack and Discord. They are spaces where like-minded people can share thoughts in text form with threaded replies, and they solve the moderation problem. If so, maybe there’s an opportunity in closed atproto social networks.
230
Reposted by Sam Littlefair
Martin Wattenberg @wattenberg.bsky.social · 02/10/2026
Four dimensions is too many! Let's unfold this 4D cube to three dimensions, then two, and then one. Don't worry, we'll put it back together again. The math is lovely, but it's the rhythm and dance of the lines that fascinates me here.
1378
Sam Littlefair @littlefair.ca · 02/10/2026
I've also had multiple Canadian friends request a version of the app that produces Canada-friendly palettes, called "Colour Horse." I'm looking into it.
100
Sam Littlefair @littlefair.ca · 02/10/2026
Two new updates to color.horse: A "contrast" option to push shades toward the endpoints of the ramps. (Available in the colorhorse npm package as well.) Color schemes encoded in the URL! Share a color scheme with a link: color.horse?a=25009c&b=0...
A screenshot of the colorhorse lightness options with a new "contrast" slider.
000
Sam Littlefair @littlefair.ca · 02/10/2026
Okay, how is this for a personal intro?
Intro on the homepage of my website:

Hi there, I'm Sam. I build tools for making websites (CMSs, SDKs, APIs, SSDs).

I write docs that solve three major problems for SaaS companies:

Repetitive support tickets
LLM hallucinations
Onboarding abandonment
I'm working on a project called Vowel. V1 is a developer-facing static site generator. V2 will be a consumer-facing decentralized social media app. (This website is made with Vowel.)
000
Sam Littlefair @littlefair.ca · 02/10/2026
No don't start with that either 😂
000
Sam Littlefair @littlefair.ca · 02/10/2026
I'm very excited for books on atproto.
010
Sam Littlefair @littlefair.ca · 02/10/2026
And custom ringtones for 99 cents.
010
Sam Littlefair @littlefair.ca · 02/10/2026
Yeah it's one area where it would be pretty easy to offer something substantially better than the mainstream standard.
010
Sam Littlefair @littlefair.ca · 02/10/2026
Heck yeah
010
Sam Littlefair @littlefair.ca · 02/10/2026
Nice!
010
Sam Littlefair @littlefair.ca · 02/10/2026
Thanks! Now I just need to remember to say that *before* I spend ten minutes explaining application infrastructure.
100
Sam Littlefair @littlefair.ca · 02/10/2026
So far, when I’m explaining atproto to people, the best analogy I’ve found is: “imagine if all of your Spotify likes were also on Tidal.” It would be cool if Bluesky found ways to showcase that.
291
Sam Littlefair @littlefair.ca · 02/10/2026
Brainstorm: Standard: Blog reader with a “recommend” button Teal: Music player with a “like” button Tangled: Code preview with a “fork” button Community: Calendar event with “rsvp”
3110
Sam Littlefair @littlefair.ca · 02/10/2026
Raise your hand if you want to see non-Bsky lexicons on Bluesky. @bookhive.buzz @standard.site @lexicon.community
3374
Sam Littlefair @littlefair.ca · 02/10/2026
Choose some cool non-Bsky lexicons that have momentum and find a way to integrate them in a way that feels native (even if it’s read-only). It’s one thing to say that the atmosphere is interoperable, but it would be whole ‘nother thing to interoperate.
1130
Sam Littlefair @littlefair.ca · 01/10/2026
I just updated my personal website (littlefair.ca) with a new masonry feed with different layouts for photos, articles, reviews, and bluesky posts. @vowel.cc provides the classes you might need and optional default styles, and then you can provide your own styles.css.
A masonry feed on the homepage of my website.A TUI showing the source markdown for the homepage and the CSS for the homepage.
010
Reposted by Sam Littlefair
Vowel @vowel.cc · 30/09/2026
👋 Follow here if you love blogs.
011
Sam Littlefair @littlefair.ca · 30/09/2026
The internet failed on its core promise.
littlefair.ca
The Websites We Deserve
Our lives run on websites. From banking apps to recipe notes, we have entrusted the web with virtually everything we care about. In exchange for our trust, the creators of the internet made us a promise: if you want to, you can create your own website and put it on the internet.
121
Reposted by Sam Littlefair
Andrey Sitnik @en.sitnik.es · 28/09/2026
Turn your website’s loading process into music. Forbes sounds surprisingly good. You could loop it and work to it. A great example of a website where someone clearly thought through every detail. We need more of that in the LLM era. blog.alena.rocks/en/artifacts...
093
Sam Littlefair @littlefair.ca · 28/09/2026
It needs more testing, but in principle that means that you can publish events, recipes, reviews. You can use your blog as the source for your whole atmosphere identity.
000
Sam Littlefair @littlefair.ca · 28/09/2026
The @vowel.cc v0.7 beta has full native atproto publishing. Define a lexicon for a folder (e.g., `app.bsky.feed.post`) and if the shape of the markdown files in that folder matches the lexicon, Vowel will authenticate you and POST the record to your PDS. It works for any lexicons.
101
Sam Littlefair @littlefair.ca · 28/09/2026
Holy crap.
000
Sam Littlefair @littlefair.ca · 28/09/2026
I'm testing an #atproto publish from Vowel.
000
Reposted by Sam Littlefair
Héliographe @heliographe.studio · 26/09/2026
I spent the summer prototyping a device that projects information and imbues computing into the real world, I call it the Lightbulb Computer. Full write up and demos at lightbulbcomputer.com Or on YouTube: youtu.be/0R-9qkjPEqg
lightbulbcomputer.com
The Lightbulb Computer — Reimagining Spatial & Ambient Computing with Projectors
A new direction for computing: projecting information into the real world to augment it, with a device that combines a projector and computer vision in the shape of a large lightbulb.
2286
Sam Littlefair @littlefair.ca · 28/09/2026
Wow this is so cool
000
Sam Littlefair @littlefair.ca · 25/09/2026
This is published with the current development version of @vowel.cc. Here's the source code. Vowel extracts metadata (title, breadcrumb, date) and generates the webpage in milliseconds. It publishes to Cloudflare (free hosting) and sends the atproto record to the atmosphere.
Screenshot of blog post source code:

September 25, 2026

Today is the day I put my blog on the atmosphere, powered by Vowel.
000
Sam Littlefair @littlefair.ca · 25/09/2026
My first blog post on the atmosphere 🪁 littlefair.ca/notes/atproto
littlefair.ca
Atproto
Today is the day I put my blog on the atmosphere, powered by Vowel.
121
Sam Littlefair @littlefair.ca · 25/09/2026
Just in time for the CTA redesign 🤩
000
Sam Littlefair @littlefair.ca · 25/09/2026
Oops, forgot to set my site.standard.publication: littlefair.ca/photography/...
littlefair.ca
Roses
a rose bush in bloom Roses in Glasgow in the springtime.
010
Sam Littlefair @littlefair.ca · 25/09/2026
I have done it. I have put my blog on the atmosphere 😭 I've been working towards an atmosphere integration for @vowel.cc for months, and this is the first Bluesky post of an atmosphere record created with Vowel. I'll share a bit more about it soon.
littlefair.ca
Roses
a rose bush in bloom Roses in Glasgow in the springtime.
120
Sam Littlefair @littlefair.ca · 25/09/2026
Projects like this are why atproto gives me hope for the internet.
010
Reposted by Sam Littlefair
Aaron Becker @aaronjbecker.bsky.social · 22/09/2026
You could find your way along the Nova Scotia coast blind, just by timing the blinks. Every lighthouse flashes on its own rhythm, a set interval and colour no neighbour repeats. Sambro Island off Halifax has burned since 1758, the oldest working lighthouse in North America. #lighthouse #NovaScotia
815057
Sam Littlefair @littlefair.ca · 22/09/2026
As a syntax, that's true. But as a data format, I don't think it matters. It's one of the most flexible, portable, compact file types in the world — and exponentially more so now that it's the lingua franca of LLMs. I think a lot of people are about to start using .md without even realizing it.
100
Sam Littlefair @littlefair.ca · 22/09/2026
I think a lot of people are working on the markdown approach 😏
110
Sam Littlefair @littlefair.ca · 22/09/2026
Iconic.
000
Sam Littlefair @littlefair.ca · 22/09/2026
The current design uses the visual language of embedded content. I would love for it to feel more native - akin to another post in the feed. Maybe like and repost buttons on the article, and a follow button on the publication?
000
Sam Littlefair @littlefair.ca · 18/09/2026
To be fair, that does feel like a random decision, so it’s sort of accurate.
010
Sam Littlefair @littlefair.ca · 17/09/2026
This gets really awesome when you have complex rule sets, like for repetitive nested layouts with slight variations.
000
Sam Littlefair @littlefair.ca · 17/09/2026
You can even use it backwards!! Nest the parent selector inside the child selector 🤯
Using the CSS & nesting selector to style an h1 based on its parent in nested rules.
110
Sam Littlefair @littlefair.ca · 17/09/2026
I'm refactoring the Vowel stylesheets, and my favorite discovery is using the & selector to identify an element inside its own nested rule. Want to style an element *and* children or variants of that element? .parent { &, .child { padding: 5px; /* applies to both parent and child */ } }
A screenshot of CSS showing an a tag styled by visited or not-visited with the & selector.
141
Reposted by Sam Littlefair
David Aerne @meodai.bsky.social · 15/09/2026
After testing 100s of imgs comparing tiny and big changes to the algo: I am now confident to present to you: The new okpalette.color.pizza. Powerful as before, ~40% faster, better at detecting good presets and much better at finding rare colors! Test it with your pics and let me know what you think
711211
Sam Littlefair @littlefair.ca · 15/09/2026
This is incredible
000
Sam Littlefair @littlefair.ca · 13/09/2026
😅 That’s the plan! I just need to tweak the design a little more so it looks good with different color combos.
010
Sam Littlefair @littlefair.ca · 12/09/2026
Me too! I might not be the best person to build something like this 😂
000
Sam Littlefair @littlefair.ca · 12/09/2026
Thank you!
010
Sam Littlefair @littlefair.ca · 12/09/2026
Yeah I wanted a way to generate all of the semantic colors automatically (success, warning, cancel, etc), so color.horse is my attempt to do that by selecting 12 hues from around the color wheel in a graduated distribution.
000
Sam Littlefair @littlefair.ca · 12/09/2026
Help me out! I'm trying to make a thumbnail for color.horse. Which one do you like best? (All randomly generated with colorhorse.)
Color Horse thumbnail in pink and greenColor Horse thumbnail in slightly different pink and greenColor Horse thumbnail in orange and yellowColor Horse thumbnail in magenta and yellow
310