Northstar — From Conversation to Execution
Inspiration
Teams generate valuable ideas every day, but those ideas are often scattered across chats, documents, forms, task boards, and meetings. A proposal may receive support, yet nobody records why it was approved, who is responsible, or whether it produced a real outcome.
We built Northstar to solve that gap.
Instead of becoming another chat application or task manager, Northstar connects the complete lifecycle of team work:
Idea → Discussion → Vote → Decision → Project → Task → Outcome
Our goal is to help teams make decisions transparently, preserve the reasoning behind them, and turn those decisions into accountable execution.
What it does
Northstar is a secure decision-to-execution workspace for companies, clubs, committees, and project teams.
Team members can:
- Submit and rank proposals
- Discuss ideas with structured comments
- Vote while enforcing one vote per member
- Record decisions and their rationale
- Convert approved proposals into projects
- Assign tasks, owners, deadlines, and milestones
- Track progress and execution health
- Manage shared calendar events
- Collaborate through real-time public and private channels
- Search proposals, projects, decisions, events, and chat messages
- Receive in-app and desktop notifications
Northstar preserves the relationship between a discussion and its final outcome. Instead of seeing an isolated task, users can understand where it came from, what evidence supported it, who challenged it, and why the team decided to proceed.
How we built it
Northstar is built with Next.js, React, TypeScript, Tailwind CSS, Supabase, PostgreSQL, and Radix UI.
The frontend uses a responsive minimalistic Liquid Glass design system with:
- Light and dark themes
- Accessible dialogs and dropdowns
- Responsive desktop and mobile layouts
- Motion and reflection effects with reduced-motion fallbacks
- Search and notification overlays
- A SaaS landing page separated from the authenticated dashboard
Supabase provides:
- Authentication
- PostgreSQL storage
- Row Level Security
- Real-time chat and notifications
- File storage
- Multi-factor authentication
- Workspace and role isolation
The system supports four workspace roles:
- Owner
- Admin
- Member
- Viewer
Permissions are enforced in both the interface and the database. Private channel visibility, voting integrity, workspace access, and member actions are protected by PostgreSQL policies rather than relying only on hidden buttons.
We also added production-focused controls such as:
- Cloudflare Turnstile CAPTCHA
- Login and signup rate limiting
- MFA enforcement
- Content Security Policy
- Session and device management
- Security event monitoring
- Database backup and recovery procedures
- Automated RLS tests
- Playwright test infrastructure
- GitHub Actions, CodeQL, SBOM generation, checksums, and release provenance
To reduce unnecessary bandwidth, Northstar does not make every feature real-time. Real-time subscriptions are limited mainly to the active chat channel and the current user’s notifications. Search results and chat history use bounded queries, pagination, and scoped caching.
Challenges we faced
One major challenge was balancing real-time collaboration with performance and cost. Making every table real-time would increase database load, authorization checks, bandwidth, and synchronization complexity. We designed a selective real-time architecture instead.
Another challenge was securing multi-user workspaces. Hiding an action in the frontend is not sufficient because an attacker could call the database API directly. We used Row Level Security, database constraints, role-aware functions, and multi-user pgTAP tests to enforce boundaries at the database layer.
We also faced several frontend engineering problems, including:
- Hydration mismatches caused by CSP nonce handling
- Modal positioning and focus-triggered page scrolling
- Dark-theme inconsistencies across portal components
- Responsive navigation on smaller screens
- Service Worker cache invalidation during development
- JWT clock-skew and session recovery errors
- Search failures caused by unsupported filtering on PostgreSQL enum fields
Solving these issues required treating Northstar as a complete system rather than only a collection of pages.
What we learned
We learned that collaboration tools should not optimize for the number of messages sent. They should optimize for how effectively discussions become decisions and completed work.
We also learned that production readiness is not the same as a successful build. A reliable SaaS product requires security boundaries, monitoring, recovery procedures, automated tests, legal policies, and verifiable release artifacts.
Most importantly, we learned that transparency improves execution. When people can see the original problem, competing arguments, final decision, owner, deadline, and outcome in one connected record, teams lose less context and act with greater accountability.
What’s next
Our next priorities are:
- Converting chat messages directly into proposals, tasks, decisions, or calendar events
- Persistent cross-device mentions and unread states
- Stronger automated browser testing with multiple real users
- Secure file attachments with quarantine and malware scanning
- Workspace analytics for decision lead time and action conversion
- Installable PWA and closed-browser push notifications
- A separately designed end-to-end encrypted Secure Channel
- Integrations with GitHub, Google Calendar, Slack, and Microsoft Teams
Northstar’s long-term vision is to become a team operating system where every important conversation can become a transparent decision—and every decision can become measurable progress.
Built With
- cloudflare
- codeql
- css
- css3
- cyclonedx
- github
- html5
- mit
- next.js
- node.js
- pgtap
- playwright
- postgresql
- pwa
- radixui
- react
- tailwind
- typescript
- vercel
Log in or sign up for Devpost to join the conversation.