I built a mini admin panel so our team could stop asking me to post things

Stop buying SaaS for problems you can solve in a morning.

When you run a nonprofit with a small team, everyone does everything. At Herizon, our team wanted to write blog posts, share updates on LinkedIn, and use community stats in their presentations.

The problem? All of this required going through me or our developer.

So I built a thing.

The actual problem

Our team needed to:

  • Publish blog posts without knowing Git or Markdown
  • Post to our LinkedIn without access to the company account
  • Grab up-to-date stats for presentations without pinging anyone

The old workflow was stupid. Someone writes a blog post in Ghost or Google Docs, and it doesn't go anywhere from there without other person. For LinkedIn, they draft something in Slack or somewhere, then someone with page access posts it manually. For stats, people just pinged: "Hey, how many community members do we have now?"

In most cases, nothing happens because workflows just suck. We have a lot of data, but nothing is communicated actively.

What I built

A simple admin panel at /admin. Next.js, Supabase, few other things.

Blog with a Notion-style editor

Used BlockNote. Block-based editing, feels like Notion. Team members write posts, add images, hit publish. No code. Posts show up on the website immediately. Drafts stay private.

Zero training needed. People just figured it out.

One-click LinkedIn posting

Integrated YeetPost so anyone can post to our LinkedIn page from the admin panel. Three options:

  1. Write whatever you want with live preview and character count
  2. Use templates that pull live data from our CRM ("We just hit X community members across Y countries")
  3. Share upcoming events with auto-formatted announcements

The templates are the best part. Need to post about community growth? Click button, get post with real numbers. Done.

Data reference page

This is my favorite. All our key metrics in one place. Copy-to-clipboard on everything.

Need to mention how many countries our community spans? Click, paste. Need a formatted sentence about employment impact? Click, paste.

Pulls live data from our CRM for community stats. Employment metrics are manually updated but in the same place.

Nobody asks me for numbers anymore.

Team management

Admins invite people by email, assign roles. Editors can write and publish. Admins get everything.

Tech choices

  • Supabase for auth and database. Free tier is fine.
  • BlockNote for the editor. Open source, React, Notion UX.
  • YeetPost for LinkedIn. Handles OAuth so I do not have to.
  • Server components and actions. Client components only where actually needed.

Lives in the same Next.js app as our main website. No separate deployment.

What worked

Low friction. Notion-style editor meant no training. People just started using it.

Live data killed manual work. No more "what's the latest count" messages.

Role-based access. Not everyone needs admin rights. Everyone should be able to write.

What I would do differently

Better image handling. Cover images upload to Supabase Storage but no cropping or optimization. Should fix that.

Scheduled posts. We do not have this. Posts are published or drafts. A queue would help for the "I need this to go out at 9am but I will not be online" situation.

Analytics in the panel. Would be nice to see engagement without switching to LinkedIn's native analytics.


How long this actually took

Two hours this morning.

This is what building internal tools looks like now. You do not need a project plan. You need a clear problem and an AI that can code.

What comes next

We still pay around 1000 EUR per year for Ghost to handle our newsletters. That is next on the list. Once we integrate that into this panel, the team can manage blog posts, LinkedIn, and newsletters from the same place.

More importantly, they get access to live data everywhere. Write a newsletter and pull the latest community stats directly. No copy-pasting from some spreadsheet that is already outdated.

One panel. All communications. Live data.

Build internal tools

Seriously. If you run a company or a team, build internal tools.

Not everything needs to be a product. Not everything needs to scale. Sometimes you just need a ugly admin panel that solves your specific problem.

The ROI is insane. Two hours of building saves hundreds of hours of "can you post this" and "what's the latest number" messages.

Your team gets unblocked. You stop being the bottleneck. Everyone moves faster.

Stop buying SaaS for problems you can solve in a morning.

Subscribe to Mari Luukkainen

Join my free newsletter of 1000+ subscribers.
jamie@example.com
Subscribe