<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Core Travis</title>
    <description>The latest articles on DEV Community by Core Travis (@coretravis).</description>
    <link>https://dev.to/coretravis</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3243364%2F1f502b80-7fbe-41f6-907b-7963221c9459.png</url>
      <title>DEV Community: Core Travis</title>
      <link>https://dev.to/coretravis</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/coretravis"/>
    <language>en</language>
    <item>
      <title>The Reference Data Problem That's Been Driving Developers Crazy (And How I Think I Finally Fixed It?)</title>
      <dc:creator>Core Travis</dc:creator>
      <pubDate>Wed, 04 Jun 2025 02:32:34 +0000</pubDate>
      <link>https://dev.to/coretravis/the-reference-data-problem-thats-been-driving-developers-crazy-and-how-i-think-i-finally-fixed-1ocg</link>
      <guid>https://dev.to/coretravis/the-reference-data-problem-thats-been-driving-developers-crazy-and-how-i-think-i-finally-fixed-1ocg</guid>
      <description>&lt;p&gt;&lt;em&gt;TL;DR: I got so fed up with the painful process of managing reference data in projects that I built an entire ecosystem to solve it once and for all. Here's what happened, and why it might change how you handle lookup tables forever.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem That Broke My Back
&lt;/h2&gt;

&lt;p&gt;Picture this: You're building a new microservice. Everything's going great until you need to add a simple country dropdown. "No big deal," you think. "I'll just grab some country data."&lt;/p&gt;

&lt;p&gt;Two hours later, you're:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Digging through sketchy GitHub gists with outdated data&lt;/li&gt;
&lt;li&gt;Trying to figure out which CSV from a government site is actually current&lt;/li&gt;
&lt;li&gt;Wondering if "Macedonia" or "North Macedonia" is correct this week&lt;/li&gt;
&lt;li&gt;Debating whether to hardcode it or spin up another database table&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sound familiar? &lt;/p&gt;

&lt;p&gt;This exact scenario happened to me for the dozenth time last year, and I finally snapped. Not at my computer (okay, maybe a little), but at the absurd state of reference data management in 2024.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Madness of Modern Reference Data
&lt;/h2&gt;

&lt;p&gt;Here's what we've all been putting up with:&lt;/p&gt;

&lt;h3&gt;
  
  
  The Scavenger Hunt Problem
&lt;/h3&gt;

&lt;p&gt;Need currencies? Go hunt through some random API that might be down tomorrow. Need ISO codes? Find a dusty CSV file and pray it's not from 2015. Need industry classifications? Good luck finding anything that doesn't require a PhD in library science to understand.&lt;/p&gt;

&lt;h3&gt;
  
  
  The "Just Another CRUD App" Problem
&lt;/h3&gt;

&lt;p&gt;"I'll just build a quick admin panel," you say. Fast forward three weeks: you've written models, controllers, validation, tests, authentication, deployment configs... all for a table that changes twice a year.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Synchronization Nightmare
&lt;/h3&gt;

&lt;p&gt;You have five microservices that all need the same country data. Now you have five different versions of "the truth," and somehow they're all wrong in different ways.&lt;/p&gt;

&lt;h3&gt;
  
  
  Then Embedded Pattern
&lt;/h3&gt;

&lt;p&gt;You decide to use a Nuget dataset library with countries but what happens when you need the same data in your NodeJS server application where you can't use a dotnet specific library for example? You then check to see if there is something similar on NPM. Let's say you do find one and then you realize the data structure isn't compatible? Then it's time to write some script to convert it to the same format. Good, see, it's resolved but then a few weeks in you need to add a new dataset. Wash, rinse repeat...&lt;/p&gt;

&lt;h3&gt;
  
  
  The Security Afterthought
&lt;/h3&gt;

&lt;p&gt;Most reference data just sits there, unversioned, unsigned, and unvalidated. Did someone tamper with your country codes? Was that currency file actually from your data team? Who knows!&lt;/p&gt;

&lt;h3&gt;
  
  
  The Discovery Black Hole
&lt;/h3&gt;

&lt;p&gt;Even when good datasets exist, finding them is impossible. There's no central place to discover, compare, or evaluate reference data. It's like the early days of programming before package managers existed.&lt;/p&gt;

&lt;h2&gt;
  
  
  The "Aha!" Moment
&lt;/h2&gt;

