378
Colin
@colin #378
cma.xyz. Founder /paragraph, ceo /mirror, previously at Google & Coinbase
342004 Follower 1568 Following
I've fallen down a home server rabbit hole over the past few months:
- purchased an Intel N100 mini PC
- running Proxmox with ~30 LXC containers and VMs
- PiHole for network-wide adblocking
- Paperless for document scanning, storage, and LLM-based retrieval
- Home Assistant for full home automation (lights on/off based on motion, etc)
- Plex for media server
- nginx proxy manager for reverse proxy to expose services to internet
I can understand why people love this hobby
- purchased an Intel N100 mini PC
- running Proxmox with ~30 LXC containers and VMs
- PiHole for network-wide adblocking
- Paperless for document scanning, storage, and LLM-based retrieval
- Home Assistant for full home automation (lights on/off based on motion, etc)
- Plex for media server
- nginx proxy manager for reverse proxy to expose services to internet
I can understand why people love this hobby
Semi-regular Paragraph annoyances thread: if you could force us to build one feature or fix one bug, what would it be?
Tried 3 new recipes for dinner, two of which ChatGPT came up with:
- saffron rice pilaf
- peach balsamic sous vide chicken thighs
- honey thyme carrots
Turned out very well overall!
Quite impressed with how capable ChatGPT is at coming up with recipes
- saffron rice pilaf
- peach balsamic sous vide chicken thighs
- honey thyme carrots
Turned out very well overall!
Quite impressed with how capable ChatGPT is at coming up with recipes
Loading...
We could support 100% automated crossposting from Substack/Medium/your own blog to Paragraph if we built a way to watch your RSS feed.
It’d look like this:
- post on [other site]
- we grab the post from the RSS feed
- we republish it on your Paragraph according to predefined settings you chose (eg deliver it via email)
It’d look like this:
- post on [other site]
- we grab the post from the RSS feed
- we republish it on your Paragraph according to predefined settings you chose (eg deliver it via email)
Loading...
I blame my first point loss on not knowing I could horizontally scroll the avatars
Cc @jc4p it’d be helpful to make it more obvious it’s horizontally scrollable!
Cc @jc4p it’d be helpful to make it more obvious it’s horizontally scrollable!

