This guide explains how to adapt the Side Project Manager template to fit your specific workflow, whether you're a solo indie hacker or running a small team.
The default status pipeline is:
Idea → Validating → Building → Launching → Live → Paused → Archived
If you don't need the full pipeline, reduce it to:
Idea → Active → Shipped → Archived
Delete the unused status options from the Select property and update any board views.
Add intermediate states if you need them:
Idea → Researching → Validating → Prototyping → Building → Alpha → Beta → Launching → Live → Maintaining → Paused → Archived
If you launch on multiple platforms, add a "Launch Channels" multi-select property with values like: Product Hunt, Hacker News, Reddit, Twitter, Newsletter, Blog.
The default validation formula uses these weights:
To emphasize learning over revenue, increase Personal Interest and Technical Feasibility weights:
To emphasize revenue, increase Market Size and Monetization weights:
Update the formula in formulas/FORMULAS.md with your new weights.
To add a new scoring criterion (e.g., "Competitive Moat"):
1. Add a Number property to the Ideas Backlog database (scale 1-5)
2. Update the validation formula to include the new factor
3. Add the new weight to the formula denominator
If you're working with a co-founder or small team:
1. Add an "Assignee" property (Person type) to the MVP Checklist and Launch Tracker databases
2. Create a Team Members database with Name, Role, Email, and Capacity (hours/week)
3. Add a relation from MVP Checklist → Team Members
4. Create a "My Tasks" view filtered by the current user
Add a Multi-select property called "Channels" to the Projects database:
Add a "Weekly Hours Available" number property to your Projects database. Compare this against the Effort estimates in your MVP Checklist to avoid overcommitting. Create a rollup on the Projects database that sums "Effort (hours)" from incomplete MVP Checklist tasks to see remaining work per project.
The default Revenue Log tracks one revenue type per entry. For projects with multiple streams:
1. Create separate Revenue Log entries for each stream (subscription, one-time sales, etc.)
2. Use the Revenue Type select to distinguish them
3. Create a "Revenue by Type" grouped table view
Add these properties to the Projects database:
Monthly Revenue / Revenue Goal * 100Add a "Category" multi-select to the Revenue Log's Expenses column:
Create a Gallery view on the Projects database:
Create a Board view on the MVP Checklist:
Create a Table view on the Revenue Log:
Create a Board view on User Feedback:
Notion's API can automate parts of your workflow. Here are starting points:
1. Auto-update Last Active — A cron job that updates the "Last Active" date on a project whenever you push to its repository
2. Revenue Import — Pull Stripe revenue data into the Revenue Log via the API
3. GitHub Issue Sync — Mirror GitHub issues into the User Feedback database
| Tool | Integration Point |
|---|---|
| GitHub | Link repository URLs in the Projects database. Use GitHub Actions to update project status |
| Stripe | Import monthly revenue data into the Revenue Log |
| Plausible/Fathom | Track live URLs' analytics; add "Monthly Visitors" property to Projects |
| Toggl/Clockify | Import time tracking data to update Hours Logged on Projects |
| Mailchimp/ConvertKit | Track newsletter subscriber counts as a revenue/growth metric |
Set a recurring monthly reminder to:
1. Archive projects that have been "Paused" for 3+ months
2. Update revenue figures in the Revenue Log
3. Review and prioritize the Ideas Backlog
4. Close resolved User Feedback entries
At the end of each year:
1. Export your Revenue Log to CSV for tax purposes
2. Calculate total hours invested vs. total revenue earned
3. Identify which project categories performed best
4. Update your Idea Validation weights based on what you learned
This guide walks you through importing the Side Project Manager template system into your Notion workspace. The process takes about 15-20 minutes.
databases/ folderpages/ folderThis is the master database. Import it first because other databases will reference it.
1. Open Notion and navigate to the page where you want your Side Project Manager to live
2. Click the + button or type / and select "Table - Full page"
3. In the new empty table, click ··· (three dots) in the top-right corner
4. Select "Merge with CSV"
5. Choose databases/projects.csv from your computer
6. Notion will create columns matching the CSV headers
After import, update these column types by clicking the column header → "Edit property":
| Column | Set Type To | Notes |
|---|---|---|
| Name | Title | Should already be set |
| Status | Select | Add colors: Idea=gray, Validating=yellow, Building=blue, Launching=orange, Live=green, Paused=red, Archived=gray |
| Description | Text | Default |
| Tech Stack | Multi-select | Notion will auto-detect the semicolons as separate tags |
| Started | Date | |
| Last Active | Date | |
| Hours Logged | Number | Format as "Number" |
| Repository URL | URL | |
| Live URL | URL | |
| Monthly Revenue | Number | Format as "US Dollar" |
| Total Revenue | Number | Format as "US Dollar" |
| Category | Select | Colors: Developer Tool=blue, CLI Tool=purple, Productivity=green, Design Tool=pink, Database=orange, Education=teal |
| Priority | Select | High=red, Medium=yellow, Low=gray |
1. Board View — Click "+ Add a view" → "Board" → Group by Status
2. Gallery View — Click "+ Add a view" → "Gallery" → Set card preview to Description
3. Active Only Table — Duplicate the default table view, add filter: Status is not "Archived" and Status is not "Idea"
1. Create a new "Table - Full page" in your Side Project Manager section
2. Merge with CSV → select databases/ideas_backlog.csv
| Column | Set Type To | Notes |
|---|---|---|
| Idea Name | Title | |
| One-Liner | Text | |
| Market Size | Number | Range 1-5 |
| Personal Interest | Number | Range 1-5 |
| Technical Feasibility | Number | Range 1-5 |
| Time to MVP | Number | Range 1-5 |
| Monetization Potential | Number | Range 1-5 |
| Validation Score | Formula | See formulas/FORMULAS.md for the formula |
| Status | Select | Ready to Build=green, Needs Research=yellow, Exploring=blue, Rejected=red |
| Source | Select | |
| Date Added | Date | |
| Notes | Text | |
| Related Project | Relation | Link to Projects database |
1. Ranked Table — Sort by Validation Score descending
2. Board View — Group by Status
3. Pipeline View — Filter to exclude "Rejected", sort by Validation Score descending
1. Create a new "Table - Full page"
2. Merge with CSV → select databases/mvp_checklist.csv
| Column | Set Type To | Notes |
|---|---|---|
| Task | Title | |
| Project | Relation | Link to Projects database |
| Category | Select | Infrastructure=gray, Design=pink, Core Feature=blue, Documentation=green, Enhancement=purple, Research=yellow, Marketing=orange |
| Priority | Select | High=red, Medium=yellow, Low=gray |
| Status | Select | Done=green, In Progress=blue, Not Started=gray |
| Effort (hours) | Number | |
| Actual Hours | Number | |
| Due Date | Date | |
| Dependencies | Text | |
| Notes | Text |
1. Board View — Group by Status
2. By Project — Group by Project relation
3. Timeline View — Click "+ Add a view" → "Timeline" → Use Due Date field
4. Overdue Filter — Table with filter: Due Date is before Today AND Status is not Done
1. Create a new "Table - Full page"
2. Merge with CSV → select databases/launch_tracker.csv
| Column | Set Type To | Notes |
|---|---|---|
| Task | Title | |
| Project | Relation | Link to Projects database |
| Phase | Select | Pre-Launch=yellow, Launch Day=orange, Post-Launch=blue |
| Category | Select | Content=blue, Design=pink, Marketing=green, Infrastructure=gray, QA=purple, Operations=orange, Community=teal, Analysis=indigo, Product=red |
| Status | Select | Done=green, In Progress=blue, Not Started=gray |
| Due Date | Date | |
| Owner | Text | |
| Notes | Text |
1. Board by Phase — Group by Phase
2. Board by Status — Group by Status
3. Calendar View — Use Due Date
4. Countdown — Filter: Status is not Done, Sort by Due Date ascending
1. Create a new "Table - Full page"
2. Merge with CSV → select databases/revenue_log.csv
| Column | Set Type To | Notes |
|---|---|---|
| Project | Relation | Link to Projects database |
| Month | Date | Format as "Month, Year" |
| Revenue Type | Select | Subscription=green, One-time Sale=blue, Advertising=yellow, Sponsorship=purple, Consulting=orange |
| Gross Revenue | Number | Format as "US Dollar" |
| Expenses | Number | Format as "US Dollar" |
| Net Revenue | Formula | See formulas/FORMULAS.md |
| Subscribers | Number | |
| New Signups | Number | |
| Churned | Number | |
| Notes | Text |
1. By Project — Group by Project relation
2. Monthly Timeline — Sort by Month descending
3. Revenue Chart — Table with sum totals on Gross Revenue, Expenses, Net Revenue columns
1. Create a new "Table - Full page"
2. Merge with CSV → select databases/user_feedback.csv
| Column | Set Type To | Notes |
|---|---|---|
| Project | Relation | Link to Projects database |
| Feedback | Title | |
| Category | Select | Bug=red, Feature Request=blue, Praise=green, UX=purple |
| Severity | Select | High=red, Medium=yellow, Low=gray |
| Status | Select | Fixed=green, In Progress=blue, Planned=yellow, Under Review=purple, Not Started=gray, Investigating=orange, Done=green, Noted=gray, Backlog=gray |
| Source | Select | |
| Date | Date | |
| Submitter | Text | |
| Response | Text |
1. Board by Status — Group by Status
2. Board by Category — Group by Category
3. Critical Bugs — Filter: Category is Bug AND Severity is High
Go back to your Projects database and add these rollup properties:
1. Open Tasks — Rollup on MVP Checklist relation → Count where Status is not "Done"
2. Total Feedback — Rollup on User Feedback relation → Count all
3. Monthly Revenue — Rollup on Revenue Log relation → Sum of Gross Revenue (show latest month)
Copy the markdown content from pages/ into new Notion pages:
1. Create a page called "Command Center" → paste content from pages/command-center.md
2. Create a page called "Idea Validation Framework" → paste from pages/idea-validation-framework.md
3. Create a page called "Launch Playbook" → paste from pages/launch-playbook.md
Add linked database views to the dashboard pages as described in each page's content.
CSV columns appear as text instead of the correct type:
Click the column header → "Edit property" → change the type. Notion defaults to Text for CSV imports.
Relations don't show matching entries:
Ensure the relation points to the correct database. The "Related Project" column should link to your Projects database by name.
Formulas show errors:
Copy the formula exactly from formulas/FORMULAS.md. Notion formulas are case-sensitive and require exact property names.
Multi-select values appear as single text:
If Tech Stack imports as one long string, click the column header → change type to Multi-select. Then edit each cell to split the values.