Forked from herocast
https://docs.nounspace.com/nounspace-alpha/
a protocol for decentralized social apps: https://www.farcaster.xyz
- Clone the repo
- Install Supabase CLI:
e.g. for MacOS withbrew install supabase/tap/supabase
- Install dependencies
yarn install
- Create a file
.env.development.local
- Get the details you need for the file
a. get a Neynar API key https://docs.neynar.com/docs ->NEYNAR_API_KEY
b. get an Alchemy API key https://www.alchemy.com ->NEXT_PUBLIC_ALCHEMY_API_KEY
c. get your Farcaster account FID and mnemonic ->NEXT_PUBLIC_APP_FID
+APP_MNENOMIC
d. launch local copy of Supabase withsupabase start
, use the info provided ->
API URL
:NEXT_PUBLIC_SUPABASE_URL
+anon key
:NEXT_PUBLIC_SUPABASE_ANON_KEY
See the contributing docs for how to add to the code base.
The Nounspace App follows the Atomic Design Pattern
src/pages
holds the Page elements of the atomic design. These are separated from src/common
due to how Next.js handles routing.
src/common/ui
contains all of the display components for all other layers of the atomic design. src/common/ui/components
are a mixture of Molecules and Organisms that were imported from herocast
, they still need to be split into their appropriate folders (src/common/ui/molecules
& src/common/ui/organisms
).
src/common/data
contains access to datastreams, in the form of database connections and API's
src/common/lib
contains useful functions for accessing formatted data, along with helpers functions inside the utils
directory.
src/styles
contains information for managing website styling
src/constants
contains all static information that is needed to run the app. This includes actual constants, along with some global types
This file structure is adapted from herocast
, and not all files have been cleaned up properly. If you find files or data that are placed in the wrong location, please refactor it. For example, there are some constants that are not placed in the src/constants
directory, and instead are in the other files
reminder: key is an edcsa key not a 'normal' EVM address