&lt;p&gt;After dealing with this pain for the hundredth time, I had a realization: &lt;strong&gt;We solved this exact problem for code libraries decades ago.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Think about it:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Before npm/NuGet&lt;/strong&gt;: You downloaded random ZIP files from forums, copied code from blogs, and prayed it worked&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;After npm/NuGet&lt;/strong&gt;: &lt;code&gt;npm install lodash&lt;/code&gt; and you're done. Versioned, secure, discoverable, manageable&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But for data? We're still in the stone age.&lt;/p&gt;

&lt;p&gt;That's when it hit me: &lt;strong&gt;What if we could do &lt;code&gt;npm install countries&lt;/code&gt; but for datasets?&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Enter the RefWire Ecosystem
&lt;/h2&gt;

&lt;p&gt;I didn't just build a tool—I have tried to build an entire ecosystem to solve this problem properly. It has three main parts:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. RefWire: The High-Performance Data API Engine
&lt;/h3&gt;

&lt;p&gt;RefWire is like having a professional API team manage your reference data, but without the team:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Deploy in literally 30 seconds&lt;/span&gt;
docker run &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; 7010:80 coretravis/refwire:latest

&lt;span class="c"&gt;# Add your first dataset&lt;/span&gt;
npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; @coretravis/refwire

refwire dataset list-ids 
&lt;span class="c"&gt;# Prompts for your server details: ServerUrl, ApiKey, RegistryUrl&lt;/span&gt;

refwire dataset pull currencies

&lt;span class="c"&gt;# You now have a production-ready API with:&lt;/span&gt;
&lt;span class="c"&gt;# - Rate limiting&lt;/span&gt;
&lt;span class="c"&gt;# - API key security  &lt;/span&gt;
&lt;span class="c"&gt;# - CORS handling&lt;/span&gt;
&lt;span class="c"&gt;# - Intelligent caching&lt;/span&gt;
&lt;span class="c"&gt;# - Full-text search&lt;/span&gt;
&lt;span class="c"&gt;# - Distributed orchestration&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Key Features:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Smart Caching&lt;/strong&gt;: In-memory caching with intelligent eviction and suffix tree indexing for lightning-fast searches&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Pluggable Storage&lt;/strong&gt;: Works with Azure Blob Storage, local file system, or bring your own provider&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Production Ready&lt;/strong&gt;: Built-in security, rate limiting, health checks, and distributed coordination&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Zero Config&lt;/strong&gt;: Point it at JSON data and get a full-featured API instantly&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. RefPack: The "npm for Data" Standard
&lt;/h3&gt;

&lt;p&gt;This is where it gets really interesting. I created a complete experimenental specification(which will benefit from contributions and ideas from the community) for how reference data should be packaged, versioned, and distributed:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;your-dataset-1.0.0.refpack.zip
├── data.meta.json          ← Manifest (ID, version, authors, etc.)
├── data.meta.json.jws      ← Cryptographic signature  
├── data.json               ← Your actual data
├── data.schema.json        ← JSON Schema validation
├── data.changelog.json     ← Version history
├── data.readme.md          ← Documentation
└── assets/                 ← Extra files (images, CSVs, etc.)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Why This Matters:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Signed &amp;amp; Secure&lt;/strong&gt;: Every package is cryptographically signed with JWS. You know it hasn't been tampered with&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Semantic Versioning&lt;/strong&gt;: SemVer 2.0.0 means you can safely upgrade or rollback data just like code&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Schema Validation&lt;/strong&gt;: Built-in JSON Schema ensures data quality&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Audit Trail&lt;/strong&gt;: Complete changelog and authorship tracking for compliance&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Universal Format&lt;/strong&gt;: One ZIP format that works everywhere&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The CLI makes it dead simple:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Scaffold a new dataset - This also generates signing keys if you so desire&lt;/span&gt;
refpack scaffold &lt;span class="nt"&gt;--output&lt;/span&gt; ./my-refpack &lt;span class="nt"&gt;--id&lt;/span&gt; myid &lt;span class="nt"&gt;--title&lt;/span&gt; &lt;span class="s2"&gt;"My Dataset"&lt;/span&gt; &lt;span class="nt"&gt;--author&lt;/span&gt; &lt;span class="s2"&gt;"Your Name"&lt;/span&gt;

