Imoran ai LogoImoran ai Logo

Building Planzia: A Modern Project Management Site with Next.js

Planzia is a project management app I built with Next.js: workspaces, tasks, team invites, a Paystack paywall wired through webhooks, and analytics that show where the budget actually went.

Published: November 14, 2025

Last updated: June 30, 2026

image of the article

Planzia is a project management tool I built to handle the full loop a small team lives in. A workspace holds projects, a project holds tasks, and everything around that, billing, invites, calendars, stays out of the way.

It's a Next.js app with Postgres and Prisma behind it. These are the parts that were actually interesting to build.

The hierarchy everything hangs off

Workspace, then project, then task. Getting this model right early saved me a lot of pain later. A user can belong to several workspaces, each workspace has its own projects and members, and a task carries the detail: type, status, priority, assignee, due date, and a budget. Once that shape was solid, features like the calendars and analytics were mostly just views onto the same data.

Billing through Paystack, confirmed by webhook

Planzia has a paywall, and the lesson I keep relearning shows up here too: I never upgrade someone's plan from the browser. The frontend sends them to Paystack, and the subscription only changes after Paystack calls my webhook to confirm the money moved. Invoices and plan changes go out by email from that same handler.

Trust the webhook, not the redirect. A user can close the tab on the success page; the webhook is the real source of truth.

Inviting a team without building an email system

Team management runs on a shareable invite link copied from the workspace settings. No invite-email infrastructure to maintain, no pending-invite edge cases to chase down. You send the link however you like, and roles get managed from one place once people join.

Two calendars, on purpose

There's a personal calendar that pulls events from every workspace you belong to, and a workspace calendar scoped to just one. I added the split after my own testing made the problem obvious: one giant merged calendar is pure noise when you're trying to focus on a single project's deadlines.

Analytics that answer "where did the budget go"

The analytics section uses bar and radar charts to show progress, budget spent per task, and how work is spread across the team. Because every task already carries a budget and an assignee, the charts are honest readings of real data, not numbers I had to build a separate pipeline to fake.

Frequently asked questions

What does Planzia do?

It's a project management tool: workspaces hold projects, projects hold tasks, with team invites, a Paystack paywall, calendars, and budget analytics.

How is billing handled safely?

A subscription only changes after Paystack confirms the payment through a webhook. The browser never upgrades a plan on its own.

Can you build a SaaS app like this?

Yes, from auth and billing to the dashboard. Tell me what you're building and I'll map out an approach.

Let's Work
Together

Hand Reaching

Have a project in mind? We'd love to hear about it. Let's create something great together!

PRODUCT DEVELOPERUI ENGINEERMVP DEVELOPMENTFRONTEND DEVELOPMENTPRODUCT DEVELOPERUI ENGINEERMVP DEVELOPMENTFRONTEND DEVELOPMENTPRODUCT DEVELOPERUI ENGINEERMVP DEVELOPMENTFRONTEND DEVELOPMENT