🌍 Land Tool Update – Learning Mode: ON!
Hey everyone! Just wanted to drop in with a quick update on the Land Tool. No new features this week – sorry about that – but don’t be fooled, it wasn’t a slow week for me at all!
🤯 Learning Spree
I’ve been deep-diving into all sorts of stuff – watching YouTube tutorials, reading docs, and chatting a lot with ChatGPT. It’s a new way of learning for me, and honestly, I’m digging it way more than the old-school classroom/book combo. It’s interactive, faster, and kinda fun when it clicks!
Big caveat though: ChatGPT isn’t always right 😅 — and I’m not always experienced enough to tell when it’s wrong (yet!). But I’m getting there by pulling in more sources and questioning things as I go. One thing is clear: the more you learn, the better your questions get.
🛠️ What I’ve Been Working On
If you want to skip the techie part, just head here to check out the intermediate result:
🔗 https://next-land.spl-stats.com/
(Only the region overview has real logic for now – rest is mostly placeholder/test data.)
Try to keep it mobile friendly at the same time.
🔍 This Week’s Learning Highlights
- Atomic Design – Design Methodology
- Storybook – Getting into designing molecules, like the summary tile. Trying to visually build and document components here.
- MUI (Material UI) – Switched from DaisyUI/Tailwind. MUI just clicks more for me.
- Server-side Filtering – Making the filtering smarter and more efficient.
- Chart Library Shootout – Compared Nivo, MUI X Chart, and Plotly React.
Plotly still wins for me. Responsive out of the box with zoom, pan, legends… the works.
🔬 Atomic Design
I’ve been exploring the Atomic Design methodology by Brad Frost (check it out here). It’s a way of thinking about UI components based on how things are structured in nature — starting from the smallest building blocks and working up. The idea is to build:
- Atoms – the basic HTML elements or smallest reusable components (like a button or input).
- Molecules – combinations of atoms (like a labeled input field).
- Organisms – groups of molecules working together (like a form).
- Templates & Pages – layouts and final views with real content.
It’s helped me approach UI in a more consistent and reusable way. That said, I usually skip building out the atom level manually — most of the basics (like buttons, icons, etc.) are already covered nicely by MUI, so I jump straight into designing molecules and up.
📚 Storybook + Atomic Design = 🔥
I’ve known about Storybook for a while through work, but I never actually used it myself — until now. Since I’m experimenting with Atomic Design, it felt like the perfect time to dive in and try it out for real.
Storybook fits in really nicely with this design approach. It lets you build and view components in isolation — starting from the smallest atoms, all the way up to full pages. Right now, I’m mostly working in the molecule and organism layers. I haven’t tackled templates or full pages yet since setting up mock/test data for that takes a bit more effort… but maybe I’ll get there eventually 😄
What I love most is how easy it is to tweak and experiment with MUI component options — themes, props, layouts — all without needing to reload the whole app. It makes it super fast to try stuff out and visually see what works.
If you want to check it out yourself, just clone the repo and run:
npm run storybook
Here are a few previews of how it looks:
📊 Chart Library Showdown: Nivo vs MUI X vs Plotly React
This week I also started testing out some chart libraries to find out what fits best for the tool. For now, I’ve added all three into the app — you can see them side by side under the “Activity” section.
Right now, I’m only using simple/basic charts, but you gotta start somewhere, right? The good news: all three libraries are pretty similar in how you set up the data and render the charts — no big limitations at this early stage.
From a user experience perspective, though, there are some noticeable differences.
🎯 Why Plotly React Might Win
At first, I actually thought Plotly was only for Python — since that’s where I usually use it — but then I found out there’s a React version too. And wow, that was a game changer.
Here’s why I’m leaning toward Plotly React:
- Zooming and panning work right out of the box.
- You can select and isolate a specific series in the legend — just double-click one, and boom!
- Drag to zoom is super smooth — no setup needed.
These kinds of interactions aren’t as intuitive or built-in with MUI X or Nivo — at least not out of the box. They can definitely be added with effort, but Plotly just has that plug-and-play feel I love.
That said, I have to admit: Nivo’s website does showcase some really good-looking charts.
If I end up needing more advanced visualizations — like bubble charts, custom axis configs, or even a heatmap — I plotly can do all not sure how easy those are with the other libraries. I really want to build a cool heatmap someday. Not sure for what yet… but I’ll figure it out 😂
🧩 Still Figuring Out...
The folder structure is getting messy fast. With so many tiny files, I really need to rethink how I’m organizing components and pages. Something to tackle next week!
🚧 What’s Next?
Player data is an important part because that is a different structure. Which can lead to complete redesign of the architecture.
So tackle the hot items first before building out.
- Fetching Player Data – Since this relies on real-time API calls, I need to:
- Avoid overloading the SPL API.
- Implement caching (probably with node-cache or lru-cache).
In Python (with Streamlit), I did not care much just let streamlit figure it out... might end up the the same but then with node-cache 😅 - Possibly add an admin page to monitor and manage cache.
Building out contains of:
- Continue on Fixed Data Flow – Similar structure coming for resources and production data.
- Figure Out Chart Logic – How to format/aggregate/call data without overfetching.
🔮 Coming Soon: Deed Overview V2
When I get to the Deed Overview, I want to give it more of a BaronToolbox look – everyone seems to love that vibe!
Suggestions? Hit me up – would love to hear ideas that make it feel inspired, not copied 😎
🧑💻 GitHub Repos
Want to see what’s under the hood? Be warned – it’s chaotic in there.
- 🔗 Python: https://github.com/gamerbeaker007/splinter-lands
- 🔗 Next.js: https://github.com/gamerbeaker007/splinter-lands-next
PRs welcome. Feedback welcome. “WTF is this” reactions... also welcome. Be gentle though – still figuring out Next.js/prisma/TypeScript.... 😅
🙌 How You Can Support
- ✅ Upvote this post – Keeps the motivation flowing!
👉 Vote for My SPS Validator Node - 🧠 Drop feedback – I love hearing your ideas and weird edge cases.
⚠️ Final Note
This is still very much a hobby project, built during late-night caffeine-fueled sprints with a half-functioning brain. If it breaks, stay chill and ping me. I’ll fix it… eventually 😂
Congratulations @beaker007!
You raised your level and are now a Dolphin!
Delegate Tokens and HP to Fallen Angels to earn weekly rewards!
Delegate | Join to the guild
Careful with atomic design, we found that it leads to overly complicated design and hard to maintain systems.
Thanks the for the advice... with every methodology/strategy you need to keep is in balance (hope to do that).
Are there any strategies or methodologies you like to use for these types of designs?
Okay, that's way too deep into tech for me. I still tried to read it, but failed. But I'm incredibly thankful for your tool! Just wanted to drop that here!
🤣 Thanks, mate! Totally understand—this one was definitely more technical than usual. The next few updates might stay on the techy side too, but don’t worry—I'll get back to adding fun new features soon when time allows! Appreciate you sticking around! 🙌