View Code? Open in Web Editor
NEW
herocast is Farcaster’s leading open-source client. Our goal is to decentralize power on the internet, faster.
Home Page: https://app.herocast.xyz
License: GNU Affero General Public License v3.0
JavaScript 0.67%
CSS 0.38%
HTML 0.31%
TypeScript 97.19%
Rust 0.19%
PLpgSQL 1.26%
herocast's Issues
design can be inspired by Warpcast, e.g. https://warpcast.com/jessepollak
see previous cast in categories: Casts, Casts + Replies, Likes
see profile info
follow / unfollow
Types of lists
chronological follow feed for me
chronological follow feed for another user (see how vitaliks feed looks like)
trending feed
list of authors (I want to see all casts published by users x, y and z)
channel moderated feed
channel latest feed
we have 1., 3. and 6. right now
add info message / warning
setting HatsModuleFactory address 0xfe661c01891172046fee16d3a57c3cf456729efa
as Hats Delegator contract address
same hat id used for both admin and caster
unclear which account should be connected at:
'select account' step
when signing
when transferring
send details of deployed farcaster contract to user email
Desired flow would be:
Sign in with Farcaster (auth only to start)
Show me the feed of people I follow
Ability to view threads and profiles.
I think we can separate between
signup / signin flow can be generally improved
inspiration: https://warpcast.com/dwr.eth/0xd1356523
Why: channels have exploded (>8k channels right now) and it's only growing. Search is currently broken and only works for the exact name.
What:
move all Hats Protocol related components onto a separate page
requires an existing Hats Protocol tree (=permissions setup) plus admin hats and caster hat
optional: one click deploy a "pre-filled Hats tree" that requires as little input from user as possible
requirements:
add cast to be posted on schedule (date and time in UTC)
show list of scheduled casts and allow removing them
new DB table: draft
created_at: datetime utc
content: json data of cast
scheduled_for: datetime utc
posted_at: datetime utc
status: [draft | scheduled | published | error]
optional:
schedule by user timezone for better UX and convert in background to UTC)
allow editing scheduled casts
todo:
add basic infrastructure to render multiple toasts in /home with data in store
add 2-3 basic information popups for page switching and account or channel switching
what's the easiest way to limit this to appear once or twice per day?
when creating new account and something breaks, there's no way to go from Create account onchain
to Register username
step.
Next step assumes that there is a pending account (= account that isn't fully registered in herocast DB), but it is already created onchain.
user: @cameron
Assumptions :
existing Farcaster account setup via non-herocast tool
allow users in herocast to:
set fname
farcaster constraint: can only be done by an EOA ■ suggestion / warning
set profile display name
set profile pic
set profile bio
todo:
create re-usable modal
add modal in new account signup and on settings page
can remove the castTree manipulation.
Neynar API now returns {cast: {direct_replies: [{ ... }, { ... }]}}
etc
enter ens address of other users
show feed of onchain activity
learn from Interface how they do it, bring it to desktop experience with shortcuts etc
show name, description, Farcaster badges about author
bring a bunch of additional information together: ens, token holdings, etc
left aligned content is quite odd when I feel the majority of my web experience is with centered content.
This is particularly noticible when using a ultra wide monitor.
Consider changing to centered content or having the option to change it
when logging in from email account, hydrate isn't done but we're redirecting to /feed already
showing random follow others and right side 'add account'
make a screen for this state, check based on hydratedAt or something instead of feed content
Why: we want to support hotkeys in windows / across all desktop platforms.
Hotkeys are shown as CMD + K and Meta + Shift + a in windows.
those aren't working / not actionable.
The real values are:
replace Meta with either Windows / Apple
Replace CMD with Ctrl on Windows
add UX to register new Farcaster accounts, instead of only allowing existing Farcaster accounts to get connected
allow setting a name and profile
make sure UI isn't ultra confusing
Why: we want to stay on top of activity we're getting on our accounts.
What:
there is currently no way to see recent likes in herocast
there is only one list of reply notifications right now. but it shows the same thread repeatedly when other accounts reply to the same cast / in the same thread
generate a share-able link
prefill FID managed by Hats Protocol and contract address of Hats Protocol delegator
can be generated and shared widely, because user has to 'wear' the caster hat to be allowed to cast
follow this tutorial to build basic login flow https://supabase.com/docs/guides/auth/server-side/nextjs?router=pages
when user signs in with Farcaster:
create new account locally that has a new type farcaster_local
find a way to use channels and shortcuts and everything
unable to use any actions, make sure it doesn't break at least
add email signup view to settings, so that users have a path to upgrade
add option to explore app / skip login by scanning QR code with ask provided by Farcaster
searching for a word should give the correct channel suggestions
allow a herocast user that created a shared account to transfer fid back to EOA (eg back to warpcast or user owned wallet)
required steps:
signature from the receiving EOA
FarcasterDelegator.transferFID() tx executed by ownerHat-wearer
Why: increase user trust / decrease perceived risk of using a shared account in the first place
Currently the tsconfig.json
excludes all of node_modules
, making type hinting for all of the installed packages except the listed ones (react/next
, react-dom/next
, node
) not work. This makes development very hard, as most of the advantages of using typescript language server type hinting don't work. An easy fix is to remove the exclude
section from the config file.
I am opening this as an issue instead of a PR to promote a better discussion around why this choice was made at first
Given I am viewing the herocast feed
and I click into a cast to view the detail of it
then I click back
expected:
I am taken back to the feed
actual:
I am taken back to the main herocast screen
CORS issue when trying to call API from browser
simple fix → move call to NextJS API
similar open source clients implementations:
Navigate left-right with tab works, can use j / k to scroll notifications.
What is missing for a thread conversation (as in screenshot below):
add scrolling through replies with j / k
add reply with using r
add reply button into cast row for non-shortcuts users :)