Public editorial draft · October 7, 2026. Print this page for the complete paper.
Abstract
Filmclusive is production coordination software organized around persistent people and the temporary contexts in which they work. Its immediate center is a useful crew directory: sharing appropriate contact information, organizing work, and communicating with the right people. Scheduling, staffing, call sheets, creative resources and approvals connect to that center. Professional identity survives the end of a production.
This paper explains the boundaries that make those connections understandable. Person differs from Profile. Membership differs from Assignment. Role describes work rather than permission. Audience describes targeting rather than authority. A Resource can carry production context and immutable versions while a shared Workflow provides review mechanics. Today and Websites compose or publish projections without taking ownership of canonical source records.
The technical architecture separates clients, edge responsibilities, application execution and persistence. The web application uses React and Next.js. The Next.js Node runtime is hosted on Google Cloud Run behind Cloudflare. Firebase and Google Cloud provide identity, canonical records, storage and background workloads. Native iOS migration, a Tauri desktop shell and a stateless MCP service share server contracts while retaining different interfaces and coverage.
This is a curated explanation, not a source mirror or an assertion that every architectural direction is released. Implementation, scoped verification and production acceptance are different claims. The evidence page states their limits. Representative contracts in this paper are independently authored conceptual examples; they do not reproduce internal interfaces.
I founded Filmclusive and designed its product model and architecture. I implemented and integrated its systems using AI-assisted engineering workflows. I remain responsible for implementation decisions, debugging, testing, security boundaries, infrastructure and release decisions. The production repository remains private and remains the engineering source of truth.
1. Production software as a relationship problem
Coordination starts with people
A film Production is a temporary organization. Development brings producers, writers, directors and financing into focus. Pre-production adds hiring, casting, availability, locations, scheduling, department preparation, equipment and approvals. Shooting coordinates Production Days, call sheets, specialized departments, presence and changing plans. Post brings editorial, sound, music, VFX, color and review forward. Delivery connects masters, marketing, distribution and archival.
These stages overlap. Different people become relevant at different times. Crew size depends on production type, budget, geography, schedule and creative requirements. The interactive examples use illustrative small, medium and large structures; they are not industry averages or staffing standards. There is no universal crew hierarchy.
Two graphs and a fragmented toolchain
Organizational structure describes who belongs where: Production, Department, Department Head and Department Crew. Communication structure describes who needs to exchange information for work to happen. A DP belongs to Camera but also coordinates with Directing, ADs, Grip, Electric, Art, Sound, Production, Script Supervision and Post. A pure org chart cannot capture all those relationships.
Coordination is often spread across phone contacts, text messages, email, social media, PDF call sheets, spreadsheets, calendars, cloud storage, messaging apps, job boards, paperwork services, specialized tools and word of mouth. Get hired, join, prep, shoot, wrap, then repeat the handoffs on the next job. Professional identity is repeatedly re-entered even when two people already share a known Production context.
The production explainer makes these structures interactive. Its role perspectives and information matrix show why a PA’s operational needs, an AD’s broad coordination and a client’s review access are different. Those examples are educational, not rigid permission policies.
Context does not erase consent
Same Production means relevance within authorized context. It can support discovery, in-app communication where permitted and contact fields the Person allows to be visible. It does not imply access to every private contact field. Contact requests and a deliberate Save to My Roster action support persistent professional relationships separately from temporary membership.
Production work moves through temporary teams, dates, creative artifacts and changing obligations. A contact list answers who someone is; a work assignment answers what they do in a particular production. Neither alone answers who should receive tomorrow’s update, who is called for a day, or which version a reviewer approved.
A feature-by-feature model can accidentally create several representations of the same person. Staffing has a candidate, a call sheet has a recipient, a conversation has a participant, and a resource has a reviewer. These representations have legitimate local responsibilities, but they need explicit connections to persistent identity and current production participation.
The architectural thesis
Filmclusive keeps identity, participation, descriptive work, time and authority distinct. A Production supplies operational context. Membership connects a person to that context. Assignments describe one or more jobs. Groups organize work. Production Days tie intended work to operational time. Resources connect the people and context to what they are working on.
The conceptual vocabulary also includes Space, Workflow, Audience and Relationship. It is a vocabulary for explanation, not a claim that every concept is implemented as one universal database object. In particular, a shared Space concept does not erase differences between Production, Team and Community ownership.
A coordination path
Consider issuing tomorrow’s call sheet. The production and day provide context. Assignments describe the intended work. The schedule describes timing. An issued sheet freezes relevant content and recipients. Acknowledgement records an explicit response; presence records participation. Each stage contributes a different fact.
This separation costs more than a single spreadsheet-shaped record. Queries need deliberate joins and projections, and users need clear navigation between related records. The benefit is that replacing a work assignment does not recreate the person, viewing a sheet does not record arrival, and communicating with a group does not silently grant authority.
2. Persistent professional identity
Person and Profile
Person describes durable professional identity. Profile is an editable presentation of that identity. Biography, public discoverability and selected professional information may change while production history continues to refer to the same person. A public profile is therefore an inappropriate sole authority for operational participation.
Production contact presentation also has its own scope. Information visible in one production should not automatically become public biography or a reusable personal contact. The identity connection does not remove privacy decisions at those presentation boundaries.
Participation is contextual
Membership answers why a person belongs to a particular collaboration context. It has a lifecycle distinct from both identity and work. A person may belong before receiving an assignment, perform several assignments, or retain participation while work changes.
The public model deliberately does not equate every production person with a software account. Professional identity, application sign-in and current participation answer different questions. The details of identity reconciliation and invitation security remain private; the explanatory boundary is enough to understand the design.
Relationships persist deliberately
Personal Roster records a retained professional relationship. Shared production work provides context for knowing someone, but the production membership itself is not that relationship. Saving a coworker is a separate operation with appropriate contact review.
This produces a path from temporary work to persistent professional context without turning every production directory into a permanent personal address book. It also lets a future production refer to the same professional identity while creating fresh participation and work.
Cost of the separation
Identity, profile and relationship projections require consistent reference handling and understandable editing surfaces. A design that separates records but gives users no explanation of where a change belongs is still difficult to operate. The architecture must preserve ownership while the interface presents the relevant context compactly.
3. The Production graph
Membership is not Assignment
Membership is participation. Assignment is descriptive production work. One member can have no assignment, one assignment or several. Role, department, groups and work period belong to the description of work rather than being treated as a single permanent identity attribute.
A change from one job to another should preserve the member and person. Replacement and reporting relationships describe work and retain history. They should not silently rewrite participation or imply that the replacement inherits the original worker’s authority.
Groups organize work
A Production Group can represent a unit or working team. Generic organization avoids inventing independent lifecycle systems for every common grouping. Assignments can reference groups, and an audience can use eligible group context when targeting communication.
Generic does not mean unlimited meaning. A group is still scoped to its production. Parentage, membership and leadership are descriptive relationships. They do not automatically grant access, reporting authority or administrative permission. Department is another useful classification, not a substitute for explicit authority.
Assignment is not Task
A task is an actionable obligation: make a correction, supply a document or complete a specific action. An assignment describes the production work a person performs. Completing a task does not complete a job; changing a job does not complete every related obligation.
interface ProductionAssignmentExample {
membershipId: string;
roleLabel: string;
departmentLabel?: string;
groupIds: string[];
reportsToAssignmentId?: string;
replacesAssignmentId?: string;
}
This independently authored example communicates relationships. It is not an internal schema, state machine or accepted API payload.
Tradeoff
Separating participation and work introduces additional reference handling, history and projection work. It makes multiple jobs and changing work intelligible. The important acceptance question is whether the separation survives ordinary operations: replacing work, archiving a group and displaying historical context without manufacturing new people.
Connections in words
- Person participates through Production Membership
- Production Membership belongs to Production
- Production includes participation Production Membership
- Production Membership identifies Person
- Production Membership performs work through Production Assignment
- Production Assignment retains participation Production Membership
- Production Assignment describes work as Role
- Production Assignment classifies work in Department
- Production Assignment belongs to / leads Production Group
- Production organizes work in Production Group
- Production Assignment is called for work on Production Day
- Production owns operational Production Day
- Production Day records Presence
4. Context, permissions and audiences
Authentication is not authorization
Authentication identifies an actor. Authorization decides whether that actor may perform a particular action in the current context. A valid sign-in does not establish authority over a Production, resource, conversation or workflow decision.
Role names describe work. They are useful for people and for organization, but a Director or Department Lead label is not sufficient evidence of a software permission. Current scoped capabilities and subject policy remain the authority boundary.
Audience describes intent
Audience selects intended recipients or reviewers. An audience may refer to people, assignments, groups, roles or dynamic operational context. That answers whom something targets. It does not answer whether each selected person can read the subject or perform the requested action.
For example, everyone called today may be a sensible update audience. A creative resource linked to that day can still have a narrower visibility policy. Targeting people with an update cannot make a private resource public to them.
Authority remains server-owned
The UI presents available actions, but hiding a button is not authorization. A read model can suggest that an obligation exists, but it is not canonical permission truth. Domain execution must evaluate current authority at the relevant source boundary.
This paper intentionally describes these responsibilities without publishing exact security-control configuration, private transport headers or operational recovery mechanisms. Those details are unnecessary for understanding the distinction.
Costs and consequences
Audience resolution and authorization can require separate work, even when they concern the same people. Changes in participation, scope and source visibility complicate cached views and delayed effects. The resulting model is more explicit: a recipient is not automatically a participant, an observer is not automatically a conversation member, and a descriptive job title does not silently elevate access.
The public evidence is scoped local implementation and verification. It is not a claim of complete production penetration testing or proof that every configured integration has passed hosted acceptance.
5. Time as an operational primitive
Several facts about time
Availability answers whether a person can work during a proposed period. Conditional responses and alternatives can inform planning without becoming a commitment. Staffing turns that evidence into intended work through its own lifecycle.
Assignments describe the job and a broad work period. A Production Day describes an operational day. Schedule describes the sequence and timing of planned work. Call Sheet describes an issued projection of that plan. These facts are connected, but they cannot safely be collapsed into one calendar event.
Publication is versioned
An issued call sheet needs to identify the content and context the recipient actually received. Revising the plan creates a new publication question rather than changing the meaning of an old acknowledgement. Review of a draft and publication of the issued version remain distinct actions.
Queueing a delivery does not prove that a provider delivered it. Delivery does not prove that a person viewed it. Viewing does not prove acknowledgement, and acknowledgement does not prove arrival. A useful operational system needs these distinctions even when the interface keeps the presentation compact.
Presence records actuality
Presence describes operational participation. Called, acknowledged, checked in, late, absent, wrapped and replaced are conceptual distinctions used here to explain the domain. This list is not a published internal enum or complete transition table.
An ordinary meeting or hold should not automatically create an operational production day. Conversely, a day can relate multiple assignments, schedule items and recipients rather than being reduced to one person’s calendar entry.
Calendar semantics
Date-only work periods and time-zone-aware instants have different meaning. A calendar day should not shift because a viewer is in another timezone. Scheduled instants should retain their intended context. Display conventions belong at the human-facing boundary.
The model introduces more records and publication state than a simple calendar. It supports the practical question the production needs answered: what was planned, what was issued, who acknowledged it, and what actually happened?
Connections in words
- Person participates through Production Membership
- Production Membership belongs to Production
- Production includes participation Production Membership
- Production Membership identifies Person
- Production Membership performs work through Production Assignment
- Production Assignment retains participation Production Membership
- Production Assignment is called for work on Production Day
- Production owns operational Production Day
- Production Day plans work through Schedule
- Schedule is frozen into Call Sheet
- Production Day publishes Call Sheet
- Call Sheet targets eligible recipients through Audience
- Call Sheet receives version-specific Acknowledgement
- Acknowledgement is distinct from recorded Presence
- Production Day records Presence
- Person responds with Availability
- Availability informs Staffing
- Staffing leads to participation through Production Membership
Availability
- Available
- Unavailable
- Conditional
- Alternative dates
Presence
- Checked in
- Late
- Absent
- Wrapped
- Replaced
6. Production Resources
One context-bearing artifact model
Storyboards, scripts, wardrobe looks, lighting references, VFX versions and operational documents differ in content. They nevertheless share useful needs: ownership, context, versions, visibility and review. A Production Resource supplies those common relationships without pretending every media type has the same capture or preview behavior.
A resource can connect to a person, assignment, scene, shot, group or Production Day. These links explain what the artifact concerns. They do not automatically give a linked person permission to retrieve or approve it.
Exact content identity
A Resource Version is an immutable snapshot. A review identifies that version, not a moving “latest” attachment. Uploading another version cannot transfer old approval onto new content.
Current version, latest approved version and final version answer different questions. The current version may be awaiting review while an earlier version remains approved or final. Finalization is an explicit operation concerning the appropriate approved content; it is not merely another spelling of upload success.
interface ResourceExample {
productionId: string;
context: {
personIds: string[];
assignmentIds: string[];
sceneIds: string[];
shotIds: string[];
productionDayIds: string[];
};
currentVersionId?: string;
approvedVersionId?: string;
finalVersionId?: string;
}
This representative contract is independently authored and deliberately simplified.
Common infrastructure, specialized adapters
Media admission, private delivery and native capture retain their own boundaries. A common Resource model does not imply a generic public download URL or a complete streaming platform. Shared review mechanics do not eliminate type-specific validation.
The documented Resources implementation is local. Focused automated evidence exists, while production release, physical-device capture and staged department acceptance remain pending. This distinction is part of the architecture story: source and local checks are necessary evidence, but they are not substitutes for the relevant operational acceptance.
Connections in words
- Approval supports explicit selection of Final reference
- Production Resource has a separately selected Final reference
- Production Assignment is called for work on Production Day
- Production owns operational Production Day
- Production owns Production Resource
- Production Resource has immutable Resource Version
- Resource Version is reviewed through Workflow
- Workflow orders Workflow Stage
- Production Resource has person context Person
- Production Resource has work context Production Assignment
- Production Resource has narrative context Scene
- Production Resource has shot context Shot
- Production Resource has operational context Production Day
Resource subtypes
- StoryboardResource
- Shot listResource
- ScriptResource
- ImageResource
- VideoResource
- DocumentResource
- VFX versionResource
- Call sheetResource
7. Shared Workflows
Mechanics and subject ownership
A Workflow provides common review and transition mechanics. The subject domain still owns the business record and its policy. A resource version, financial submission and reviewed call-sheet draft can share infrastructure without becoming the same product object.
Subject adapters connect source ownership to the common engine. They are an explicit seam, not permission to invent authorization for an unsupported subject. Coverage must be described per adapter and integration.
Freeze the submitted process
A Workflow Definition describes the stages and reviewer audiences. Submission captures the applicable configuration. Editing a template later should affect future submissions rather than silently rewriting the process an earlier submission entered.
Review concerns exact submitted content. A changed resource version starts a new review. Decisions remain attached to the version and process in which they were made, and audit history explains accepted transitions.
ANY and ALL
ANY conceptually requires one eligible approval in the configured stage. ALL requires every required eligible reviewer to approve. A partially approved ALL stage remains under review. Eligibility and authority still apply; a job title alone cannot authorize a decision.
A storyboard might pass through director and cinematography review. VFX might involve a comp lead, supervisor and client. A call sheet might involve coordination and production leadership. These are illustrative process configurations, not assertions that a title automatically grants access.
What reuse buys
A shared transition layer reduces duplicated retry, revision and audit behavior. It also creates an obligation to preserve domain-specific validation and transaction boundaries. Reuse is incomplete if every adapter reimplements the engine, and it is dangerous if the engine takes over every subject’s authority.
Financial, creative and operational integrations have separate acceptance scopes. The public evidence page summarizes the documented implementation without exposing private receipts. A common engine does not establish that every future artifact or workflow template is implemented or released.
Connections in words
- Production Resource has immutable Resource Version
- Resource Version is reviewed through Workflow
- Workflow Definition configures a submitted Workflow
- Workflow orders Workflow Stage
- Workflow Stage requests eligible Review
- Review records a version-specific Approval
- Approval produces transition history in Audit Event
- Workflow Stage selects reviewers through Audience
- Permission / Capability authorizes eligible Review
- Permission / Capability controls current access to Production Resource
- Review may create corrections as Task
- Workflow projects current obligations into Attention
8. Communication, Attention and Today
Communication and effects
A Message belongs to a scoped conversation. An Update describes a production announcement targeted at an eligible audience. Following optional activity does not automatically make someone a private conversation participant.
A domain mutation can admit notification or delivery intent. Background processing and external providers then attempt the effect. Queue admission is not successful delivery. A public diagram that labels the queue as “sent” would obscure an important failure boundary.
Attention is current actionable work
Attention projects currently eligible obligations from source domains. It is not simply unread notification history. A message may be unread without requiring an action; a required workflow review may remain actionable after a notification has been read.
Source records determine completion and current access. Delayed projection work can lag, and coverage can be partial. A missing projected item therefore cannot automatically establish that no source obligation exists. A projection should make its coverage and failure state understandable rather than presenting an authoritative-looking empty screen.
Today composes
Today combines authorized assignments, days, schedules, call sheets, activity, availability and Attention into a useful read model. It does not own canonical work records. Opening it does not acknowledge a call sheet, mark a message read or complete a review.
Actions return to the owning domain. Source readers retain current authority. Candidate indexes and caches can help discovery and performance, but they are not permission truth.
Performance and correctness
Bounded reads, initial data and refresh improve the experience. They introduce limits: pagination, stale hints and partial failures need explicit handling. The current documentation records local verification of source composition and access boundaries. It does not establish production latency or every provider effect.
The lesson is a design boundary rather than a performance boast. Compose enough information to help a person act, then preserve the source domain’s authority over what the action means.
Connections in words
- Attention contributes actionable work to Today
- Production Assignment contributes work to Today
- Schedule contributes planned time to Today
- Availability contributes eligible requests to Today
9. Temporary work, persistent professional network
Shared work creates context
A person participates in a production, performs work and meets other people. That shared context can matter after the production ends. The professional network should retain useful relationship context without making a temporary production membership the permanent relationship object.
Production People answers who participates in this operational context. Personal Roster answers which professional relationships an individual deliberately retains. A community has still another membership and interaction lifecycle.
Saving a coworker
A conceptual path starts with a production, follows participation to the persistent person, then records a reviewed personal relationship. The saved relationship can help future work, while a future production still establishes fresh participation and assignments.
Saving contact information is not a bulk export of a production directory. Shared work does not imply permission to retain every private detail. Appropriate contact review and domain privacy remain part of the design.
Persistent identity without universal visibility
An identity connection can make records coherent without making them publicly discoverable. A public profile, a production directory and a personal roster are different presentations with different audiences. Linking them does not erase those boundaries.
The network model therefore resists two tempting shortcuts: recreating the person for every production, and exposing all shared-work history through one universally visible profile. The former loses continuity; the latter confuses identity with disclosure.
Costs
Persistent references need reconciliation and lifecycle handling. Relationship editing must be understandable, and people need a clear distinction between changing production information and changing a personal contact. These costs are the counterpart of a useful benefit: temporary work can contribute to a professional relationship without permanently owning the person or replacing future production authority.
The public site uses conceptual journeys rather than real crew records. No private customer or coworker data is included.
10. Collaboration Spaces
Common interactions
Production, Team, Organization and Networking Community may all need members, activity, messages, files, events and settings. Reusing navigation and presentation components can improve consistency and reduce duplication.
That visual similarity is not proof of one shared security model. The operational lifetime of a production differs from a long-lived team. A networking community differs from a private production directory. Their owners and membership semantics cannot be inferred from the component that renders a member list.
Space as explanatory vocabulary
Space is a useful concept for discussing collaboration context. This paper does not claim that every domain is stored as one generic Space object. A common presentation contract can name its context explicitly while domain services retain their own authority and lifecycle.
The same distinction applies to a Production Group. Reusing a group visual primitive does not make it a Networking Community or give it the permissions of a Team. Group hierarchy and work relationships remain scoped.
Reuse at the appropriate layer
Reusable UI can render a heading, list, activity item or resource card. It should receive an explicit authorized projection. Domain commands still perform the relevant context checks. A client component should not deduce privilege from a generic “owner” badge or a familiar route.
The alternative—duplicating every component by domain—has a maintenance cost. But flattening all collaboration domains into one authority model has a correctness cost. A measured reuse strategy separates these questions.
Public assessment limits
Existing Team workflows are part of the architecture. This edition does not assess complete Organization and Community feature coverage or release. They appear in the conceptual collaboration view because understanding the distinction is useful, not because every shared interaction is asserted to be complete.
Shared presentation primitives do not imply shared security domains or shared lifecycle models.
Production
- Members
- Activity
- Messages
- Events
- Files
Separate authority
Separate lifecycle
Separate privacy
Team
- Members
- Activity
- Messages
- Events
- Files
Separate authority
Separate lifecycle
Separate privacy
Organization
- Members
- Activity
- Messages
- Events
- Files
Separate authority
Separate lifecycle
Separate privacy
Community
- Members
- Activity
- Messages
- Events
- Files
Separate authority
Separate lifecycle
Separate privacy
11. Websites as public projections
Publishing is a boundary
A Profile, Production, Team or other eligible context may support public presentation. That does not make its private application records public. A Website is a configured projection of selected information, with publication as an explicit step.
Canonical identity and ownership remain in the application domain. Website configuration controls presentation. Publication decides which reviewed presentation becomes available through a public domain.
Why a projection
An unrelated website object that duplicates every identity field creates competing editing truth. Directly publishing private domain records creates an exposure problem. A projection can reuse authorized source information while limiting public output and retaining presentation-specific configuration.
The model still needs deliberate handling of updates. A change in canonical information and a public publication version need not mean the same thing. Draft configuration and issued public presentation should not be confused.
Different audiences
A production contact view serves participants under current policy. A public website serves anonymous visitors. Public presentation can have useful information without serializing private member context, operational obligations or internal source references.
The conceptual path is canonical context → public projection → website configuration → publication → Cloudflare → public domain. It explains responsibility without publishing provider credentials or private delivery endpoints.
The engineering site itself
This case study is operationally independent. It is built from public-safe authored content using Astro as a static compiler. It has no production API connection, account system or database. Moving it into a fresh repository should not require the Filmclusive Next.js build.
The engineering site’s separation makes the same projection principle concrete: public explanatory material is selected and authored for its audience rather than copied automatically from private implementation. Future tooling may assist candidate preparation, but it must not turn editorial review into automatic publication.
Connections in words
- Production has public projection Website
- Profile has public projection Website
- Team has public projection Website
- Organization has public projection Website
- Networking Community has public projection Website
- Website is configured for Publication
- Publication is delivered through Cloudflare Edge
12. Runtime architecture
Separate provider responsibilities
Cloudflare owns edge and control-plane responsibilities: ingress, static delivery, request protection, coordination and selected public caching and collaboration services. These are different from canonical identity and domain records.
The application’s Next.js Node runtime runs on Google Cloud Run behind the edge. Domain services execute commands and queries. Firebase and Google Cloud provide Firebase Auth, Firestore, Storage, App Check, Functions and selected workloads. External providers remain adapter boundaries.
A conceptual request
A client uses an explicit transport. The request boundary admits and routes the request. Authentication establishes identity. Authorization evaluates current scoped authority. A domain command or query performs the relevant work through storage or provider adapters. The response exposes an authorized projection.
This path is conceptual rather than a literal published inventory of routes, headers and deployment configuration. Actual handlers and adapters retain their distinct implementation concerns.
Background execution
Some effects belong outside the interactive request. Durable admission connects a committed domain change to later processing. Jobs may retry, and providers may fail independently. Admission is evidence that processing was accepted, not proof of successful delivery.
This separation makes failure interpretation more useful. A successful application command, a pending effect and a delivered provider message are different outcomes. The user-facing interface should describe the one actually established.
Operational tradeoffs
The edge/origin boundary introduces coordination across provider roles and releases. The Node-capable origin supports application and provider work that is not reduced to static edge behavior. The chosen split should be evaluated against its responsibilities, rather than treating one provider as a synonym for the whole platform.
The provider map is source-backed documentation. This public case study does not independently verify live settings, every release path or all tenant-domain transitions. It describes architecture and its evidence limits, not private operations.
Connections in words
- Functions / Jobs attempts effects through External Provider
- Web Client requests application access through Cloudflare Edge
- iOS Client requests application access through Cloudflare Edge
- Desktop Client hosts the experience of Web Client
- MCP Client accesses public APIs through Cloudflare Edge
- Cloudflare Edge forwards admitted requests to Next.js Origin
- Next.js Origin runs Domain Service
- Domain Service persists canonical records in Firestore
- Domain Service accesses admitted files in Storage
- Domain Service checks identity using Firebase Auth
- Domain Service admits background work to Functions / Jobs
- Domain Service uses scoped adapters for External Provider
- 1Web Client
- 2API Transport
- 3Cloudflare Edge
- 4Request Boundary
- 5Firebase Auth
- 6Permission / Capability
- 7Domain Service
- 8Firestore
- 9Response projection
- 10Web Client
13. Security and trust boundaries
Authority belongs at the source boundary
Client presentation is not enforcement. A hidden action button cannot protect a command. A dashboard record cannot authorize access to the underlying subject. Authentication identifies an actor; current authorization decides what they may do.
Audience resolution, resource visibility and action authority are separate responsibilities. A group or role can describe useful operational context without granting permission.
Public and private projections
Public pages must expose deliberately selected information. Private records should not accidentally travel through serialized props, metadata, public media or human-facing error messages. A public projection is its own disclosure boundary, not a prettier rendering of an unrestricted application record.
Files require similar reasoning. A reference to a file should not be treated as an access grant. Resource review refers to exact content, while access to that content remains subject to current policy.
Delayed work retains a boundary
Queued processing occurs after the original request. Source state and recipient eligibility may change. The conceptual obligation is to preserve the source’s current boundary when projecting or delivering work, rather than treating earlier queue admission as permanent authority.
This paper does not disclose exact security settings, internal bypasses, recovery procedures, production identifiers or unresolved vulnerabilities. These details would not improve the core architectural explanation.
Evidence and limits
Scoped local verification can establish specific properties of contracts, transitions and access boundaries. It does not prove every browser or provider behavior, and it does not establish complete production acceptance. The evidence page keeps those claims separate.
This static site also has a narrow responsibility: publish safe explanations without production credentials or data connections. Pattern scanning adds useful checks, but no pattern scanner can establish that every paragraph is safe, accurate or appropriately attributed. Editorial review remains part of public release.
Connections in words
- Permission / Capability controls current access to Production Resource
- Domain Service persists canonical records in Firestore
- Domain Service accesses admitted files in Storage
- Domain Service checks identity using Firebase Auth
- Web Client calls explicit API Transport
- API Transport submits requests to Request Boundary
- Request Boundary establishes identity through Firebase Auth
- Firebase Auth precedes evaluation of Permission / Capability
- Permission / Capability admits scoped commands to Domain Service
- App Check attests application context at Request Boundary
- Firestore supplies authorized source records for Today
- Public internet
- Cloudflare Edge
- Application boundary
- Authentication
- Capability / Authorization
- Domain command
- Canonical data
14. Multi-platform architecture
Web
The operational web application uses React and Next.js. It presents authorized domain projections and uses explicit API transports for commands and queries. This engineering site uses a different stack because its purpose is static explanation, not authenticated production work.
Native iOS
The iOS architecture is in an incremental SwiftUI/native migration. Native interfaces use shared identity, server contracts and permissions. Native interaction can take advantage of device capabilities without reproducing server authority in client-side rules.
Supported existing shell experiences can coexist during migration. A native implementation record or automated bridge test does not establish physical-device acceptance, App Store release or complete feature parity. Those claims need their own evidence.
Desktop
The Tauri macOS shell hosts the web application and adds selected local capabilities. It is not a separate copy of the application backend. A hosted page can change independently of native shell code, while native shell changes still have their own packaging and release lifecycle.
Offline behavior is bounded. The public model does not promise that all hosted screens work offline or that desktop runs a local Next.js runtime.
MCP
The stateless MCP service has an independent authentication boundary and accesses the public application API. It does not receive direct Firebase credentials merely because it is another client.
A tool-oriented interface has different interaction and admission concerns from a browser or a native screen. It can share domain contracts without sharing every UI or capability.
Shared contract, separate implementation
The design avoids two extremes: requiring identical interfaces on every platform, and giving each client a divergent model of canonical work. Shared server contracts preserve identity and ownership. Independent interfaces preserve useful platform behavior. Coverage remains incremental and should be stated per workflow rather than assumed from the presence of a client.
| Responsibility | Web | iOS | Desktop | MCP |
|---|---|---|---|---|
| UI | Web application | Native coverage varies | Hosted web shell | Tool interface |
| Authentication | Application identity | Shared server identity | Hosted application identity | Separate scoped boundary |
| Contracts | Server contracts | Server contracts | Hosted web contracts | Public API contracts |
| Offline capability | Not assessed | Not assessed | No parity claim | Stateless |
| Server API | Domain services | Domain services | Domain services | Scoped API |
| Local storage | Not assessed | Not assessed | Not assessed | No Firebase credentials |
| Release model | Application release | Incremental native migration | Desktop shell release | Integration release |
15. Evolution and migration
A thematic reconstruction
The architecture did not appear fully formed. Earlier profile, networking, project and domain-specific workflow systems coexist with newer production-first boundaries. This edition organizes that evolution into themes rather than claiming exact dates or a fully verified historical sequence.
Profile and relationship features establish persistent professional presentation and connections. Project and workflow expansion introduces more work context. Teams and websites add shared state and public presentation. Hiring adds availability and staffing lifecycles. Production-first work makes participation, assignment and operational time explicit.
Generalization retains subject ownership
Resources and Workflows consolidate useful repeated mechanics. That does not establish that every earlier artifact or approval system has been migrated. A newer canonical direction and an older active implementation can coexist temporarily.
The important distinction is between direction and deployment state. “Canonical” describes the chosen architecture. “Transitional” describes a seam still moving toward it. “Legacy” describes retained older design where supported by evidence. “Planned” describes an intended direction, not present implementation.
Migration has operational cost
New ownership boundaries can require compatibility, data preparation and source reconciliation. Readback can establish that preparation occurred without establishing compatible application release. A local suite can establish a narrow invariant without proving the complete hosted workflow.
A useful evolution story therefore explains what was retained as well as what changed. Preserving identity and history is often more important than presenting a perfectly clean diagram.
Native expansion
The native migration makes another separation visible: shared server contracts do not require shared UI implementations. Existing supported clients and new native surfaces can overlap while coverage develops.
The exact chronology and first-person historical lessons await Mas’s editorial review. This paper does not invent an origin date, a dramatic incident or a personal motivation that the current evidence cannot establish. It explains the architectural transitions that the present model and documentation make visible.
- Profile and professional relationships
- Project and workflow expansion
- Teams and publishing
- Availability and staffing
- Production-first work model
- Resources and shared review
- Native client expansion
16. Lessons and engineering responsibility
Boundaries should explain ordinary work
The strongest reason to separate Membership and Assignment is not abstraction for its own sake. It is that a person can change jobs without becoming a different participant. The strongest reason to version a resource is that approval must identify the content actually reviewed.
An abstraction that cannot explain these ordinary cases is too weak. An abstraction that requires users to understand every internal record before acting is too costly at the interface.
Reuse is a layer decision
Shared UI can improve consistency without sharing domain authority. A shared Workflow can reduce repeated transition mechanics without taking ownership of every subject. A generic Resource can connect creative artifacts without pretending every file format has identical behavior.
These choices introduce adapters, projection contracts and lifecycle maintenance. The lesson is to explain the maintained boundary and its cost, rather than describing consolidation as free complexity reduction.
Evidence should name the property it proves
Source existence proves implementation. A focused test proves a property within its test boundary. Data preparation and readback prove a scoped operation. None alone proves successful provider delivery, physical-device behavior or complete production acceptance.
The public case study uses that discipline intentionally. It is more informative to state what remains unverified than to use a single “done” badge that conflates architecture direction with release.
My responsibility
I designed the product model and architecture and made the implementation and integration decisions. AI-assisted workflows were used where appropriate. I remain responsible for investigating failures, assessing tests and evidence, maintaining security boundaries, and making infrastructure and release decisions.
This statement does not imply every source line was manually typed. It identifies the responsibility an interviewer should evaluate: whether I can explain the boundaries, the tradeoffs and the evidence needed to operate the system.
More specific personal historical lessons require editorial confirmation. The site should not turn plausible engineering observations into invented autobiographical claims.
17. Future work
The public case study
Future additions could include measured performance studies, native migration case studies and deeper explanations of selected workflow integrations. Each should add evidence and explanatory value rather than merely increase the number of graph nodes.
Architecture version history could help a reader compare a direction with later implementation. Such a history needs explicit editorial versions and claim scopes. It should not be an automatic mirror of private source changes.
Optional explorer capabilities
Automatic layout is unnecessary for curated V1 views. It could become useful if the site needs arbitrary graph generation. Animated request traces or architecture diffs should be added only if they make a boundary easier to understand and remain accessible as structured content.
A downloadable paper PDF can supplement the printable HTML. A blog or public changelog can carry narrower engineering stories. None requires accounts, a production database or a live connection to Filmclusive.
Candidate export is not publication
A private exporter might someday prepare an allowlisted candidate manifest. Its output would still require human review. It must not automatically publish private module names, operational configuration or claims inferred from source presence.
Manual editorial authoring is the V1 boundary. The independent public repository contains only reviewed explanatory content and the static site implementation, with fresh Git history.
Acceptance before expansion
The immediate success test is whether a technical interviewer can understand the domain objects, Membership versus Assignment, Groups and Audiences, exact-version review, Production Days, persistent relationships, Today, the request lifecycle and provider responsibilities after a five-minute tour.
A sophisticated frontend is not the objective. A coherent explanation that survives scrutiny is. The site should remain mostly HTML, CSS, public architecture data and content, with opt-in JavaScript for interactions that materially help the reader.