Skip to main content
A step-by-step recipe for building internal tools with Rocket - admin panels, dashboards, CRM interfaces, inventory managers, and other apps used by your team rather than customers.
Internal tools don’t need to be pretty - they need to be functional, fast, and reliable. Focus on data management and workflows over visual polish.

Before you start

Gather these before beginning:
  • A clear description of who will use the tool and what they need to do
  • The data source (Supabase, an external API, a CSV you’ll import)
  • The key workflows (what does a user do first, second, third?)
  • Any access control requirements (who can see or edit what?)

The recipe

1

Define requirements

Internal tools succeed when they solve a specific workflow problem. Be concrete about what the tool needs to do.Example requirements for a customer support dashboard:
  • View all support tickets in a sortable, filterable table
  • Click a ticket to see full conversation history
  • Change ticket status (open, in progress, resolved, closed)
  • Assign tickets to team members
  • See dashboard metrics: open tickets, average response time, tickets resolved today
  • Admin view: manage team members and their permissions
Write your requirements down. You’ll use them in your Build prompt.
2

Build the core app

Create a Build task and describe the tool based on your requirements.
Build an internal support dashboard. It needs: a data table showing all support tickets with columns for ID, customer name, subject, status, assignee, priority, and created date. The table should be sortable by any column and filterable by status and priority. Clicking a row opens a detail panel showing the full ticket with conversation history. Include a dashboard view with metrics cards: total open tickets, average response time, resolved today, unresolved > 24 hours. Add a sidebar navigation with Dashboard and Tickets sections. Connect to Supabase for the database. Use a clean, functional design - this is for internal use, so prioritize usability over aesthetics.
Rocket generates the full app. Preview it and check that the core data flow works: viewing, filtering, and updating records.
3

Add authentication and access control

Internal tools still need auth - you don’t want unauthorized access to sensitive data.
Add authentication with Supabase Auth. Only users with an @[yourcompany.com] email address can sign up. Add role-based access control: "admin" users can manage team members and change settings, "agent" users can view and manage tickets but not change team settings. Display the logged-in user's name and role in the sidebar header.
For internal tools, email domain restriction is often the simplest access control - only people with your company email can access the tool.
4

Connect your data source

Wire the tool to real data.
If you’re using Supabase (the default), your tables are already connected. Ask Rocket to set up the schema:
Create Supabase tables for this dashboard: a "tickets" table with columns for id, customer_name, customer_email, subject, description, status (enum: open, in_progress, resolved, closed), priority (enum: low, medium, high, urgent), assignee_id, created_at, updated_at. A "messages" table for ticket conversation history. A "team_members" table for user profiles. Enable row-level security so agents can only see tickets assigned to them, and admins can see all tickets.
5

Add workflows and actions

Internal tools are valuable because they speed up workflows. Add the actions your team performs most.
Add these workflow features: bulk actions on the ticket table (select multiple tickets and change status, assign, or delete). A quick-reply feature on the ticket detail panel with canned responses (templates the agent can customize before sending). A notification system that shows a badge when new tickets are created. An activity log on each ticket showing all status changes, assignments, and messages with timestamps.
6

Deploy internally

Internal tools don’t need public-facing SEO or conversion optimization, but they still need reliable deployment.
  1. Test in staging with your team
  2. Publish to production
  3. Optionally connect a custom domain (e.g., support.yourcompany.com)
  4. Share the URL and login credentials with your team
  5. Set up analytics to track usage patterns
For internal tools, you might skip a custom domain entirely and use the Rocket-provided URL. Bookmark it and share it with the team - no domain configuration needed.

Internal tool ideas

CRM

Customer relationship manager with contacts, deal pipeline, activity tracking, and email integration.

Inventory manager

Stock tracking with categories, suppliers, reorder alerts, and barcode/SKU lookup.

HR portal

Employee directory, PTO requests, onboarding checklists, and document management.

Reporting dashboard

Business metrics dashboard pulling from multiple data sources with charts, exports, and scheduled reports.

Tips for internal tools

  • Function over form. Your team needs to get work done, not admire the UI. Prioritize data density, keyboard shortcuts, and fast workflows.
  • Start with the most painful workflow. Build the tool around the task your team does most and likes least.
  • Add search and filters early. Internal tools quickly accumulate data. Make it findable from day one.
  • Use real data during development. Placeholder data hides real problems. Import a sample of production data for testing.
  • Get team feedback in staging. Share the staging URL with the people who’ll actually use the tool. Their feedback matters most.

What’s next?

Website redesign recipe

Redesign an existing website from audit to deploy.

Security checklist

Lock down auth, API keys, and data access.

Build overview

Explore everything Build can create.

Add payments

Add Stripe billing to your internal tool.