Skip to content

Commit ece9614

Browse files
committed
feat: add CreateCoin, Docs pages, tools, prompts, and component updates
1 parent b038715 commit ece9614

File tree

10 files changed

+1631
-75
lines changed

10 files changed

+1631
-75
lines changed
Lines changed: 242 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,242 @@
1+
# Task 5: Build the Packages Page + Final Polish
2+
3+
## Context
4+
5+
You're building a website for **PumpKit** — an open-source PumpFun Telegram bot framework on Solana. The site uses a **Telegram-style UI** with dark chat aesthetics.
6+
7+
The site already has:
8+
- Vite + React + TypeScript + Tailwind CSS
9+
- Telegram-style Layout shell with sidebar + top bar
10+
- Tailwind config with `tg-*` and `pump-*` color tokens
11+
- Pages: Home (`/`), Create Coin (`/create`), Dashboard (`/dashboard`), Docs (`/docs`)
12+
- All pages use Telegram message bubble patterns
13+
14+
## Your Task
15+
16+
1. **Create `src/pages/Packages.tsx`** — a package showcase page
17+
2. **Update `src/main.tsx`** — add the `/packages` route
18+
3. **Add a Telegram-style input bar** to the bottom of Layout.tsx (cosmetic only)
19+
4. **Add the slideIn animation** to `src/index.css` for the Dashboard
20+
5. **Create `public/favicon.svg`** — simple PumpKit logo
21+
22+
## Part 1: Packages Page
23+
24+
The packages page displays each PumpKit package as a detailed **Telegram channel post**, showcasing what each bot does with code examples and feature lists.
25+
26+
### Page Container
27+
```tsx
28+
<div className="flex flex-col gap-4 p-4 max-w-3xl mx-auto pb-24">
29+
{/* Date separator */}
30+
<div className="text-center py-2">
31+
<span className="bg-tg-input/80 text-zinc-400 text-xs px-3 py-1 rounded-full">
32+
Packages
33+
</span>
34+
</div>
35+
{/* Package posts */}
36+
</div>
37+
```
38+
39+
### Overview Message (incoming bubble)
40+
- Sender: "PumpKit" with 📦 avatar
41+
- Text: "PumpKit ships 5 packages. Each is independent — use what you need."
42+
- Below text, a small stat bar:
43+
```
44+
5 packages • TypeScript • MIT License • Node.js ≥ 20
45+
```
46+
in `text-xs text-zinc-500`
47+
48+
### Package Cards (one incoming bubble per package)
49+
50+
Each package gets a "rich" channel post bubble:
51+
52+
**@pumpkit/core**
53+
```
54+
🧱 @pumpkit/core
55+
56+
The shared foundation. Every PumpKit bot uses core.
57+
58+
Features:
59+
├─ 🤖 Grammy bot scaffolding + command router
60+
├─ 📡 WebSocket + HTTP event monitors
61+
├─ ⛓️ Solana RPC client + program decoders
62+
├─ 📝 HTML message formatter (Telegram)
63+
├─ 💾 File-based + SQLite storage adapters
64+
├─ ⚙️ Typed env config with validation
65+
├─ 🏥 HTTP health check server
66+
└─ 📊 Leveled console logger
67+
68+
npm install @pumpkit/core (coming soon)
69+
```
70+
Code example inside the bubble:
71+
```typescript
72+
import { createBot, createHealthServer } from '@pumpkit/core';
73+
74+
const bot = createBot({
75+
token: process.env.BOT_TOKEN!,
76+
commands: { start: (ctx) => ctx.reply('Hello!') },
77+
});
78+
```
79+
80+
**@pumpkit/monitor**
81+
```
82+
📡 @pumpkit/monitor
83+
84+
All-in-one PumpFun activity monitor. DM bot + REST API + SSE streaming.
85+
86+
Monitors:
87+
├─ 💰 Fee claims (by wallet or token)
88+
├─ 🚀 Token launches (with cashback detection)
89+
├─ 🎓 Graduations (bonding curve → AMM)
90+
├─ 🐋 Whale trades (configurable threshold)
91+
├─ 👑 CTO events (creator transfers)
92+
└─ 💎 Fee distributions
93+
94+
API: REST endpoints + SSE real-time stream
95+
Deploy: Railway, Fly.io, or any Node.js host
96+
```
97+
98+
**@pumpkit/channel**
99+
```
100+
📢 @pumpkit/channel
101+
102+
Read-only Telegram channel feed. Broadcasts token events to a public channel.
103+
104+
• Zero interaction needed — just add the bot as channel admin
105+
• Customizable message templates
106+
• Filter by event type
107+
• Rate limiting built in
108+
```
109+
110+
**@pumpkit/claim**
111+
```
112+
💰 @pumpkit/claim
113+
114+
Fee claim tracker. Look up claims by token CA or creator X handle.
115+
116+
• /claim <CA> — show fee claims for a token
117+
• /creator <handle> — find tokens by X/Twitter handle
118+
• CSV export for accounting
119+
• Historical claim data
120+
```
121+
122+
**@pumpkit/tracker**
123+
```
124+
🏆 @pumpkit/tracker
125+
126+
Group call-tracking bot. Add to your Telegram group, members call tokens, bot tracks results.
127+
128+
Features:
129+
├─ 📊 Leaderboards (daily/weekly/monthly/all-time)
130+
├─ 💰 PNL cards with entry/exit prices
131+
├─ 🏅 Rank tiers (Amateur → Oracle)
132+
├─ ⛓️ Multi-chain (Solana, ETH, Base, BSC)
133+
├─ 📈 Win rate & multiplier tracking
134+
└─ 🎯 Call resolution (auto or manual)
135+
```
136+
137+
### Style for Package Bubbles
138+
139+
Each package bubble should have a subtle colored left border to distinguish it:
140+
```
141+
border-l-4 border-l-{color}
142+
```
143+
Colors by package:
144+
- core: `border-l-tg-blue`
145+
- monitor: `border-l-pump-green`
146+
- channel: `border-l-pump-cyan`
147+
- claim: `border-l-pump-yellow`
148+
- tracker: `border-l-pump-purple`
149+
150+
Code snippets inside bubbles:
151+
```
152+
bg-[#1a2332] rounded-lg p-3 font-mono text-xs text-zinc-300 overflow-x-auto mt-3
153+
```
154+
155+
### CTA at Bottom (outgoing bubble)
156+
```
157+
Ready to build? Pick a package and start coding.
158+
159+
[📖 Read the Docs] [🪙 Create Coin] [⭐ GitHub]
160+
```
161+
162+
## Part 2: Telegram Input Bar (Layout.tsx)
163+
164+
Add a cosmetic Telegram-style message input bar to the bottom of the main content area. It's non-functional but completes the Telegram look.
165+
166+
At the bottom of the `<main>` in Layout.tsx, after `<Outlet />`, add:
167+
168+
```tsx
169+
{/* Cosmetic Telegram input bar */}
170+
<div className="shrink-0 bg-tg-header border-t border-tg-border px-4 py-2 flex items-center gap-3">
171+
<button className="text-zinc-500 hover:text-zinc-300 transition text-xl">😊</button>
172+
<div className="flex-1 bg-tg-input rounded-full px-4 py-2 text-sm text-zinc-500">
173+
Message...
174+
</div>
175+
<button className="text-zinc-500 hover:text-tg-blue transition text-xl">📎</button>
176+
<button className="w-9 h-9 rounded-full bg-tg-blue flex items-center justify-center text-white text-sm hover:bg-tg-blue/80 transition">
177+
178+
</button>
179+
</div>
180+
```
181+
182+
This should be inside the right panel's flex column, after `<main>` but inside the flex container so it sticks to the bottom.
183+
184+
## Part 3: SlideIn Animation (index.css)
185+
186+
Add to the end of `src/index.css`:
187+
188+
```css
189+
/* Event card entrance animation */
190+
@keyframes slideIn {
191+
from {
192+
opacity: 0;
193+
transform: translateY(-8px);
194+
}
195+
to {
196+
opacity: 1;
197+
transform: translateY(0);
198+
}
199+
}
200+
201+
.animate-slide-in {
202+
animation: slideIn 0.3s ease-out;
203+
}
204+
```
205+
206+
## Part 4: Favicon (public/favicon.svg)
207+
208+
Create a simple SVG favicon — a rocket emoji style icon in PumpKit colors:
209+
210+
```svg
211+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
212+
<circle cx="50" cy="50" r="48" fill="#17212b" stroke="#5eb5f7" stroke-width="3"/>
213+
<text x="50" y="68" text-anchor="middle" font-size="52">🚀</text>
214+
</svg>
215+
```
216+
217+
## Tailwind Colors Available
218+
219+
```
220+
tg-bg: #17212b tg-sidebar: #0e1621 tg-chat: #0e1621
221+
tg-header: #17212b tg-input: #242f3d tg-hover: #202b36
222+
tg-border: #1c2733 tg-blue: #5eb5f7 tg-green: #4fae4e
223+
tg-bubble: #2b5278 tg-bubble-in: #182533
224+
pump-green: #00e676 pump-pink: #ff6b9d pump-yellow: #ffd54f
225+
pump-purple: #b388ff pump-orange: #ff9100 pump-cyan: #00e5ff
226+
```
227+
228+
## Files to Edit
229+
230+
1. **Create** `packages/web/src/pages/Packages.tsx`
231+
2. **Edit** `packages/web/src/main.tsx` — add: `<Route path="packages" element={<Packages />} />`
232+
3. **Edit** `packages/web/src/components/Layout.tsx` — add the input bar to the bottom
233+
4. **Edit** `packages/web/src/index.css` — add the slideIn animation
234+
5. **Create/replace** `packages/web/public/favicon.svg`
235+
236+
## Do NOT
237+
238+
- Add any dependencies
239+
- Change the tailwind.config.js
240+
- Make any API calls
241+
- Use images (emoji only, except the SVG favicon)
242+
- Remove any existing route — only add the new `/packages` route

0 commit comments

Comments
 (0)