diff --git a/README.md b/README.md index e215bc4c..3d3b6cb3 100644 --- a/README.md +++ b/README.md @@ -1,36 +1,54 @@ -This is a [Next.js](https://nextjs.org) project bootstrapped with [`create-next-app`](https://nextjs.org/docs/app/api-reference/cli/create-next-app). +# PlotLink — Your Story Is a Token -## Getting Started +PlotLink is an on-chain storytelling protocol where every storyline becomes a tradable token from day one. + +**How it works:** Writers publish storylines that automatically deploy an ERC-20 token on a bonding curve. Each new chapter (plot) drives demand, and every trade generates 5% royalties for the author. Stories are stored permanently on IPFS — the narrative lives on-chain, not on someone's server. + +## Core Mechanics + +- **Write** — Publish a storyline with a genesis plot. A unique token + bonding curve is created instantly. +- **Trade** — Readers mint tokens to back stories they believe in. Prices rise with demand along a J-curve (up to 1,888x from first to last mint). +- **Chain** — Authors must publish new plots every 7 days, keeping storylines alive and readers engaged. +- **Earn** — 5% royalties on every mint and burn, plus direct donations from readers. + +## What Makes It Different + +- Tokenized storytelling with built-in monetization — no ad revenue, no paywalls, no platform cuts beyond protocol royalties +- AI agents can write too — ERC-8004 registry support enables autonomous agent storytelling alongside human writers +- Mobile-first design with Farcaster miniapp integration for social distribution +- Bonding curves mean early readers who discover great stories are financially rewarded + +## Tech Stack -First, run the development server: +- **Framework**: Next.js 16 (App Router), TypeScript +- **Styling**: Tailwind CSS v4 +- **Database**: Supabase +- **Storage**: IPFS via Filebase +- **Chain**: Base (L2), Mint Club V2 bonding curves +- **Wallet**: Wagmi + RainbowKit + +## Getting Started ```bash +npm install npm run dev -# or -yarn dev -# or -pnpm dev -# or -bun dev ``` Open [http://localhost:3000](http://localhost:3000) with your browser to see the result. -You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file. - -This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel. - -## Learn More +## Commands -To learn more about Next.js, take a look at the following resources: - -- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API. -- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial. +```bash +npm run dev # Start dev server +npm run build # Production build +npm run lint # ESLint +npm run typecheck # TypeScript type-check +``` -You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome! +## Environment Variables -## Deploy on Vercel +See [`.env.example`](.env.example) for all required environment variables. -The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js. +## Live -Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details. +[plotlink.xyz](https://plotlink.xyz) diff --git a/docs/OVERNIGHT-QUEUE.md b/docs/OVERNIGHT-QUEUE.md index d3b866c3..9995a854 100644 --- a/docs/OVERNIGHT-QUEUE.md +++ b/docs/OVERNIGHT-QUEUE.md @@ -26,23 +26,149 @@ --- -## Tonight's Queue — Batch 41: Wallet + CLI - -### 1. plotlink#669 — Add RainbowKit multi-wallet support -- Install RainbowKit, add 5 wallets: MetaMask, Base Account, Trust, Rainbow, WalletConnect -- Farcaster auto-connect preserved (first connector) -- PlotLink-themed modal (cream/monospace/minimal) -- `modalSize="compact"` for mobile-first -- Update providers.tsx, wagmi.ts, ConnectWallet.tsx -- Benchmark from `~/Projects/dropcast/lib/wagmi.ts` -- Requires `NEXT_PUBLIC_WALLETCONNECT_PROJECT_ID` env var -- Branch: `task/669-rainbowkit-wallets` - -### 2. plotlink#670 — Add content/title validation to CLI -- CLI has no length limits — can create 1-char stories or 1000-char titles -- Add: title ≤ 60 chars, content 500–10,000 chars (match frontend) -- Clear error messages on violation -- Branch: `task/670-cli-content-validation` +## Completed — Batch 41 + +- Batch 41: RainbowKit multi-wallet #669 + +--- + +## Completed — Batch 42 + +- Batch 42: Nav wallet UX #675, Hero mobile #671, Dashboard USD #672, CLI validation #670, Scoring fix #674 + +--- + +## Completed — Batch 43 + +- Batch 43: CJK overflow #686, Nav redesign #681, Writer merge #683, Reader merge #684, Nav cleanup #685 (-380 lines) + +--- + +## Completed — Batch 44 + +- Batch 44: Nav alignment #692, Wallet PLOT balance #693, USD everywhere #694 + +--- + +## Completed — Batch 45 + +- Batch 45: Nav wallet address #698, Agent registration simplify #702, Agents hero #701, Stories tab #699, Portfolio tab #700 + +--- + +## Completed — Batch 46 + +- Batch 46: Username overflow #708, Cursor #712, Agent cleanup #713, CJK v2 #711, Stories Moleskine #709, Portfolio v2 #710 + +--- + +## Completed — Batch 47 + +- Batch 47: Stories v3 #720, Portfolio v3 #721 + +--- + +## Completed — Batch 48 + +- Batch 48: Stories v4 #724, Portfolio v4 #725 + +--- + +## Completed — Batch 49 + +- Batch 49: Stories + Portfolio v5 polish #728 + +--- + +## Completed — Batch 50 + +- Batch 50: Writer tab v6 #730, Reader tab v6 #731 + +--- + +## Completed — Batch 51 + +- Batch 51: Moleskine polish #734 + +--- + +## Completed — Batch 52 + +- Batch 52: Writer + Reader v8 #736 + +--- + +## Completed — Batch 53 + +- Batch 53: Writer v9 #738, Plot count bug #739 + +--- + +## Completed — Batch 54 + +- Batch 54: Writer + Reader v10 #742 + +--- + +## Completed — Batch 55 + +- Batch 55: Farcaster wallet #744, CSP headers #745 (broke miniapp — needs revert) + +--- + +## Completed — Batch 56 + +- Batch 56: CSP revert #748, Reader/Activity cleanup #749, Writer Stats labels #750 + +--- + +## Completed — Batch 57 + +- Batch 57: Farcaster wallet #758, TVL separator #759, Reader holdings grid #760, USD emphasis #761 + +--- + +## Completed — Batch 58 + +- Batch 58: Reader mobile overflow #765, Plot count dedupe #766, Nav close outside #767, Farcaster auto-connect #770 + +--- + +## Tonight's Queue — Batch 59: Reader Redesign + Storyline Page Polish + +### 1. plotlink#771 — Reader tab: holdings grid full width on mobile +- 4-box grid under each holdings card doesn't stretch to full width on mobile +- Fix: ensure grid spans full card width below the Moleskine on small screens +- Branch: `task/771-reader-grid-fullwidth` + +### 2. plotlink#772 — Reader tab: simplify holdings + portfolio boxes, add trade history +- Holdings card: 2 boxes (Value with % from cost basis, Balance) instead of 4 +- Add simple list of recent 5 transactions below each holdings card +- Portfolio dashboard: 2 boxes (Total Value with % from cost basis, Holdings count) instead of 4 +- Branch: `task/772-reader-cost-pnl` + +### 3. plotlink#775 — Storyline page: redesign top info section + Writer label +- Change "by" prefix to "Writer" +- Come up with a tidier, mobile-friendly layout for title/author/stats/genre/rating +- Branch: `task/775-storyline-header-redesign` + +### 4. plotlink#773 — Storyline page: Market Cap USD + 24h change instead of Token Price +- Replace TOKEN PRICE box with MARKET CAP in USD + 24h percent change +- Keep Supply Minted as-is +- Branch: `task/773-storyline-mcap` + +### 5. plotlink#774 — Storyline page: restructure deadline + stats into 2-col grid +- Wrap deadline in proper section box titled "Next Plot Publish Deadline" +- Desktop: 2-col grid (MCap + Supply), deadline box below +- Mobile: stack vertically +- Depends on #773 +- Branch: `task/774-storyline-deadline-layout` + +### 6. plotlink#776 — Research: price chart USD feasibility +- Investigate if we can convert PLOT-based price chart to USD +- We don't store historical PLOT→USD rates per trade — research if data is available +- Report findings BEFORE implementing — do not guess +- Branch: `task/776-chart-usd-research` ---