Caleb Meredith
calebmer.com
Caleb Meredith
@calebmer.com
solo founder. building a microsoft office you actually want to use (https://alpine.inc). previously infra at meta, early airtable, oss
Pinned
Introducing Alpine

Your docs, tasks, chat, and AI finally in one app

alpine.inc
How many browser tabs do you have open right now? Too many! You're losing time context switching

We solve this in Alpine (a new all-in-one work suite) by opening a mobile phone sized window you can use without breaking your flow state

Check it out:
February 2, 2026 at 3:38 PM
Slack + Notion's search are woefully primitive

Excuse me for getting technical, this is what Alpine search uses:

> LLM embeddings in a vector db
> NLP for searches like "my posts from last month"
> Affinity score to boost the most relevant stuff
> BM25 keyword matching
January 20, 2026 at 4:07 PM
I have a problem. I'm obsessed with craft.

Alpine took 3 years to launch because I cared (too deeply?) about every pixel

You can see this in tables. I played with many tables while building ours and we have the slickest implementation I've seen.

Check it out:
January 16, 2026 at 3:05 PM
If you want to chat more about your use case, I’m happy to hop on a call: alpine.inc/meet-caleb
January 15, 2026 at 3:54 PM
We also want a folder-like feature (near the top of our roadmap)

So “no folder” isn’t 100% accurate. We want to optimize for quick capture and letting the system organize itself but if there’s structure you want, we should let you create that structure!
January 15, 2026 at 3:54 PM
Yes. We definitely want deep integrations with all the tools we currently use! You shouldn't need to migrate anything to get value from Alpine
January 13, 2026 at 10:04 PM
I was asked "how does Alpine reduce context switching" on ProductHunt. The answer so obvious you'll never look at your Slack + Notion setup the same way again

To mention a doc in Alpine you hit @, type a bit, select and get a little in app preview

That's it that's the post
January 13, 2026 at 10:03 PM
Introducing Alpine

Your docs, tasks, chat, and AI finally in one app

alpine.inc
January 12, 2026 at 5:38 PM
if you liked this, check out another demo:
notion is so buggy

the new oss openai model likes tables, let's see what it's like trying to create a table in notion…
August 22, 2025 at 3:36 PM
slack violates a fundamental principle of design: fitt's law

the amount of time it takes your eye to move from one bit of the screen to another is based on how far apart they are

the time i wasted reorienting after opening a thread, sheesh

glad i’m not using slack anymore
August 22, 2025 at 3:36 PM
if you liked this, check out another demo:

bsky.app/profile/cale...
notion is so buggy

the new oss openai model likes tables, let's see what it's like trying to create a table in notion…
August 15, 2025 at 3:07 PM
apple notes is where i kept all my tasks for years

even at companies that used jira! or linear!

that's why in our task tracker app we made it as easy to create a task as it is to create an apple note. ZERO friction
August 15, 2025 at 3:07 PM
if you liked this, check out another demo:

bsky.app/profile/cale...
gen-z doesn't know how the file system works so we're building the no-folders work app
August 7, 2025 at 3:43 PM
notion is so buggy

the new oss openai model likes tables, let's see what it's like trying to create a table in notion…
August 7, 2025 at 3:43 PM
if you liked this, check out another demo:

bsky.app/profile/cale...
after getting absolutely wrecked by my friend in mario kart this weekend…

i added the Switch 2 glowy focus rings to my docs app

work should be fun :)
August 7, 2025 at 3:37 PM
if you liked this, check out another demo:

bsky.app/profile/cale...
tired of ruining your document every time you try to move an image? Alpine's got you

follow for more product demo videos
August 7, 2025 at 3:36 PM
this is only possible thanks to ai that organizes your work for you
July 24, 2025 at 5:30 PM
gen-z doesn't know how the file system works so we're building the no-folders work app
July 24, 2025 at 5:30 PM
finally, we use an svg mask to only render a border around the element
July 22, 2025 at 3:08 PM
you'll notice the conic gradient didn't cover the entire menu item. that's because the animation ends up looking really bad on very wide elements (like this one) if you don't stretch out the gradient!

we apply a css transform to make sure the gradient covers the entire element
July 22, 2025 at 3:08 PM
next, you need a conic gradient

annoyingly, html supports conic gradients but svg doesn't. so we need to use svg's <foreignObject> element to embed a <div> with a conic gradient in the svg
July 22, 2025 at 3:08 PM
this technique is hard to build/maintain so accessibility engineers usually take the easy road of a css outline. but imo absolutely positioning your focus rings is critical if you want them to look great in all the weird edge cases your app has to offer

discord.com/blog/how-dis...
July 22, 2025 at 3:08 PM
absolutely positioning focus rings in a generic way is hard!

i read a blog post by discord 5 years ago which inspired me to reimplement their system in our app
July 22, 2025 at 3:08 PM
we need to use svg to create the glowy effect. we can't use a css border or outline

so we have to start with an absolutely positioned <svg> element that renders on top of whatever we're trying to focus
July 22, 2025 at 3:08 PM
how we built glowy selectors for our docs app

and we did it with a technique from Discord that terrifies accessibility engineers everywhere 🧵
July 22, 2025 at 3:08 PM