Building Anakonis: From Blank Canvas to a Custom Creator Hub

I gave myself a two-week goal: build a new website from scratch, and document the process the whole way through. This is the first post in that build series. Going in, I figured I'd end up with a simple streamer site: a logo, a few links, done. But before touching any code, I wanted to actually map out what this site needed to be. I opened a blank canvas and started sketching the architecture. Pretty quickly I realized a "link tree" style page wasn't going to cut it. Anakonis needed to be a full creator hub somewhere that ties together my identity as a gamer, a self-taught developer, and a content creator, instead of just being a list of links. Mapping the canvas Rather than keep it all in my head, I broke the site down piece by piece into four core sections:
Home Page: the first impression: logo, main message, and clear navigation to streams, socials, and community. The Journey: a visual timeline of the actual story: started gaming in 2015, taught myself to code in 2021, started streaming in 2023. This is the part that gives the site a real narrative instead of just being a directory. Streams & Games a hub for live content with Twitch/Kick embeds, schedules, and the games that have shaped the content over time. Community & Socials: direct links to Discord, Patreon, and the rest of the social ecosystem.
The tech stack going without the training wheels Once the layout was mapped and the repo scaffolded, I had to decide on the foundation. I went fully custom here instead of reaching for Next.js or Remix: a raw SPA stack:
Bun as the runtime, package manager, and HTTP server (no Node.js) React 19 + TypeScript 5 in strict mode Wouter for lightweight client-side routing instead of React Router Tailwind CSS v4 via the Bun-native bun-plugin-tailwind plugin instead of PostCSS shadcn/ui for Card, Button, Input, etc., locking the design system early so everything stays consistent
Skipping the framework "training wheels" means I have to actually understand how the app runs under the hood, instead of letting a framework abstract that away. That's part of the point of doing it this way. What's next This isn't going to be a polished step-by-step tutorial; it's a real build log, messy parts included. Right now I'm at the planning stage: the canvas is mapped, the repo is set up, and the two-week clock has started. Next up: taking this from a local folder to a live deployed site including the deployment bug that nearly took the whole thing down
New posts, in your inbox
Roughly one a week. Confirm once, unsubscribe anytime.
0 comments
Read next

Building My Online Presence as a Dev Creator
I’m starting to take my online presence more seriously as I grow as a developer, creator, and business owner. This post explains the shift from casually posting online to intentionally building platforms like my blog, LinkedIn, Twitter/X, daily.dev, Reddit, and Patreon.

Escaping the Hotlink Trap: Automating an Image Migration to Cloudflare R2
By changing the query, the code became valid TypeScript and the database query executed perfectly. The Result The migration was a complete success. All 5 posts now securely serve their images directly from my public R2 domain. The Pinterest dependency has been completely eliminated. It's a great reminder: always trust the infrastructure you build, and don't bypass your own upload flows!