We are building a secure, multi-tenant web application designed for families with complex financial lives and the independent advisors who support them.
This is a production-grade MVP, not a prototype or demo app.
The platform will be used by real clients and must meet a high bar for privacy, permissioning, and correctness.
Engagement Details
Type: Freelance / Contract
Time commitment: ~20–30 hours per week
Duration: 8–12 weeks
Location: Remote
Start: As soon as the right fit is identified
Workflow: Async-friendly, with weekly check-ins
This role is best suited for a senior Bubble developer who prefers well-scoped, security-conscious builds.
All of the questions are answered here, as well as a way to book a meeting with me: NoCodeMinute - Development
US Based
Intro:
Been around since 2016 using Bubble. Before the plugin store, if you could even imagine! Currently working with several multi-tenant client apps as well as NoCodeMinute apps. Would love to have a chat to see if we might be a good fit.
Availability over the next 2-3 months: Currently available for 10-15 hours per week but will be opening up over time as other projects finish up.
Welcome to the forum first post and you jumped straight into a really interesting project
I’m Hans, a senior Bubble developer who’s been building production apps full time for years, mostly secure multi tenant SaaS tools and client/advisor portals where privacy and correctness are everything. This one hits close to home for me I’ve shipped very similar platforms where families/advisors handle complex financial info and one wrong permission could be a big deal. I love the emphasis on “production-grade MVP” with security over polish.
For your question on entity-level permissions in a multi-tenant Bubble app:
I use a dedicated EntityAssignment data type (or Membership/AccessGrant whatever fits the naming) that links each Entity (family portfolio, document, account, etc.) to specific Users with a Role field (Viewer, Editor, Full, etc.) and an Active yes/no flag.
Privacy rule on the Entity type (and any child data) is something like: This Entity’s EntityAssignments :filtered (User = Current User and Active = yes) :count > 0 (or combined with tenant-level checks for advisors who can see multiple entities under their assigned families).
All mutations run through backend-only workflows that revalidate the assignment server-side before anything touches the database. When you remove a user, we just flip Active to no or delete the assignment record access disappears instantly on the next load because Bubble evaluates privacy rules in real time. No direct URL access issues either, since I never expose raw unique IDs and always gate data behind these checks + page conditions.
It’s the same pattern I’ve used in live apps that handle sensitive client data, and it’s passed every security review I’ve thrown at it.
You can see a couple of recent examples including multi-user portals with role-based and entity-level controls in my portfolio here: Hans Kipropyego — No-Code · AI · Automation Builder
My rate is $20/hour. I’m available for 25–30 hours per week starting immediately and can commit straight through the full 8–12 weeks and longer if the pilot needs it.
Happy to sign the mutual NDA, independent contractor agreement, work for hire, and IP assignment right away no hesitation.
Would be glad to jump on a quick call once the NDA is sorted so I can show you exactly how I’d map this out for your entities and workflows. Totally understand you want to keep things high level until then.
Looking forward to chatting if it feels like a good fit
you’re absolutely right, thanks for catching that. :filtered doesn’t work inside privacy rules. The right approach is using a Do a search for directly in the condition instead.
Appreciate the correction.
We’ve delivered similar projects before and can work within a clearly defined fixed scope. If you’d like to discuss your project, you’re welcome to schedule a call here: Calendly - No-Code Venture
You can explore our background and services below, along with detailed pricing: