In our previous post, we explored how product owners use Spec-Driven Development to create comprehensive specifications with AI assistance. Now let's dive into the developer side of the workflow - where we transform those specs into real code. When we left off, our spec was complete and clarified. Now it's the development team's turn to bring it to life. Sequence Diagram of Spec Kit Before we continue the flow I just want to share a sequence diagram to help us visualize the whole process we a...| Hashrocket
The software development world is buzzing about a new paradigm that's changing how we build features: Spec-Driven Development. With tools like spec-kit from GitHub, product owners can now create comprehensive specifications with AI assistance, reducing ambiguity and accelerating the handoff to development teams. Let's run through the flow on a real project and see how hot it is. Getting Started with Spec-Kit To install the spec-kit from GitHub follow their docs and you may also need to instal...| Hashrocket
Developing with AI assistants has become an essential part of modern software development workflows. If you're building Elixir Phoenix applications, there's great news: the ecosystem has evolved to provide excellent tooling specifically designed to help AI agents understand and work with your Phoenix codebase more effectively. The Foundation: Phoenix 1.8.0's AGENTS.md The Phoenix team took a major step forward with the Phoenix 1.8.0 release by automatically generating an AGENTS.md file in new...| Hashrocket
While working with a legacy BBj PRO/5 database for a client, we needed to set up a new CMS with multitenancy requirements. We were dealing with a slew of foreign tables representing the PRO/5 data, and each of the tables had a column for designating which tenant they belonged to. Let's talk about how we leveraged ActiveSupport::CurrentAttributes to solve this problem!| hashrocket.com
On a recent project at Hashrocket, we had to use dblink in production as part of our set up for communicating with a legacy database. While our overall experience was positive, we had a couple of hiccups along the way. Let's talk about the lessons we learned! What is dblink? dblink is a Postgres command that allows you to connect to and execute queries on a remote database. There are a number of dblink-related commands in Postgres depending on your use case (from dblink_connect to dblink_exec...| Hashrocket
This year at the final RailsConf, the atmosphere was incredibly nostalgic and celebratory, if perhaps a little bittersweet. Many of the talks spent time looking back on how far we've come, including Robby Russell's "The Rails Features We Loved, Lost, and Laughed At". Robby's talk brought back to light an old library that I hadn't thought about or used in years, ActiveResource. Once it was mentioned, it seemed like it kept cropping up during the conference, from DHH's fireside chat, to convers...| Hashrocket
Generators are one of the many excellent tools that Rails provides. They can be used for a wide range of tasks, from plugging a gem into your app to scaffolding files. You can also build generators to meet your specific needs.| hashrocket.com
A fantastic feature of Turbo Rails is the ability to broadcast changes to a page. Each connected client can receive changes in real-time. However, it's a common problem to update content that is shown to many users, but the rendering of items is affected by user context. A recommendation to get around this is to only broadcast things that don't require that user context. Because we have Turbo, we can serve user-specific content in other ways. Let's examine our setup, and I'll explain how we c...| Hashrocket
I recently got the chance to build a small internal tool for our team. And when it came time to deploy, I really wanted to try out Kamal, the new deployment tool built by Basecamp (37Signals). It was easier than I had first anticipated. Kamal is a CLI and deployment scripting tool that allows you to setup servers and subsequently deploy your app to them. You can use this to deploy many types of applications, you just need a Dockerfile and some changes to Kamal's configuration. It's different ...| hashrocket.com
2 easy to implement solutions for validating JSON in your text editor| hashrocket.com