Hey all,
I've had quite the week tinkering under the hood of Pinkbird, and I'm here to spill the details on the progress I've made.
First up, I've shifted us over to lit v3. With the fresh @lit/context
feature moving to stable, sharing data across components is now smoother than your morning espresso. It's a big step forward in making our platform even more intuitive for you. For those itching to see what's under the hood, lit.dev is your go-to garage.
Then there's the decorators. Imagine being able to supercharge your code with some annotations—that's what adopting TC39 decorators is all about. It's a sleeker, more universal way to add extra umph to our codebase. I've opted for the accessor
decorators, stepping away from TypeScript's exclusive playground for something that’ll be standard. If you're curious about how these decorators work their magic, the TC39 decorators proposal is where I got the blueprint.
Now let's talk about what I've built for the heart of Pinkbird—your interactions with customers. I've crafted a new Customer page from scratch. It's a place where you can not only view customer details but tweak them to your heart's content. And to keep things lively, I've thrown in avatars featuring a mix of random animals and color palettes, adding a dash of fun to your day-to-day business.
I made changes this week which allow multiple addresses for customers, in case they have multiple homes, a home and an office, or other common situations. In the process I splitting the form from one part into multiple (breaking out addresses) dramatically simplified the frontend and backend code, and it made the UX better as well. You can see that each address is saved separately.
On the security front, I've fortified our defenses with CSRF protection and rate limiting. This is akin to having a personal security guard for your data, ensuring that your customer interactions are always under lock and key. Rate limiting is our way of keeping the traffic on your digital storefront at a pleasant hum, preventing any overzealous visitors from causing a virtual stampede.
I've also embraced the upcoming Go 1.22 router proposal. By eliminating Chi from our stack, I've streamlined our routing system, cutting down on dependencies and maintenance overhead. It's all about making Pinkbird leaner and meaner. The proposal that inspired this can be explored further on Eli Bendersky's blog, which is a fantastic read for the more technically inclined.
Lastly, the real-time chart that caught your eye last week? I've hooked it up to actual, monthly data and powered it with hyperloglog for fast lookups that don't bog down as we grow. It's like having a sports car that never slows down, no matter how many miles you put on it. If you're in the mood for a deep dive into the inner workings of hyperloglog, this research paper by Flajolet et al. is a fascinating read.
So, that's the rundown of this week's progress. I'm building Pinkbird not just to work, but to work wonders for you. Every update, every new line of code is there to ensure that your business runs as smoothly as a well-oiled machine.
Catch you on the flip side with more updates.
Evan
Weekly Wine Recommendation
Discover the 2017 Limitada Reserva Rioja by LAN, my wine of the week. A full-bodied Spanish gem, layered with deep notes of tobacco, pencil lead, lush plum, and minerals. It's the ideal companion for a relaxed beachside toast.