Very clean frame
Code snippets, nothing more nothing less
Code snippets, nothing more nothing less
Loading...
Dinner last night: salmon coconut curry
Delicious & easy to cook.
Recipe here: https://figandoliveplatter.com/30-minute-coconut-thai-salmon-curry/
Delicious & easy to cook.
Recipe here: https://figandoliveplatter.com/30-minute-coconut-thai-salmon-curry/
Is this the first generative AI mainstream hardware device being rolled out?
I have a mix of Google Homes and HomePods and have been waiting (though not holding my breath) for better AI. They can't hold a candle to ChatGPT advanced voice
https://www.aboutamazon.com/news/devices/new-alexa-generative-artificial-intelligence
I have a mix of Google Homes and HomePods and have been waiting (though not holding my breath) for better AI. They can't hold a candle to ChatGPT advanced voice
https://www.aboutamazon.com/news/devices/new-alexa-generative-artificial-intelligence
Historically I've always believed the composable social graph was the core value prop as a dev building atop Farcaster:
- bootstrap network effects to avoid cold start problem
- better onboarding by pulling in pre-existing user info
Now, I'm undecided on if the warplet + frames v2 are a better value prop:
- distribution rails via in-app notifications + users "adding frame"
- economic rails via Warpcast wallet
- directly meeting users where they are: read, subscribe, mint without ever leaving FC
- tapping into pre-existing user behavior (lots of users are sharing Paragraph links anyways! These links are now supercharged)
- bootstrap network effects & better onboarding as well! Open a frame and you're already logged in + social graph already attained
- bootstrap network effects to avoid cold start problem
- better onboarding by pulling in pre-existing user info
Now, I'm undecided on if the warplet + frames v2 are a better value prop:
- distribution rails via in-app notifications + users "adding frame"
- economic rails via Warpcast wallet
- directly meeting users where they are: read, subscribe, mint without ever leaving FC
- tapping into pre-existing user behavior (lots of users are sharing Paragraph links anyways! These links are now supercharged)
- bootstrap network effects & better onboarding as well! Open a frame and you're already logged in + social graph already attained
Loading...
I just minted my Faces of Farcaster. A custom, onchain art collection exclusively for Farcasters by @harmonybot and @sayangel
Cross-posting this here - we shipped lots of improvements with our Farcaster frame!
https://warpcast.com/colin/0x35c8230e
https://warpcast.com/colin/0x35c8230e
Loading...
Newly launched on Paragraph: we rebuilt our Farcaster frame from the ground up.
- In-app notifications: receive notifications from newsletters you're subscribed to, directly on FC
- One-tap subscribe: subscribe to writers in-frame
- Warpcast wallet: use Warpcast wallet to support writers & collect posts
- Discover great writing: get recommended writing, directly in-frame, based on subscriptions & who you follow on FC
Read more & add the frame: https://paragraph.xyz/@blog/new-paragraph-frame-on-farcaster
- In-app notifications: receive notifications from newsletters you're subscribed to, directly on FC
- One-tap subscribe: subscribe to writers in-frame
- Warpcast wallet: use Warpcast wallet to support writers & collect posts
- Discover great writing: get recommended writing, directly in-frame, based on subscriptions & who you follow on FC
Read more & add the frame: https://paragraph.xyz/@blog/new-paragraph-frame-on-farcaster
Initial thoughts on Claude 3.7 and Claude agent: extremely impressed
Braised chuck roast for 2 hours last night to make birria tacos.
Overall a bit disappointed in the taste given the amount of effort put into cooking it, but alas
Overall a bit disappointed in the taste given the amount of effort put into cooking it, but alas
Feedback on frames v2 docs & specifications after working on the Paragraph v2 frame:
- events are a bit confusing: some code examples reference `Farcaster.events.on` and others reference `sdk.on`
- "see full example" Github link is broken on the specs page
- primaryButtonClick code example at the bottom is wrong; should be `primaryButtonClicked`
- would prefer hooks over callbacks
- provider configuration is confusing: connected set to true by default? immediately tries to connect on provider setup? I had to change a handful of things to get it working
- overall specification is clear but a few things could be a bit clearer (SetPrimaryButton -> what does hidden/enabled do? There's also no mention of loading but there is a loading param in the code)
- unclear why SDK needs to be lazy-loaded using a dynamic component vs just doing nothing on the server-side
- debugging is a struggle: https://warpcast.com/colin/0x61b315b3
- events are a bit confusing: some code examples reference `Farcaster.events.on` and others reference `sdk.on`
- "see full example" Github link is broken on the specs page
- primaryButtonClick code example at the bottom is wrong; should be `primaryButtonClicked`
- would prefer hooks over callbacks
- provider configuration is confusing: connected set to true by default? immediately tries to connect on provider setup? I had to change a handful of things to get it working
- overall specification is clear but a few things could be a bit clearer (SetPrimaryButton -> what does hidden/enabled do? There's also no mention of loading but there is a loading param in the code)
- unclear why SDK needs to be lazy-loaded using a dynamic component vs just doing nothing on the server-side
- debugging is a struggle: https://warpcast.com/colin/0x61b315b3
Loading...
Inverse of the lean startup:
- raise a ridiculous amount of money
- don't ship product or iterate
- spend a lot of time & effort on a very public, splashy launch
- don't listen to users nor really talk to them at all
- raise a ridiculous amount of money
- don't ship product or iterate
- spend a lot of time & effort on a very public, splashy launch
- don't listen to users nor really talk to them at all
Loading...
Feature request: better debugging for frames.
The frame validator / frame embed tools don't provide much information on what's wrong with a given URL. We've struggled with getting frames validated.
I would love a way to drop in a frame URL and it tells you everything that could possibly be wrong. Eg:
- warning, no domain manifest hosted at domain
- error, domain manifest contains wrong domain since it doesn't match host
- error, we detected metatags xyz but we were actually expecting metatags abc
In this example, it works locally via localtunnel but not in prod and the error doesn't indicate why -- image URL is identical between the two
cc @deodad
The frame validator / frame embed tools don't provide much information on what's wrong with a given URL. We've struggled with getting frames validated.
I would love a way to drop in a frame URL and it tells you everything that could possibly be wrong. Eg:
- warning, no domain manifest hosted at domain
- error, domain manifest contains wrong domain since it doesn't match host
- error, we detected metatags xyz but we were actually expecting metatags abc
In this example, it works locally via localtunnel but not in prod and the error doesn't indicate why -- image URL is identical between the two
cc @deodad
As part of the recent Paragraph redesign we migrated from the NextJS pages directory to the app directory and Next 15 best practices:
- heavy use of React server components + suspense boundaries + fetching as far down the React component tree as possible (versus, before, we blocked the entire page for ~seconds until everything loaded)
- partial pre-rendering, so suspense boundaries load immediately
- fetch-level caching w/ revalidation
Cool to see core metrics improve significantly as a result.
- heavy use of React server components + suspense boundaries + fetching as far down the React component tree as possible (versus, before, we blocked the entire page for ~seconds until everything loaded)
- partial pre-rendering, so suspense boundaries load immediately
- fetch-level caching w/ revalidation
Cool to see core metrics improve significantly as a result.
Flagging that I would love a way to verify frame context data!
Would be great to log users directly into /paragraph when launched into a frame, but since this is spoofable, can't do so without first requiring eg signature.
Would be great to log users directly into /paragraph when launched into a frame, but since this is spoofable, can't do so without first requiring eg signature.
What's the best way to determine, *on the server side*, if a user is viewing a page within a frame v2?
Client side solutions won't work for us given that we heavily rely on RSCs.
User agent contains Warpcast/462?
cc @deodad
Client side solutions won't work for us given that we heavily rely on RSCs.
User agent contains Warpcast/462?
cc @deodad