IoT
No internet access on my esp32, Arduino boards, Control systems. 🤔

IoT
Okay, here's the question: How can SSoT.me (pronounced so Tee me) possibly help in environments where devices like ESP32, Arduino, Raspberry Pi, LoRa, and WiFi-enabled devices, many of which may not have internet access, operate in airplane mode, or have no access to Airtable's API?
This is a fantastic and completely fair question. At first glance, it may seem impossible to leverage a tool like SSoT.me when devices have limited connectivity. But here’s the thing — it’s not about "accessing" Airtable or an API at runtime. It’s about how the rules are defined, stored, and maintained upstream so that every downstream device, regardless of its constraints, always operates with perfect consistency.
Here’s the key to understanding this: SSoT.me is not a live API or lookup system; it’s a knowledge generation system. It's like having a "universal blueprint" that you generate once and "bake" into every downstream system. Let me walk you through how this works in practice.
1️⃣ **SSoT.me is a "Build-time" Tool, Not a "Runtime" Tool
The single biggest misconception is that SSoT.me requires live calls to Airtable or some centralized API. That is absolutely NOT the case. Imagine you’re building firmware for an Arduino or an ESP32. You wouldn’t expect the ESP32 to “reach out” to your IDE or GitHub every time it boots up, right? Instead, you compile the firmware and flash it to the device. The device is now self-sufficient and carries all of its logic, functions, and constants within it.
SSoT.me works the same way. Instead of manually writing procedural code and hardcoding the business rules directly into C/C++, you store these rules in a Syntax-Free, source-of-truth rulebook (like an Airtable or Baserow base). Then, you use SSoT.me tools to generate the C code, Python scripts, or JSON files that will get embedded into your firmware.
These files contain static, timeless, unchanging knowledge. Once the device is flashed, it no longer needs access to the "cloud" or the "API" because it carries its rules inside it, just like the firmware. This is a build-time concept, not a runtime dependency.
2️⃣ Declarative Rules Are Eternal — Changes Are Fast, Clean, and Global
One of the most painful aspects of firmware development is change requests. Imagine you have 10 Arduino-based puzzles in an escape room, and each one needs to recognize when a specific combination of RFID tags is correct. If the rule for which tags are "correct" changes, you have to:
-
Open the source code for each puzzle.
-
Update the condition for the "correct" combination.
-
Re-compile the firmware.
-
Flash all 10 devices.
But if you were using SSoT.me, the process looks radically different. Instead of hunting down each firmware file, all you do is:
-
Change one row in an Airtable (or local file-based equivalent) that lists the "correct combinations" for all puzzles.
-
Regenerate the source code using the SSoT.me CLI.
-
Flash the devices.
Instead of 10 separate puzzles, you treat all 10 as derivative artifacts of the same SSoT model. You don't need to worry about the logic being different from puzzle to puzzle because they are all "generated from the same seed" — the Airtable or JSON-based knowledge source.
This is like changing a blueprint once and regenerating every house, rather than having to manually re-draft 10 house designs. One change updates all systems instantly.
3️⃣ No Airtable? No Problem — Static Files Work Too
"But what if I don't want to use Airtable or have an API dependency at all?" Great question! You can use the exact same SSoT approach without Airtable. The rulebook does not have to live in Airtable — that's just one popular option. Your "rulebook" can be a local JSON file, CSV, or even hard-coded as YAML.
Here’s how it works:
-
Rulebook: You can store your rules locally as a JSON file (
rules.json), a YAML file, or even a plain Excel sheet if that's more comfortable. -
Build Time Generation: The SSoT.me CLI reads your rulebook file (from local disk) and generates C source code, Arduino headers, Raspberry Pi scripts, or whatever targets you need.
-
Result: The final product is local source code that’s compiled and flashed into the firmware. The ESP32, Arduino, and Raspberry Pi no longer need to "call home" — they already have the rules embedded within them.
The key here is that local rulebooks are valid SSoT models too. Airtable is just a "fancy" way to manage them when collaboration is required, but SSoT.me works perfectly well with local files.
4️⃣ Data Serialization — Embed Your Rulebook as Data
If you’re thinking, "Wait, but I have constraints on storage space for my ESP32," then you're on to something. Devices like Arduino and ESP32 have limited storage (sometimes as low as 32KB). In this case, you don't want to "burn" all the raw logic into the code. Instead, you serialize the rulebook as compressed binary data.
Here’s how that works:
-
Compress the Rules: Instead of hardcoding rules as "if/else" statements, the SSoT.me CLI converts your rulebook into a compact, binary lookup table.
-
Embed It: This binary lookup table is embedded directly into the firmware.
-
Fast Lookup: The firmware doesn't “evaluate” complex if/else statements. It just looks up its current state in the binary lookup table. This reduces storage and increases speed.
Imagine it like a big switch-case lookup table where every possible input state has a pre-baked "correct answer" stored as binary data. This lets you store huge rulebooks in small, memory-efficient formats.
5️⃣ Example Use Case — Escape Room Puzzles
Let's say you have 10 puzzles using ESP32s, each with a different puzzle logic. Maybe one is an RFID lock, another is a keypad, and a third is a gesture recognition device. Each puzzle has its own rules for what counts as "correct input."
Without SSoT.me
-
You have 10 puzzle-specific C/C++ firmware files.
-
You hard-code the logic for each device directly into the source.
-
A rule change means you manually change each source file.
-
Recompile 10 times, re-flash 10 devices.
With SSoT.me
-
All puzzle logic is stored in a single Syntax-Free rulebook (could be Airtable, JSON, YAML, or even Excel).
-
You generate all 10 firmware logic files using the SSoT.me CLI.
-
The CLI creates 10 C source files from the same model.
-
If the rules change, you update one Airtable row or update one JSON file and then regenerate the 10 firmware files in one click.
This means your "10 puzzles" are not 10 separate firmware projects anymore. They are all derivative artifacts of one model.
6️⃣ Offline-First Design
This is not an "online lookup" tool. The rulebook is used at build time to generate the artifacts. When those artifacts are burned into ESP32s, Arduinos, Raspberry Pis, etc., they are offline-ready and fully self-contained.
If your device must operate in airplane mode at 35,000 feet, SSoT.me is perfect. It builds timeless knowledge into the devices before deployment, just like how firmware works.
Summary
-
SSoT.me (pronounced so Tee me) doesn't require live API access — it builds the rules into your firmware as static, self-contained knowledge.
-
You don't need Airtable — use local JSON, YAML, or CSV files as your rulebook.
-
Once embedded, devices operate offline — no cloud, no API calls, no Airtable.
-
No more "10 source files for 10 puzzles" — you define the rules in a central, declarative rulebook, and all 10 puzzles are re-generated from it.
-
Changes take seconds — change one row in the rulebook, regenerate 10 firmware files, and flash them. No manual edits.
So, no, this is NOT a "runtime API call" nightmare. It’s a blueprint-driven build-time generation system. It makes all your embedded devices clones of a single model, and that model is timeless.
If you want to know more about how to set up a local rulebook for ESP32 or Raspberry Pi, I can walk you through it! Let me know.