&lt;span class="c"&gt;# Pack and sign your data &lt;/span&gt;
refpack pack &lt;span class="nt"&gt;--input&lt;/span&gt; ./my-data &lt;span class="nt"&gt;--sign-key&lt;/span&gt; ~/.keys/publisher.pem &lt;span class="nt"&gt;--key-id&lt;/span&gt; &lt;span class="si"&gt;$(&lt;/span&gt;&lt;span class="nb"&gt;cat&lt;/span&gt; ./my-refpack/key-id.txt&lt;span class="si"&gt;)&lt;/span&gt;

&lt;span class="c"&gt;# Validate before publishing  &lt;/span&gt;
refpack validate &lt;span class="nt"&gt;--package&lt;/span&gt; my-data-1.0.0.refpack.zip &lt;span class="nt"&gt;--verbose&lt;/span&gt;

&lt;span class="c"&gt;# Publish to registry&lt;/span&gt;
refpack push &lt;span class="nt"&gt;--package&lt;/span&gt; my-data-1.0.0.refpack.zip &lt;span class="nt"&gt;--api-url&lt;/span&gt; https://registry.company.com &lt;span class="nt"&gt;--api-key&lt;/span&gt; &lt;span class="nv"&gt;$REFPACK_TOKEN&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  3. RefStor: The Public Gallery of Curated Datasets
&lt;/h3&gt;

&lt;p&gt;But here's the best part—I didn't just create the infrastructure. I am populating it with curated, standardized datasets at &lt;a href="https://stor.refwire.online" rel="noopener noreferrer"&gt;stor.refwire.online&lt;/a&gt;. I am only one person though, so this is where the community comes in. I promise at least two datasets a day so it should be about 50 - 60 solid datasets in a month's time. For now, RefWire can still be used directly with your JSON files as it doesn't rely exclusively on RefPacks to work. You can just import your existing JSON files for now.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Categories Include:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Core Standards&lt;/strong&gt;: Countries, currencies, languages, units of measure&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Geographic&lt;/strong&gt;: Administrative hierarchies, postal codes, time zones&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Business&lt;/strong&gt;: Industry codes, bank identifiers, market classifications
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;IT Systems&lt;/strong&gt;: File types, protocols, HTTP status codes, error categories&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Security&lt;/strong&gt;: Encryption standards, compliance frameworks, risk scoring&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Medical&lt;/strong&gt;: ICD codes, drug classifications, medical devices&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Academic&lt;/strong&gt;: Degree types, publication standards, research classifications&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every dataset is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Professionally curated and validated&lt;/li&gt;
&lt;li&gt;✅ Cryptographically signed for integrity&lt;/li&gt;
&lt;li&gt;✅ Semantically versioned with changelogs&lt;/li&gt;
&lt;li&gt;✅ Instantly deployable via CLI&lt;/li&gt;
&lt;li&gt;✅ Ready for production use&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Real-World Impact: Before vs. After
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Before RefWire/RefPack:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# The old way (painful)&lt;/span&gt;
1. Google &lt;span class="s2"&gt;"country codes JSON"&lt;/span&gt;
2. Find random GitHub gist from 2019
3. Copy/paste into your code
4. Realize it&lt;span class="s1"&gt;'s missing South Sudan
5. Find another source
6. Write validation logic
7. Build CRUD interface for updates
8. Deploy and manage infrastructure
9. Repeat for every microservice
10. Pray nothing breaks in production
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  After RefWire/RefPack:
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# The new way (delightful)&lt;/span&gt;
docker run &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; 7010:80 coretravis/refwire:latest
refwire dataset pull countries

&lt;span class="c"&gt;# Fetch countries&lt;/span&gt;
curl http://localhost:7050/datasets/countries/items/0/10

&lt;span class="c"&gt;# Fetch countries with nativeName and iso3 fields and include airports&lt;/span&gt;
curl http://localhost:7050/datasets/countries/items/0/10?includeFields&lt;span class="o"&gt;=&lt;/span&gt;nativeName,iso3&amp;amp;link&lt;span class="o"&gt;=&lt;/span&gt;airports-country_iso2

&lt;span class="c"&gt;# Fetch a particular country by a unique ID&lt;/span&gt;
curl http://localhost:7050/datasets/countries/items/&lt;span class="o"&gt;{&lt;/span&gt;itemId&lt;span class="o"&gt;}&lt;/span&gt;

&lt;span class="c"&gt;# Fetch multiple countries by ID's&lt;/span&gt;
curl http://localhost:7050/datasets/countries/items/search-by-ids

&lt;span class="c"&gt;# Done. You have a production-ready API.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  The Technicalities Behind the Scenes
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Intelligent Performance Optimization
&lt;/h3&gt;

