FLIN
The language that replaces 47 technologies
A compiled, full-stack programming language built from scratch in Rust. One syntax for frontend, backend, database, and tooling. 3,200+ tests. 180 embedded UI components. Zero npm dependencies.
Building FLIN
#040 -- Type Guards and Runtime Type Narrowing
How FLIN's is operator enables runtime type checking with compile-time type narrowing -- the bridge between dynamic values and static safety.
#042 -- Generic Bounds and Where Clauses
How FLIN implements generic bounds and where clauses -- constraining type parameters with traits, merging inline and where syntax, and validating constraints at compile time.
#043 -- While-Let Loops and Break With Value
How we implemented while-let loops and break-with-value in FLIN -- pattern-driven iteration and loops that produce values, inspired by Rust's control flow.
#044 -- Labeled Loops and Or-Patterns
How we implemented labeled loops and or-patterns in FLIN -- breaking from outer loops by name, combining match arms with pipe syntax, and the compiler changes that support them.
#046 -- Every Entity Remembers Everything: The Temporal Model
How we designed FLIN's temporal model so every entity automatically tracks its complete history -- zero configuration, zero boilerplate, full time-travel out of the box.
#047 -- Version History and Time Travel Queries
Deep dive into FLIN's @ operator for time-travel queries, the .history property, and how we made accessing past entity states as natural as reading current ones.
#048 -- Temporal Integration: From Bugs to 100% Test Coverage
The honest war story of how eight sessions of debugging, auditing, and fixing brought FLIN's temporal model from a broken stub to 100% test coverage.
#049 -- Destroy and Restore: Soft Deletes Done Right
How FLIN implements three tiers of data deletion -- soft delete, hard delete (destroy), and restore -- with GDPR compliance built into the language.
#050 -- Temporal Filtering and Ordering
How we added filtering and ordering to FLIN's temporal history queries -- from the design decision to avoid lambdas, to the VM implementation of ListFilterField and ListOrderBy.
#051 -- Temporal Comparison Helpers
How we built six native helper functions for temporal comparisons in FLIN -- field_changed, calculate_delta, percent_change, changed_from, value_changed, and field_history.
#054 -- Tracking Accuracy and Validation
How Session 079 revealed that FLIN's temporal model was further along than documented -- and the lessons learned about tracking accuracy, validation, and the danger of stale documentation.
#061 -- Index Utilization: Making Queries Fast
How Session 163 transformed FlinDB queries from O(n) full scans to O(1) index lookups -- automatic indexing, query optimization, and index maintenance in an embedded database.