New Book Launch! 🚀 Phoenix Product Codex: Develop and deploy a REST API for Product Data Management with Elixir and Phoenix by Isaak Tsalicoglou

Welcome to the Leanpub Launch video for Phoenix Product Codex: Develop and deploy a REST API for Product Data Management with Elixir and Phoenix by Isaak Tsalicoglou!

Welcome to the Leanpub Launch video for Phoenix Product Codex: Develop and deploy a REST API for Product Data Management with Elixir and Phoenix by Isaak Tsalicoglou!

About the Book

Book cover image for Phoenix Product Codex: Develop and deploy a REST API for Product Data Management with Elixir and Phoenix by Isaak Tsalicoglou
Phoenix Product Codex: Develop and deploy a REST API for Product Data Management with Elixir and Phoenix by Isaak Tsalicoglou

Dive into the real-world journey of building a production-ready Product Data Management REST API with Phoenix Product Codex. This isn't just another Elixir or Phoenix tutorial, but a practical, hands-on tale of solving a critical business problem, straight from the trenches of a family-run industrial-equipment trading business. If you’ve ever wondered how to turn the "master data" of an expansive product portfolio into a structured, scalable system, this book is your guide.

In Phoenix Product Codex, you'll follow Isaak's path of implementing a REST API in Elixir and Phoenix on the basis of a pragmatically-implemented scrappy prototype that began years ago with government-mandated electronic invoicing, to a properly implemented self-hosted solution that has been serving as the Single Source of Truth of product data of two companies for five years. 

Learn how to develop and deploy a robust and production-ready REST API using Elixir, Phoenix, Ecto, and SQLite, all while tackling real-world business conundrums, such as thinking about the database schema, organizing tables and modules in domains, considering how to codify a product catalog from scratch, issuing unique item codes with tricks that reduce the probability of typos wreaking havoc, using external APIs to validate data, keeping external data up-to-date with a GenServer, and ensuring data integrity even as the product portfolio grows in size and complexity. This book isn’t about a toy project or yet another to-do list, shopping cart, or Pokedex; it’s about shipping functional (in more ways than one) software that has kept a business running, day in and day out.

Much like Northwind Elixir Traders, what sets this book apart from other Phoenix tutorials is its blend of technical depth and business insights. You'll not only master the nuts and bolts of building a REST API, such as domain modeling, database design and migrations, authentication and authorization, rate limiting, third-party API integrations, and GenServers, but you'll also learn about the business-minded thinking behind every decision.

Drawing from almost two decades years of experience split among corporate and entrepreneurial roles, Isaak shows you how to think like a business owner, a software engineer, and a problem-solver all at once. Whether you are an Elixir software engineer tasked with developing REST APIs for business processes, or the business analyst, product manager or general manager who oversees such project, this book is about helping you to wear both a technical and a business hat when considering what to build, and how to build it--and deploy it. This book will also prove useful if you are a small business owner who intends to digitize your business processes on your own terms.

Phoenix Product Codex is a decidedly shorter, yet more real-world focused and business-driven sequel to its technologies-focused and toy-database-based predecessor, Northwind Elixir Traders (which is still a great primer if you're new to Elixir, Ecto or SQLite).

✳️✳️✳️

The book was first published in a Work-In-Progress state on Leanpub on April 26th, 2025. It will continue to be updated approx. every second or third week (depending on my workload) until the full envisioned scope is realized. The chapters released so far cover:

✅ The business context and the goal

✅ Exploration of the database schema as it’s being shaped

✅ Domain-Driven Design and domain boundaries

✅ The conundrum of deciding on one taxonomy

✅ Modeling the first table (suppliers)

✅ Validating EU tax IDs with an external service (EU VIES)

✅ Implementing a validation plug with a helpful message, for mis-shaped JSON request bodies

✅ Implementing tests of the /api/suppliers endpoint with ExUnit

✅ Mocking the external service with Mox

Here is a non-exhaustive, prospective and tentative list of the topics that will be covered in chapters coming soon, some of which are already in development:

⌨️ Implementing the entire database step by step in Ecto

⌨️ Endpoints for all resources

⌨️ Application logic for issuing unique item codes

⌨️ Application logic for kitting/bundling

⌨️ Issuing bearer tokens, each with a different authorization for access to item fields

⌨️ Caching with Cachex

⌨️ A taxonomy with tags

⌨️ Pagination, filtering, and sorting

⌨️ Search across manufacturer codes and item descriptions

⌨️ Discontinued and replaced items

⌨️ “Related items” feature

⌨️ API rate limiting

⌨️ API versioning

⌨️ Webhooks for event notifications

⌨️ Bulk operations (import from CSV, export to CSV and XLS, possibly even to ODS)

⌨️ API documentation with Swagger/OpenAPI

⌨️ Multilingual descriptions

⌨️ Audit logging (tracking changes to prices)

⌨️ Production deployment and monitoring

⌨️ Database schema extensions for content management (tentative)

About the Author

Picture of Author Isaak Tsalicoglou
Author Isaak Tsalicoglou

Spurred by a serendipitous discussion with a good friend on the merits of functional programming, Isaak has since 2022 focused his programming-related activities exclusively on learning and using Elixir to develop further great software for others, as well as for his own use as an "indiehacker" by combining full-stack development skills with his extensive product development, management and marketing experience.

Isaak is an ETH Zürich Mechanical Engineer with an MBA from IMD, Switzerland. His software, training and consulting work builds on three decades of experience in using computers and programming to turbocharge products, services, and operating business models. An avid fan of open-source software and self-hosting, an early adopter of Linux since 1997, and a relentless tinkerer with NetBSD and FreeBSD, Isaak has worked with Fortran (77, 90), MATLAB, GNU Octave and Mathematica for scientific simulations, C for mobile robotics, basic C++ for refactoring proprietary FEA post-processing code, and a lot of Python for engineering optimization, neural networks and ensembles, machine learning, Monte Carlo simulations, CAD automation, and FEA and CFD model generation. He has also worked with PHP for web-based software and websites, Go for simple tasks, as well as built REST APIs for machine learning predictions of engineered components and the natural-language processing of web-scraped data, and REST APIs with simple web UIs for managing internal and customer-facing processes of an industrial equipment trading business.

Watch These Short Excerpts from the Full Video


Publish Early, Publish Often