Archive post
My Honey Pot: The Tech Behind It
• barddev
My Honey Pot's Hive blog architecture and deployment guide, using Wax and WorkerBee, on-chain configuration, server rendering and RPC failover.
# Under the Hood: How My Honey Pot Works
Last time I showed you what My Honey Pot can do - templates, themes, layout editor, all that good stuff. Now let's peek **under the hood** and see how it all comes together. 🔧
The whole thing is open source: [github.com/KKocot/my-honey-pot](https://github.com/KKocot/my-honey-pot)

---
## Tech Stack
Here's what's running behind the scenes:
| | Technology | Role |
|--|------------|------|
|  | **Astro 5** | Main framework - server-side rendering |
|  | **SolidJS 1.9** | Interactive UI components |
|  | **Tailwind CSS 4** | Styling with CSS variables |
|  | **TanStack Query** | Data fetching, caching, SSR hydration |
|  | **@hiveio/wax + workerbee** | Hive blockchain SDK |
|  | **TypeScript** | Type safety across the whole codebase |
The big thing here: **there is no database**. Zero. Posts, profile, settings, comments - everything comes straight from the Hive blockchain. One container, no database to manage, no backups to worry about. 🍯
---
## How It Works
When someone visits your blog, this is what happens:
1. **Browser requests the page** - Astro handles it on the server
2. **Server fetches from Hive** - your posts, profile, and blog config
3. **Full HTML is generated** - fast, SEO-friendly, works without JavaScript
4. **Interactive parts hydrate** - SolidJS picks up tabs, infinite scroll, admin panel
TanStack Query makes sure data fetched on the server is reused in the browser - no duplicate API calls.
### Config on the blockchain
Your blog settings live as a **comment on Hive** under `@barddev/my-blog-configs`. Just JSON in a markdown code block - **transparent**, **decentralized**, and **versioned** with every save.

By default all configs go under my post - feel free to use it. But if you want full independence, create your own post and set two env variables:
```bash
CONFIG_PARENT_AUTHOR=your-hive-username
CONFIG_PARENT_PERMLINK=your-config-post-permlink
```
### Rendering posts
The app uses the same markdown renderer as **Condenser** and **Denser** - the official Hive frontends. Embedded media, image proxying, link sanitization, security checks - all handled out of the box.
### API failover
The app connects to 3 Hive API nodes. If one is down, it automatically switches to the next:
```typescript
export const HIVE_API_ENDPOINTS = [
"https://api.openhive.network",
"https://api.hive.blog",
"https://api.syncad.com",
];
```
---
## Deployment & Self-hosting
The app runs in two places right now:
- **VPS (Docker):** [myhoneypot.bard-dev.com](https://myhoneypot.bard-dev.com)
- **Vercel:** [my-honey-pot.vercel.app](https://my-honey-pot.vercel.app)
No database = one container. Want to run your own? Here you go:
```bash
git clone https://github.com/KKocot/my-honey-pot
cd my-honey-pot
npm install
# Set your Hive username
echo "HIVE_USERNAME=your-hive-username" > .env
# Option A: Docker
docker build -t my-honey-pot .
docker run -p 4321:4321 --env-file .env my-honey-pot
# Option B: Run directly
npm run build
node ./dist/server/entry.mjs
```
Or just deploy to Vercel for free - connect the repo, set `HIVE_USERNAME`, done.
---
## Open source - and I take requests 💡
Full code on GitHub: [github.com/KKocot/my-honey-pot](https://github.com/KKocot/my-honey-pot)
Want a new feature? Different layout, new widget, better mobile experience - whatever it is, just ask. Drop a comment, DM me, or open a GitHub issue. I'm actively building this and happy to make what the community needs. Let's build something great together 🚀