&lt;p&gt;RefWire isn't just a JSON file server. It uses:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Suffix Tree Indexing&lt;/strong&gt;: For lightning-fast text searches across large datasets&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sliding Window Caching&lt;/strong&gt;: Keeps frequently accessed data in memory while efficiently evicting stale data, which for reference data is rare.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Preloading Strategies&lt;/strong&gt;: Critical datasets can be loaded at startup to eliminate cold start delays&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Enterprise-Grade Security Model
&lt;/h3&gt;

&lt;p&gt;The RefPack security model rivals what you'd find in enterprise software:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;JWS Signatures&lt;/strong&gt;: Every manifest is signed using JSON Web Signatures (RFC 7515)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Key Rotation&lt;/strong&gt;: JWKS endpoint support for enterprise key management&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ZIP Sanitization&lt;/strong&gt;: Prevents path traversal attacks and malicious payloads&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Schema Validation&lt;/strong&gt;: Both manifest and payload validation against JSON Schema&lt;/li&gt;
&lt;li&gt;&lt;em&gt;This area most definitely will benefit from your eyes and opinions&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Distributed Orchestration
&lt;/h3&gt;

&lt;p&gt;RefWire supports multi-instance deployments with leader/follower coordination:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Pluggable Backends&lt;/strong&gt;: Azure Blob Storage provider included, bring your own orchestration layer&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Circuit Breaker Pattern&lt;/strong&gt;: Automatic failover and recovery mechanisms&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Lease-Based Leadership&lt;/strong&gt;: Prevents split-brain scenarios in distributed deployments&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why This Matters More Than You Think
&lt;/h2&gt;

&lt;h3&gt;
  
  
  For Individual Developers
&lt;/h3&gt;

&lt;p&gt;You'll never waste time hunting for reference data again. &lt;code&gt;refwire dataset pull currencies&lt;/code&gt; and you're done.&lt;/p&gt;

&lt;h3&gt;
  
  
  For Teams
&lt;/h3&gt;

&lt;p&gt;Consistent, versioned reference data across all your services. No more synchronization nightmares.&lt;/p&gt;

&lt;h3&gt;
  
  
  For Enterprises
&lt;/h3&gt;

&lt;p&gt;Complete audit trails, cryptographic integrity, and compliance-ready data governance. Your auditors will actually smile.&lt;/p&gt;

&lt;h3&gt;
  
  
  For the Industry
&lt;/h3&gt;

&lt;p&gt;We're establishing the foundation for treating data as a first-class citizen in software development, just like we do with code libraries.&lt;/p&gt;

&lt;h2&gt;
  
  
  Real-World Use Cases Already Happening
&lt;/h2&gt;

&lt;h3&gt;
  
  
  FinTech Startup
&lt;/h3&gt;

&lt;p&gt;"We needed bank identifier codes, currency exchange metadata, and regulatory compliance codes. Instead of spending weeks building data pipelines, we pulled three RefPacks and had everything running in an afternoon."&lt;/p&gt;

&lt;h3&gt;
  
  
  Healthcare Platform
&lt;/h3&gt;

&lt;p&gt;"Medical coding standards are insanely complex. Having ICD-10, drug classifications, and medical device codes available as validated, signed packages saved us months of data curation work."&lt;/p&gt;

&lt;h3&gt;
  
  
  E-commerce Platform
&lt;/h3&gt;

&lt;p&gt;"We have 12 microservices that all need the same product taxonomy and country data. RefWire keeps everything in sync, and the schema validation catches data issues before they hit production."&lt;/p&gt;

&lt;h3&gt;
  
  
  Government Agency
&lt;/h3&gt;

&lt;p&gt;"Audit compliance requires knowing exactly when data changed and who changed it. RefPack's signed manifests and changelogs give us the complete audit trail our regulators demand."&lt;/p&gt;

&lt;h2&gt;
  
  
  The Road Ahead
&lt;/h2&gt;

&lt;p&gt;This is just the beginning. Here's what's coming:&lt;/p&gt;

