Hashrocket
Articles by Hashrocket about Ruby on Rails, Elixir, React and mobile development.
Ruby / RailsElixir / ErlangMobile / iOS / AndroidDatabasesTesting / QAEngineering blogs
- Posts
- 420 from 11 Mar 2011 to 17 Mar 2026
- Posting
- monthly (13 in the last year)
- Kind
- company blog
- Feed
- https://hashrocket.com/blog/posts.rss
2026 2
2025 14
- Building a (Very) Simple Responsive Search with Rails & Stimulus
- Creating a Custom Mobile Integration for a Board Game Using Ruby on Rails
- Why Ruby is the Best Language for Advent of Code
- How To Rev Up Your Rails Development with MCP
- Building a MCP Server in Elixir
- Speed Up Your Rails App by Squashing N+1 Queries
- Some Thoughts About Claude Code
- Nativewind: Speeding up Styling in React Native
- Expo for React Native in 2025: A Perspective
- PostgreSQL 18 - Temporal Constraints
- PostgreSQL 18 - VIRTUAL Generated Columns
- PostgreSQL 18 - Track What Changed By Your UPSERTs
- PostgreSQL 18's UUIDv7: Faster and Secure Time-Ordered IDs
- Spec-Driven Estimation: How Devs Can Estimate Features Quickly and More Accurately with AI
2019 2
2018 1
2017 15
- Document Your Confusion
- Why Vim?
- Swap Two Column Values in SQL: Part 2
- Hashrocket and Code Platoon
- Swap Two Column Values in SQL: Part 1
- Observing Change: A Gold Master Test in Practice
- Ruby on the Command Line
- MySQL Has Transactions, Sorta
- Get Started with redux-form
- Writing Prettier JavaScript in Vim
- Do The Shuffle
- Embrace the Database with Ecto
- Running Out Of IDs
- Encryption with gpg, a story (really, a tutorial)
- Top Tweets of 2016 with Elixir and Ecto
2016 20
- The Story of Hashrocket's Pairing Setup
- Introducing bdubs.vim
- Pairing in Practice
- Hashrocket Stands Up
- Pairing Increases Code Quality
- Up, Down, Up with Ecto Migrations
- Gold Master Testing
- Create and Publish Your Own Elixir Mix Archives
- Looking Back At ACR 2016
- How Can We Help You?
- All in with Ember and Phoenix: A (mostly) Daily Code Journal
- Entry Level? This will help!
- Understanding the Buffer List in Vim: Part 1
- Stop Tinkering and Prioritize!
- Using Ruby's Method Class for Fun and Profit
- Breaking Down Barriers Between Design and Development
- Vim Magic with Abolish.vim
- How to get help with Vim
- Avoiding Common Traps of Product Building
- Introducing Metabot
2015 24
- Switch vs. Map: Which is the Better Way to Branch in Go?
- A Peek Into The Clojure Community
- Implementing a Macro in Ruby for Memoization
- Solving Ara Howard's Metakoans
- Case Studies in Apprenticeship Vol. 5 - Matt Polito
- Better Icon Fonts with Sass
- Represent Your Work
- Lets Write Some Bad Ruby
- Test Driving a Stubbed API in Ember with Ember-CLI-Mirage
- Reviewing Code
- Hey Everyone, I found a use for a Singleton
- Integrating React Components with a Phoenix Application
- Bulk Imports with Datomic
- Implementing Video Chat in a Phoenix Application with WebRTC
- CSS Bar Charts with Flex and attr()
- Boot + Middleman: The ClojureScript development environment of my dreams
- Rails Quick Tips: Easy ActiveRecord Optimizations
- Ember Weekend Recap: Episode 3 & 4
- Design That's Not a Pain in the Neck
- Creative South 2015
- Responsifying with Viewport Units
- The Tale of the Color-Shifting Dress
- Behind the Curtain: a Design Workshop Recap
- Easy Star Ratings in CSS
2014 29
- 16 Tips from the 2014 Winter Miniconf
- Introducing Komments
- Classical mixin inheritance in Sass
- Ruby5 Roundup - Episode 505
- Ruby5 Roundup - Episode 500
- Mocaroni
- 10 Tips to Fine-Tune Your Photoshop Workflow
- Ruby5 Roundup - Episode 493
- Drop-in Responsive Styles With Sass
- Ruby5 Roundup - Episode 479
- Building Ember CLI Addons Simply
- Edge of Tomorrow, Explained in Git
- Screencast: Clojure + vim basics
- X-Men: Days of Future Past, Explained in Git
- DES+DEV: ASSEMBLE!
- Module.prepend: a super story
- Ruby5 Roundup - Episode 459
- Sass Button Mixins for Fun & Profit
- Using Datomic as a Graph Database
- Refactoring Minical: a cup of Coffeescript
- Ruby5 Roundup - Episode 446
- Setting up your Mac for Android Development
- Rails Quick Tips - ActiveRecord Ordering
- Setting up Kiwi as your iOS unit testing framework
- Ruby5 Roundup - Episode 436
- Anonymous Functions & Lambdas: Elixir = Ruby
- Rich UI Prototyping with Stagehand
- Introducing ConstraintFormatter
- Ruby5 Roundup - Episode 429
2013 18
- Finding Failure: Git Bisect
- Phil 'er Up: Better Markup Through Content Generation
- Ruby5 Roundup - Episode 426
- You can build SOAP requests with HAML
- Ruby5 Roundup - Episode 419
- Using SimpleDelegator for your Decorators
- Ruby5 Roundup - Episode 414
- Ruby5 Roundup - Episode 408
- A Case of Cucumbers
- How to Switch from TextMate to Vim
- Ruby5 Roundup - Episode 391
- A Journey to gSchool
- Ruby5 Roundup - Episode 385
- Book Club with Russ Olsen
- In Conversation: Sandi Metz
- Using SASS To Be Responsive and Retina-Ready
- Two Coffeescript Oddities
- Andrew Dennis is a Rocketeer!
2012 19
- Hashrocket's 12 Gems of Christmas
- Using Tiled and Canvas to Render Game Screens
- Setting budgetary expectations, this is how we do it
- Survival Tips For Live Wireframing
- Developing with small tools
- Setting up SSL with Dnsimple and Heroku's Endpoint SSL
- Three jQuery Plugins We Wrote (And One We Love)
- S3 Asset Hosting Walkthrough
- Joseph Wilk - Scottish Ruby 2012
- The UI Controller, part 2: Faking It
- The Elusive MVP
- Conference Wrap-Up: jQuery San Francisco
- Nordic Ruby Wrap-Up
- Managing Design Handoffs with the UI Controller
- Dropping IE7 Support? Here's What to Look Forward to
- What's with the mustaches?
- Easier Atomic Commits
- Nuggets of wisdom from Future Insights Live
- How to win developers and influence features as a designer.
2011 3
Undated 273
- Tony Yunker
- Mary Lee
- Jack Rosa
- Craig Hafer
- Vinicius Negrisolo
- Gabriel Reis
- Hashrocket: Ruby on Rails, iOS, Android, and JavaScript consulting
- Hashrocket: Ruby on Rails, iOS, Android, and JavaScript consulting
- Hashrocket: Ruby on Rails, iOS, Android, and JavaScript consulting
- Hashrocket: Ruby on Rails, iOS, Android, and JavaScript consulting
- Hashrocket: Ruby on Rails, iOS, Android, and JavaScript consulting
- Hashrocket: Ruby on Rails, iOS, Android, and JavaScript consulting
- Hashrocket: Ruby on Rails, iOS, Android, and JavaScript consulting
- When to use redux
- Ruby5 roundup episode 463
- Ruby5 roundup episode 434
- Ruby5 roundup episode 468
- Hashrocket code audits
- Ember js on rails tutorial
- Cool looking tabs in vim
- Ruby5 roundup episode 474
- Ember routing the when and why of nesting
- Vimscript and you
- Using auto layout for ios
- How we pair
- Look good naked
- 8 great vim mappings
- Modules and aliases in elixir
- Create quick json data dumps from postgresql
- Let me finish
- Using github repos in your gemfile
- Pair programming questions
- Ruby5 roundup episode 485
- Programming robot sub systems with elixir
- Ben orenstein scottish ruby 2012
- Katrina owen scottish ruby 2012
- Generate dates in postgresql
- Format your elixir code now
- Ruby developer meetups chicago
- We re hosting a hackfest
- Selleck a jquery handlebars like templating system
- Functional eye ruby guy
- Ecto migrations simple to complex
- Hashrocket university 2011 is coming up
- The ui controller part 3 the ui helper
- Go performance observations
- Ruby5 roundup episode 491
- Book club recap javascript patterns
- Jquery tips adding filter expressions
- Ruby5 roundup episode 376
- Heroku deploy scripts
- When pushing just isn t getting the job done
- Fabrication gem walk through with paul elliott
- Fabrication 2 0 upgrade guide
- Bridging activerecord and mongoid
- Recursive sql in activerecord
- Test with a sign in backdoor
- Feature development with git branching
- Time sensitive cucumber testing
- Rubyists an encounter
- Writing the story of an application
- Silencing your staging environment
- Dotmatrix the hashrocket dot file repo
- Sass iteration using each
- Using a matrix to generate sprite map sass
- Keeping the magic alive
- Writing the story of an api
- Front loaded estimation is selling your stakeholder a lie
- Start contributing to open source
- Ruby5 roundup episode 397
- Titled url slugs in phoenix
- Best of til year one ruby
- Activerecord to json api part 6 mimicking ar
- How to make rails 5 api only
- The synchronized project
- Where my rocketeers at summer 2012
- Announcing in the spotlight
- Hashrocket university 2011 recap
- Sandi metz
- Stop collaborate and listen
- Book club with sandi metz
- Anatomy of the new hashrocket frontend design
- Oh give me a home
- Taking advantage of the polyglot lifestyle
- Congrats to our client satellite on adobe acquisition
- Journey to elixirdaze 2018
- Rails quick tips random records
- Put your programming tools in a toolbox
- Jr rocketeer
- Using slugworth to your benefit
- Custom aggregates in postgresql
- Upsert records with postgresql 9 5
- Understanding common table expressions with fizzbuzz
- Writable common table expressions
- Advisory locks in postgres
- Exploring postgres gin index
- Materialized view strategies using postgresql
- Faster json generation with postgresql
- Working with email addresses in postgresql
- Commit lint for danger
- Elixir streams for lazy evaluation
- Living it up in the mountains
- Mocking api s with elixir
- Elixir with love
- Integration testing phoenix with wallaby
- Mocking requests in elixir tests
- How to upgrade to rails 5
- Best of til year one vim
- Dabbling with backbone js
- Best of til year one command line
- Hashrocket loves code and coffee
- Summer conference 2013
- Managing react router pathnames
- Websocket shootout
- Modeling polymorphic associations in a relational database
- 5 javascript object destructuring tricks
- Session zero for software teams
- A postgresql user s introduction to neo4j
- Best of til year one sql
- Technical debt part 1 understanding debt
- Mentoring at jacksonville startup weekend
- A simple list of ruby conferences
- Wrap parameters without changing markup
- Wedclock a mobile app
- Friday lunch at hashrocket chicago
- Development of a simple command line websocket client
- Fun with views and ctes
- Sql inner join vs outer join
- Where am i url assertions with cypress
- The adventures of generating random numbers in erlang and elixir
- Simple postgresql upgrades in development
- Keep anaconda from constricting your homebrew installs
- How i built my own heroku for phoenix apps part 2
- Exploring the default postgres template databases
- Generate images for instagram
- How to quit vim
- Today i learned 2018 year in review
- Activerecord to json api part 5 polymorphism
- Activerecord to json api part 3 handling filtering
- Activerecord to json api part 2 solving pagination
- Activerecord to json api part 1 reasoning and structure
- Binary searching and ruby s bsearch method
- Introducing pgcasts
- Exploring hashrockets vimbundle vim hashrocket
- Write a reduce function from scratch
- A friendly introduction to convolutional neural networks
- Use yarn like a pro
- The nature of software and fixed bid contracts
- Cast iphone screen to mac
- 6 tips for better communication with a client
- Technical debt part 2 management strategies
- Evaluating javascript dependencies with codesandbox
- Big reasons to write small user stories
- The hashrocket chicago apprenticeship
- Pick a good name
- Like attack postmortem
- Full stack
- Open source time at hashrocket
- How we manage bugs
- Adventures in mentorship
- Managing tmux sessions
- True parallel processing for ruby tests with flatware
- Extracting programmer employment data from bls
- Hashrocket guide to story carding
- Automate your elixir deployments part 2 distillery edeliver
- A handful of useful features in postgresql sql
- Automate your elixir deployments part 1 ansible
- Automate your infrastructure with pulumi
- South dakota v wayfair technology and your business
- Build the ultimate elixir ci with github actions
- Graphql way limited edition
- How i built my own heroku for phoenix apps part 3
- Interview jeremy huffman dialyxir
- Silence logger messages in exunit
- React has been teaching you invalid html
- Today i learned in phoenix
- Juxtaposing earthdistance and postgis
- A typical day at hashrocket
- Webassembly the next language of the web
- Open sourcing today i learned
- Introducing today i learned
- Planning poker speed mode
- 10 vim commands for a better workflow
- Graphql way
- Graphql way rails edition
- Ecto upsert for different primary keys in elixir
- How i built my own heroku for phoenix apps part 1
- Elixir for loops go beyond comprehension
- How to prepare for a technical interview
- Github pull request and issue templates
- Introducing hashshake
- React performance with hooks
- Generated columns in postgresql
- Greedy gobbling regex capture
- Learning ruby on rails in 2021
- Rails 7 says bye bye to byebug
- Return results using a specific order in rails
- Scoped custom configuration in rails
- Range include vs range cover
- Building less than query in activerecord
- Manipulating data in production
- Building greater than query in activerecord
- Optimizing a database query with functional indexes in postgres
- Using match vs equals tilde in ruby
- Daily update in the terminal
- Svg phoenix applications
- Navigating efficiently with cdpath
- Migrate from heroku free plans
- The impact of the exclamation point in typescript
- Using target blank properly
- Dealing with nested json objects in postgresql
- An alternative for tricky nodejs installations
- Rails ain t just for trains why ruby on rails is the real deal for your next startup
- Using tailwind to style child and sibling elements
- Basics of shadow dom
- Leveling up rails controllers organizing logic with plain ruby objects
- Authorization in phoenix liveview
- Using a hash of data for string replacement in ruby
- Embracing accessibility and consistency with css system colors
- Talking tech with non technical clients
- Optimizing ux and efficiency with visibilitystate
- Enhancing web accessibility with html s forced color mode
- Postgresql daterange and efficient time management
- Canonical form of postgresql daterange columns
- Error page on phoenix liveview
- The rails renaissance
- Querying for json arrays in postgres
- My rails world 2024 experience
- Broadcasting user specific turbo content
- Validating json file contents with your text editor
- Running my first kamal deploy
- Railsconf nostalgia remembering activeresource
- Let s build a generator
- Achieving multitenancy in a rails app using currentattributes
- Supercharging ai assisted development in phoenix applications
- Lessons learned using dblink in production
- Go 0 to 60 with create react app
- Elm by example soup to nuts part 1
- Playing with react vr
- Tips and tricks from integrating react native with existing native apps
- Ember weekend recap episode 1 2
- Broccoli the build tool not the vegetable
- Rubyjax recap ember cli rails with jonathan jackson march 12 2015
- A compendium of hooks in embercli
- Rubyjax recap openhax february 20 2015
- An ancient recap
- Datetime select in cucumber
- Rails quick tips pluck multiple columns
- Rails quick tips activerecord calculations pluck
- Debugging action callbacks aka filters in rails
- Query for null or empty string in activerecord
- Sql window functions
- Better date and time formatting for ruby
- In conversation noel rappin
- In conversation russ olsen
- Activerecord to json api part 7 testing
- Activerecord to json api part 4 custom sorting
- Sql views and activerecord
- Deferring database constraints
- Customize activeadmin index filters
- Advanced queries with activerecord s from method
- Javascript rails google maps
- Integrating with google calendar as a service app
- Best of til year one rails
- Setting up an ember app with a rails backend
- Caching activemodel serializers on heroku
- Little decorator gem rails model decoration in 42 lines
- Ember on s3 with cloudfront bash the hash
- Ignore specific file changes only on current machine in git
- Creating a paper wallet for your cryptocurrency with myetherwallet
- Openspec vs spec kit choosing the right ai driven development workflow for your team
- From spec to shipping how developers implement features with ai driven workflows
- Spec driven development how product owners can ship features faster with ai