Achievement Chains
What Is It?
Achievement Chains is a Rails app for turning Steam achievements into routes you can follow. Instead of staring at one huge achievement list, you can build or follow a chain: a path of milestones, notes, and goals for a game, synced with your progress from Steam.
Why chains? Some games have hundreds of achievements, and it's not always obvious what to do first, what depends on what, or how to reach a final goal without getting lost. Chains make that journey more visual and a little more intentional - you can make your own, share, and track progress through the achievements in them.
The Stack
Built With
- Ruby on Rails – web framework and application logic
- PostgreSQL – primary datastore
- Hotwire (Turbo + Stimulus) – interactive UI without a separate frontend framework
- Sidekiq – background jobs, including scheduled syncs
- steam-api gem – pulling achievement and progress data from Steam
- Sentry – error tracking
- Docker – containerized and deployed behind CloudFront, same as Moments
- AWS ECS – container orchestration and deployment
- Terraform – infrastructure as code for the AWS setup
- Ansible – configuration management for the shared EC2 host (PostgreSQL, Valkey, cron, deploy keys), deployed via its own GitHub Actions pipeline
Postgres and Valkey run on the same EC2 host as Moments' database, managed by the same Ansible playbook rather than a separate setup per app.
The source is open, at jane-natucci/achievements.
What's Planned
Community goals, saved or followed chains, favorites, comments, feeds, and better social features around achievement hunting in general.
First App, AI-Assisted
This was my first app built with the help of AI – from scaffolding out the Rails app to working through the Steam API integration. TODO: write more about that development journey.