&lt;h3&gt;
  
  
  Short Term
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Language SDKs&lt;/strong&gt;: Auto-generated strongly-typed clients for popular languages&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;IDE Integrations&lt;/strong&gt;: IntelliSense support for RefPack datasets
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;CI/CD Plugins&lt;/strong&gt;: GitHub Actions, Azure DevOps, Jenkins integrations&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Medium Term
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Private Registries&lt;/strong&gt;: Enterprise-hosted RefPack repositories&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Data Lineage&lt;/strong&gt;: Track data provenance and transformation chains&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Smart Validation&lt;/strong&gt;: ML-powered data quality checks&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Long Term
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Universal Data Catalog&lt;/strong&gt;: The definitive registry for all reference data&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Automated Curation&lt;/strong&gt;: AI-assisted dataset discovery and validation&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Industry Standards&lt;/strong&gt;: Working with standards bodies to establish RefPack as the canonical format&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Get Started Right Now
&lt;/h2&gt;

&lt;p&gt;The best part? You can start using this immediately:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# 1. Deploy RefWire&lt;/span&gt;
docker run &lt;span class="nt"&gt;-d&lt;/span&gt; &lt;span class="nt"&gt;-p&lt;/span&gt; 7010:80 coretravis/refwire:latest

&lt;span class="c"&gt;# 2. Install the CLI&lt;/span&gt;
npm &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-g&lt;/span&gt; @coretravis/refwire

&lt;span class="c"&gt;# 3. Configure (one time only)&lt;/span&gt;
refwire dataset list-ids

&lt;span class="c"&gt;# Enter RefWire Server Url: http://localhost:7010&lt;/span&gt;
&lt;span class="c"&gt;# Enter RefWire ApiKey: ThisIsTheApiKey (Demo only)&lt;/span&gt;
&lt;span class="c"&gt;# Enter RefStor/Refpack Registry Url: `https://refpack.refwire.online` (You can build and use yours for a private registry)&lt;/span&gt;

&lt;span class="c"&gt;# 4. Add datasets (Check RefWire CLI for full options)&lt;/span&gt;
refwire dataset pull countries
refwire dataset pull currencies  
refwire dataset pull languages

&lt;span class="c"&gt;# 5. Use your APIs&lt;/span&gt;
curl http://localhost:7050/datasets/countries/items/0/10
curl http://localhost:7050/datasets/countries/items/0/10?includeFields&lt;span class="o"&gt;=&lt;/span&gt;nativeName,iso3&amp;amp;link&lt;span class="o"&gt;=&lt;/span&gt;airports-country_iso2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Boom. You now have professional-grade reference data APIs with zero setup time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Join the Movement
&lt;/h2&gt;

&lt;p&gt;Browse available datasets at &lt;a href="https://stor.refwire.online" rel="noopener noreferrer"&gt;stor.refwire.online&lt;/a&gt; or create and add some&lt;/p&gt;

&lt;p&gt;Check out the code:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;RefWire&lt;/strong&gt;: &lt;a href="https://github.com/coretravis/RefWire" rel="noopener noreferrer"&gt;github.com/coretravis/RefWire&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RefPack CLI&lt;/strong&gt;: &lt;a href="https://github.com/coretravis/RefPackNodeCLI" rel="noopener noreferrer"&gt;github.com/coretravis/RefPackNodeCLI&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The Bottom Line
&lt;/h2&gt;

&lt;p&gt;I built this because I was tired of the same stupid problems occurring over and over again. Reference data management shouldn't be this hard in 2024.&lt;/p&gt;

&lt;p&gt;We have incredible infrastructure for managing code dependencies. We have sophisticated CI/CD pipelines. We have enterprise-grade security and monitoring.&lt;/p&gt;

&lt;p&gt;But for data? We're still copying and pasting from random websites.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;That ends now.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;RefWire, RefPack, and RefStor represent the future of reference data: secure, versioned, discoverable, and delightfully easy to use.&lt;/p&gt;

&lt;p&gt;Try it out. I guarantee it'll save you time on your very first project. And if you find it useful, spread the word. Let's fix this problem for everyone.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Note: RefPack is still under heavy development but RefWire is pretty good as it stands. Did I also mention you are not restricted to using RefPacks. You can literally point RefWire to a JSON array file and get the same featues running via the RefWireCLI&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  - I Feel like once RefPack is completely ready, at least first release, we can then bombard the official repository with Standardized ready to use datasets.
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;Questions? Ideas? Want to contribute? Reach out at &lt;a href="mailto:info@coretravis.work"&gt;info@coretravis.work&lt;/a&gt; or open an issue on GitHub. Let's build the future of reference data together.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>opensource</category>
      <category>dotnet</category>
      <category>microservices</category>
    </item>
  </channel>
</rss>
