We care a lot about quality. Because these small wins add up to a delightful experience
Try Alpine and let me know what other small wins we need: alpine.inc
@calebmer.com.bsky.social
solo founder. building a microsoft office you actually want to use (https://alpine.inc). previously infra at meta, early airtable, oss
We care a lot about quality. Because these small wins add up to a delightful experience
Try Alpine and let me know what other small wins we need: alpine.inc
(4/n) Our Cursor integration now lets you add a personal Cloud Agents API key so the agents you create are tied to your account
12.02.2026 15:15 β π 0 π 0 π¬ 1 π 0(3/n) Alpine doesn't have slash commands, everything is in one "@" menu (simple)
This wasn't discoverable enough so we added a placeholder telling people to use "@" and we added support for "/" to open the same menu to preserve peoples muscle memory
(2/n) Right click turn into preview on links
12.02.2026 15:15 β π 0 π 0 π¬ 1 π 0Small wins this week: @ menu automatically selects the first result when you press enter
(1/n)
Just one more link bro. I swear bro its behind just one more link, I swear
^ Me in Zoom meetings
You know what's better than a link? Having the information you need right in front of you
That's why everything in Alpine (the all-in-one work app) has rich previews:
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:
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
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:
If you want to chat more about your use case, Iβm happy to hop on a call: alpine.inc/meet-caleb
15.01.2026 15:54 β π 0 π 0 π¬ 1 π 0We 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!
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
13.01.2026 22:04 β π 1 π 0 π¬ 0 π 0I 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
Introducing Alpine
Your docs, tasks, chat, and AI finally in one app
alpine.inc
if you liked this, check out another demo:
22.08.2025 15:36 β π 0 π 0 π¬ 0 π 0slack 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
if you liked this, check out another demo:
bsky.app/profile/cale...
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
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β¦
if you liked this, check out another demo:
bsky.app/profile/cale...
if you liked this, check out another demo:
bsky.app/profile/cale...
this is only possible thanks to ai that organizes your work for you
24.07.2025 17:30 β π 0 π 0 π¬ 0 π 0gen-z doesn't know how the file system works so we're building the no-folders work app
24.07.2025 17:30 β π 0 π 0 π¬ 3 π 1finally, we use an svg mask to only render a border around the element
22.07.2025 15:08 β π 0 π 0 π¬ 0 π 0you'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
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
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...
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
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