Skip to content

Commit eea8e75

Browse files
committed
Revert "Rebrand nounspace to blankspace (#1699)"
This reverts commit b6145c3.
1 parent 223ac56 commit eea8e75

File tree

89 files changed

+1328
-757
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

89 files changed

+1328
-757
lines changed

README.md

Lines changed: 98 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -1,116 +1,145 @@
1-
# Blankspace
1+
# nounspace
22

3-
**A platform where communities build their home on Farcaster.**
3+
**Highly customizable [Farcaster](https://farcaster.xyz/) client, initially funded by a grant from [Nouns DAO](https://nouns.wtf/).** Customize the look, sound, content, and functionality of your public profile space and personal feed/homebase with **Themes**, **Tabs**, and a growing library of mini-apps called **Fidgets**.
44

5-
Blankspace gives token communities, DAOs, and Farcaster channels a customizable homebase with community tools (fidgets) for governance, token management, feeds, and more. Each community gets their own branded experience with custom themes, navigation, and pages.
65

7-
Initially funded by a grant from [Nouns DAO](https://nouns.wtf/). Forked from [herocast](https://github.com/hellno/herocast/) in April 2024.
6+
Forked from [herocast](https://github.com/hellno/herocast/) in April 2024.
87

9-
## Docs
10-
11-
📚 **[View Full Documentation](https://blankdotspace.github.io/space-system/docs/)**
12-
13-
Quick links:
14-
- [Getting Started](docs/GETTING_STARTED.md) - Local development setup
15-
- [Architecture](docs/ARCHITECTURE/OVERVIEW.md) - System design
16-
- [Contributing](docs/CONTRIBUTING.md) - How to contribute
17-
18-
> Documentation source: [`docs/`](docs/) • Docusaurus site: [`docs-site/`](docs-site/)
8+
# Docs
9+
https://docs.nounspace.com/nounspace-alpha/
1910

2011
## What is Farcaster?
21-
22-
A protocol for decentralized social apps: https://www.farcaster.xyz
12+
a protocol for decentralized social apps: https://www.farcaster.xyz
2313

2414
## 🏗️ Dev Setup
2515

2616
1. **Clone the repo**
2717
```bash
28-
git clone https://github.com/blankdotspace/space-system.git
29-
cd space-system
30-
```
31-
18+
git clone https://github.com/Nounspace/nounspace.ts.git
19+
cd nounspace.ts
3220
2. **Install Supabase CLI**
33-
34-
On macOS:
21+
On Mac OS, for example:
3522
```bash
3623
brew install supabase/tap/supabase
24+
```
25+
26+
Install Docker Desktop on macOS:
27+
```bash
3728
brew install --cask docker
3829
open /Applications/Docker.app
3930
```
4031
Wait for Docker Desktop to finish initializing before continuing.
4132

42-
On Linux (Debian/Ubuntu):
33+
On Linux:
34+
35+
First, install Homebrew (if not already installed):
4336
```bash
44-
# Install Homebrew if needed
4537
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
38+
```
39+
Follow the instructions in your terminal to add Homebrew to your PATH.
40+
Generally, you'll need to run these commands (replace `.bashrc` with your shell configuration file if different):
41+
42+
```bash
43+
(echo; echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"') >> ~/.bashrc
44+
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
45+
```
4646
47-
# Install Supabase
47+
You may also need to install some dependencies first (Debian/Ubuntu):
48+
```bash
49+
sudo apt-get install build-essential procps curl file git
50+
```
51+
52+
Then install Supabase:
53+
```bash
4854
brew install supabase/tap/supabase
49-
50-
# Install Docker
55+
```
56+
57+
Install Docker (Debian/Ubuntu):
58+
```bash
5159
sudo apt-get update
5260
sudo apt-get install -y docker.io docker-compose-plugin
5361
sudo systemctl enable --now docker
5462
sudo usermod -aG docker "$USER"
5563
```
56-
Log out/in for Docker group membership to take effect.
64+
Log out/in (or restart your shell) so the new group membership takes effect.
65+
For other distros, follow the [official Docker Engine docs](https://docs.docker.com/engine/install/).
5766
58-
3. **Install dependencies**
67+
Make sure Docker is installed and running before continuing.
68+
4. Install dependencies
5969
```bash
6070
yarn install
61-
```
62-
63-
4. **Set up environment variables**
64-
65-
Create `.env.development.local` with:
66-
- `NEYNAR_API_KEY` - [Neynar API](https://docs.neynar.com/docs)
67-
- `NEXT_PUBLIC_ALCHEMY_API_KEY` - [Alchemy](https://www.alchemy.com)
68-
- `ETHERSCAN_API_KEY` - [Etherscan](https://docs.etherscan.io/getting-started/)
69-
- `COINGECKO_API_KEY` - [CoinGecko](https://www.coingecko.com/en/api)
70-
- `CLANKER_API_KEY` - Request from the Blankspace or Clanker team
71-
- `YOUTUBE_API_KEY` - [YouTube API](https://developers.google.com/youtube/v3)
72-
- `NEXT_PUBLIC_APP_FID` + `APP_MNEMONIC` - Your Farcaster account
73-
- Supabase keys (from step 5)
74-
75-
5. **Start Supabase and run migrations**
71+
6. Create a file `.env.development.local`
72+
7. Get the environment variables you need for the file <br>
73+
a. get a Neynar API key https://docs.neynar.com/docs -> `NEYNAR_API_KEY` <br>
74+
b. get an Alchemy API key https://www.alchemy.com -> `NEXT_PUBLIC_ALCHEMY_API_KEY` <br>
75+
c. get an Etherscan API key https://docs.etherscan.io/getting-started/ -> 'ETHERSCAN_API_KEY' <br>
76+
d. get a CoinGecko API key https://www.coingecko.com/en/api -> 'COINGECKO_API_KEY' <br>
77+
e. get a Clanker API key https://github.com/clanker-devco/DOCS -> 'CLANKER_API_KEY' (dev portal coming soon; request a key from the nounspace or Clanker team for now) <br>
78+
f. get a Youtube API key https://developers.google.com/youtube/v3 -> 'YOUTUBE_API_KEY' <br>
79+
g. get your Farcaster account FID and mnemonic -> `NEXT_PUBLIC_APP_FID` + `APP_MNEMONIC`<br>
80+
h. launch local copy of Supabase with `supabase start` (in the root directory of this repo), use the info provided -> <br>
81+
`API URL`:`NEXT_PUBLIC_SUPABASE_URL` + `anon key`:`NEXT_PUBLIC_SUPABASE_ANON_KEY`
82+
83+
8. Run the setup script
84+
```bash
85+
./setup.sh
86+
```
87+
The script will attempt to start Supabase automatically if Docker is running; otherwise it will skip this step.
88+
89+
9. **Seed the local database**
90+
After Supabase is running and migrations are applied, seed the database:
7691
```bash
77-
supabase start
92+
# Run migrations and seed SQL (if not already done)
7893
supabase db reset
79-
```
80-
Use the `API URL` for `NEXT_PUBLIC_SUPABASE_URL` and `anon key` for `NEXT_PUBLIC_SUPABASE_ANON_KEY`.
81-
82-
6. **Seed the local database**
83-
```bash
94+
95+
# Seed community configs and navPage spaces
8496
yarn seed
8597
```
8698
87-
This creates storage buckets, community configs, domain mappings, and NavPage registrations.
88-
89-
Verify seeding worked:
90-
```bash
91-
yarn seed --check
92-
```
99+
This will:
100+
- Upload Nouns assets to ImgBB (if `NEXT_PUBLIC_IMGBB_API_KEY` is set)
101+
- Create navPage space registrations
102+
- Seed community configs (nouns, example, clanker)
103+
- Upload navPage space configs to Supabase Storage
93104
94-
7. **Run the test suite**
105+
10. Run the test suite
95106
```bash
96107
yarn test
97108
```
98109
99-
8. **Build and run**
100-
```bash
101-
cp .env.development.local .env.local
102-
yarn build
103-
yarn dev
104-
```
110+
11. cp .env.development.local .env.local
111+
12. yarn build
112+
113+
## Contributing and making Fidgets
114+
115+
See the [contributing docs](docs/CONTRIBUTING.MD) for how to add to the code base. Register on [Scout Game](https://scoutgame.xyz/) to earn points for contributions to repos in the [nounspace org](https://github.com/Nounspace/).
116+
117+
## Code Design
118+
119+
The Nounspace App follows the Atomic Design Pattern
120+
![atomic_design](https://github.com/Nounspace/nounspace.ts/assets/7180740/2c892612-c730-4e74-bd32-3e7a8a6babbb)
121+
122+
`src/pages` holds the Page elements of the atomic design. These are separated from `src/common` due to how Next.js handles routing.
123+
124+
`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`).
125+
126+
`src/common/data` contains access to datastreams, in the form of database connections and API's
127+
128+
`src/common/lib` contains useful functions for accessing formatted data, along with helpers functions inside the `utils` directory.
129+
130+
`src/styles` contains information for managing website styling
105131

106-
## Contributing
132+
`src/constants` contains all static information that is needed to run the app. This includes actual constants, along with some global types
107133

108-
See the [contributing docs](docs/CONTRIBUTING.md) for how to add to the codebase. Register on [Scout Game](https://scoutgame.xyz/) to earn points for contributions to repos in the [blankdotspace org](https://github.com/blankdotspace/).
134+
### Refactoring
109135

110-
## License
136+
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 them to correct file or folder. For example, there are some constants that are not placed in the `src/constants` directory, and instead are in the other files.
111137

112-
Blankspace is released under the GPL-3.0 License. Feel free to fork and modify—just be sure any version you release uses the GPL-3.0 License too.
138+
### DB scheme: accounts
139+
reminder: key is an edcsa key not a 'normal' EVM address
113140

114-
**Made with ❤️ by the Blankspace team & community.**
141+
### License
142+
nounspace is released under the GPL-3.0 License. Feel free to fork and modify the project—just be sure any version you release uses the GPL-3.0 License too.
115143

116-
Questions or feedback? Create a [GitHub issue](https://github.com/blankdotspace/space-system/issues) or contact us in [Discord](https://discord.gg/eYQeXU2WuH)
144+
**Made with ❤️ by the Nounspace team & community.**
145+
Questions or feedback? Create a [Github issue](https://github.com/Nounspace/nounspace.ts/issues) or contact us in [Discord](https://discord.gg/eYQeXU2WuH)

docs/ARCHITECTURE/AUTHENTICATION.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Authentication System
22

3-
The Blankspace authentication system combines Privy for wallet-based authentication with Farcaster for social identity, creating a seamless Web3 social experience.
3+
The Nounspace authentication system combines Privy for wallet-based authentication with Farcaster for social identity, creating a seamless Web3 social experience.
44

55
## Architecture Overview
66

docs/ARCHITECTURE/OVERVIEW.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Architecture Overview
22

3-
Blankspace is built on a modern, modular architecture that combines Next.js App Router with Zustand state management, creating a highly customizable Farcaster client experience.
3+
Nounspace is built on a modern, modular architecture that combines Next.js App Router with Zustand state management, creating a highly customizable Farcaster client experience.
44

55
## High-Level Architecture
66

docs/ARCHITECTURE/STATE_MANAGEMENT.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# State Management Architecture
22

3-
Blankspace uses a sophisticated Zustand-based state management system with store composition, persistence, and optimistic updates.
3+
Nounspace uses a sophisticated Zustand-based state management system with store composition, persistence, and optimistic updates.
44

55
## Architecture Overview
66

docs/CONTRIBUTING.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
# Contributing
22

3-
To add any code to the `blankdotspace/space-system` repo, you will need to open a PR.
3+
To add any code to the `nounspace/Nounspace.ts` repo, you will need to open a PR.
44

55
## TypeScript
6-
Blankspace is written fully in TypeScript with strict type checking enabled.
6+
Nounspace is written fully in TypeScript with strict type checking enabled.
77

88
## Steps to open a PR
9-
Blankspace expects its contributors to follow the "Fork and Pull" method to open PRs. Below is a TL;DR for this process
9+
Nounspace expects its contributors to follow the "Fork and Pull" method to open PRs. Below is a TL;DR for this process
1010

11-
1. Fork `blankdotspace/space-system`
11+
1. Fork `nounspace/Nounspace.ts`
1212
a. Press the `fork` button at the top of the page
1313
b. Copy the fork locally (`git clone {your url}`)
14-
c. Set up the `upstream` to `blankdotspace/space-system` (`git remote add upstream [email protected]:blankdotspace/space-system.git`)
14+
c. Set up the `upstream` to `nounspace/Nounspace.ts` (`git remote add upstream [email protected]:Nounspace/nounspace.ts.git`)
1515
2. Make changes in your fork
1616
3. Commit your changes to your fork and push them to Github
1717
4. Open a PR in the Github webapp

docs/DEVELOPMENT/AGENTS.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
# Blankspace Codex Instructions
1+
# Nounspace Codex Instructions
22

33
## Project Snapshot
4-
- **Product**: Blankspace – a highly customizable Farcaster client funded by Nouns DAO.
4+
- **Product**: Nounspace – a highly customizable Farcaster client funded by Nouns DAO.
55
- **Core Concepts**: Spaces (customizable hubs), Tabs (layout blocks), Themes (visual skins), and Fidgets (mini-apps that augment a space).
66
- **Tech Stack**: Next.js (App Router), TypeScript, React, Tailwind CSS, Zustand (with mutative middleware), React Query, Axios, Supabase, Privy-based auth, and Wagmi/Viem for blockchain integrations.
77

docs/DEVELOPMENT/COMPONENT_ARCHITECTURE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Component Architecture
22

3-
Blankspace follows atomic design principles with a modular component architecture that promotes reusability, maintainability, and scalability.
3+
Nounspace follows atomic design principles with a modular component architecture that promotes reusability, maintainability, and scalability.
44

55
## Atomic Design Structure
66

docs/DEVELOPMENT/DEBUGGING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Debugging Guide
22

3-
This guide covers debugging strategies, tools, and techniques for the Blankspace codebase to help developers identify and resolve issues effectively.
3+
This guide covers debugging strategies, tools, and techniques for the Nounspace codebase to help developers identify and resolve issues effectively.
44

55
## Debugging Philosophy
66

docs/DEVELOPMENT/DEVELOPMENT_GUIDE.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
# Blankspace - Instructions
1+
# Nounspace - Instructions
22

33
## 1. Overview
44

5-
Blankspace is a highly customizable [Farcaster](https://farcaster.xyz/) client, initially funded by a grant from [Nouns DAO](https://nouns.wtf/). The project aims to provide users with a unique social media experience where they can personalize their profile space and personal feed with Themes, Tabs, and mini-applications called Fidgets.
5+
Nounspace is a highly customizable [Farcaster](https://farcaster.xyz/) client, initially funded by a grant from [Nouns DAO](https://nouns.wtf/). The project aims to provide users with a unique social media experience where they can personalize their profile space and personal feed with Themes, Tabs, and mini-applications called Fidgets.
66

77
### Problem Statements
88
- Traditional social media platforms offer limited customization options
@@ -206,7 +206,7 @@ export const createStoreFunc = (
206206
## 5. User Stories
207207

208208
### Visitor
209-
- As a visitor, I want to explore public spaces to understand what Blankspace offers
209+
- As a visitor, I want to explore public spaces to understand what Nounspace offers
210210
- As a visitor, I want to easily sign up and create my own space
211211
- As a visitor, I want to browse through different themes and layouts
212212

@@ -219,13 +219,13 @@ export const createStoreFunc = (
219219
### Active User
220220
- As an active user, I want to switch between different layouts for different contexts
221221
- As an active user, I want to organize my content with custom tabs
222-
- As an active user, I want to interact with frames and mini-apps within Blankspace
222+
- As an active user, I want to interact with frames and mini-apps within Nounspace
223223
- As an active user, I want to view my notifications and messages in one place
224224
- As an active user, I want to share my customized space with others
225225

226226
### Developer
227-
- As a developer, I want to create new fidgets that integrate with the Blankspace ecosystem
228-
- As a developer, I want to contribute to the Blankspace codebase following established patterns
227+
- As a developer, I want to create new fidgets that integrate with the Nounspace ecosystem
228+
- As a developer, I want to contribute to the Nounspace codebase following established patterns
229229
- As a developer, I want to implement new themes and layouts for the community
230230

231231
## 6. APIs and Integrations

docs/DEVELOPMENT/DEVELOPMENT_NOTES.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Blankspace Layout & Mobile Navbar Refactor
1+
# Nounspace Layout & Mobile Navbar Refactor
22

33
## Phase 1: Research & Exploration Findings
44

0 commit comments

Comments
 (0)