TopShelf
pin your
website
app
tool
mini apps
here
M
developer.mozilla.org
JavaScript · Reference
Array.prototype.map()
Creates a new array populated with the results of calling a function on every element.
const numbers = [1, 2, 3, 4]
const doubled = numbers.map(
  n => n * 2
)
// [2, 4, 6, 8]
callbackthisArgreturns: Array
Designing spatial UIs, episode 4
Figma Config · 18:42
L
linear.app/today
Today, April 30
Your day, in sight
4 tasks · 1 done
In focus · 1h 24m
Fix the login redirect bug
ENG-204 · in progress
Up next
Review onboarding specENG-318 · 11:00
Standup9:30
Pair on auth flow with Mo2:00
Write weekly update4:30
C
claude.ai · Sonnet 4.6
Why is my regex matching empty strings?
C
Claude
Your * quantifier matches zero or more. Use + if you need at least one character:
const re = /^[\w.-]+@[\w.-]+$/
re.test('') // false ✓
Ask Claude anything…
T
cooking.nytimes.com
Weeknight dinner
One-pan lemon chicken
30 min·serves 4·★ 4.8
Ingredients
4 chicken thighs, bone-in
2 lemons, thinly sliced
4 cloves garlic, smashed
1 tbsp olive oil · fresh thyme
Steps
1Heat oven to 400°F. Pat chicken dry, season generously.
2Sear skin-side down 6 min until golden. Flip, add lemons.
3Roast 18 min until juices run clear. Rest 5 min before slicing.

Keep it
on top.

Pin apps and websites to your menu bar, then float them over any window so the thing you need never gets buried.

TopShelf
pin your
website
app
tool
mini apps
here
src
App.tsx
routes.ts
api.ts
components
Button.tsx
Card.tsx
package.json
1import { Router } from './router'
2import { db } from './db'
3 
4export async function routeRequest(req) {
5  const user = await db.users.find(req.id)
6  if (!user) return { status: 404 }
7  return Router.handle(req, user)
8}
Floating docs

Code with docs in sight.

Pin MDN, GitHub, your runbook, any URL, right above your editor. Stop alt-tabbing. Start shipping.

M
developer.mozilla.org
JavaScript · Reference
Array.prototype.map()
Creates a new array populated with the results of calling a function on every element.
const numbers = [1, 2, 3, 4]
const doubled = numbers.map(
  n => n * 2
)
// [2, 4, 6, 8]
callbackthisArgreturns: Array
src
App.tsx
routes.ts
api.ts
components
Button.tsx
Card.tsx
package.json
1import { Router } from './router'
2import { db } from './db'
3 
4export async function routeRequest(req) {
5  const user = await db.users.find(req.id)
6  if (!user) return { status: 404 }
7  return Router.handle(req, user)
8}
Floating videos

Watch as you work.

Lecture, tutorial, or design review. Keep the video pinned while you take notes underneath.

Designing spatial UIs, episode 4
Figma Config · 18:42
Research notebook
Spatial UIs, episode 4
Apr 18 · 14:22·designvrui
Key principles
03:14Depth cues matter most for spatial wayfinding
07:42Avoid floating text without anchors
12:08Use shadows for spatial hierarchy
"The interface is the world, not a window onto it."
Lecturer · 14:32
To try
Read Apple HIG for visionOS
Test glassmorphism patterns
Sketch hover affordances
Floating favorite

Your day, in sight.

Pin Linear, Todoist, or your calendar. Always know what is next without losing focus on what is now.

L
linear.app/today
Today, April 30
Your day, in sight
4 tasks · 1 done
In focus · 1h 24m
Fix the login redirect bug
ENG-204 · in progress
Up next
Review onboarding specENG-318 · 11:00
Standup9:30
Pair on auth flow with Mo2:00
Write weekly update4:30
Weekly report · week 16
Updated 2 hours ago · 4 min read
What shipped
Floating AI

Your AI, always there.

Keep Claude, ChatGPT, or Perplexity floating next to your code. Ask, glance, paste the answer, keep shipping.

C
claude.ai · Sonnet 4.6
Why is my regex matching empty strings?
C
Claude
Your * quantifier matches zero or more. Use + if you need at least one character:
const re = /^[\w.-]+@[\w.-]+$/
re.test('') // false ✓
Ask Claude anything…
src
App.tsx
routes.ts
api.ts
components
Button.tsx
Card.tsx
package.json
1import { Router } from './router'
2import { db } from './db'
3 
4export async function routeRequest(req) {
5  const user = await db.users.find(req.id)
6  if (!user) return { status: 404 }
7  return Router.handle(req, user)
8}
Floating anything

Cook with both hands.

Pin a recipe somewhere visible, then chop, stir, taste. Glance at the next step without wiping your hands on a dish towel first.

T
cooking.nytimes.com
Weeknight dinner
One-pan lemon chicken
30 min·serves 4·★ 4.8
Ingredients
4 chicken thighs, bone-in
2 lemons, thinly sliced
4 cloves garlic, smashed
1 tbsp olive oil · fresh thyme
Steps
1Heat oven to 400°F. Pat chicken dry, season generously.
2Sear skin-side down 6 min until golden. Flip, add lemons.
3Roast 18 min until juices run clear. Rest 5 min before slicing.
Weekly report · week 16
Updated 2 hours ago · 4 min read
What shipped
Lives in the menu bar

Tucked into your menu bar.

TopShelf lives at the top of your screen, always one click away. Pin a stack of websites, apps, and tools, then call any of them up to float over your work and tuck them back when you are done.

Weekly report · week 16
Updated 2 hours ago · 4 min read
What shipped
N
docs.notion.so/plan
Q2 Planning
Launch readiness checklist
Finalize pricing tiers
Ship onboarding flow v2
Beta invite batch 3
Update marketing site
Enable analytics events
TopShelf
q2-launch.doc
TopShelf
claude.ai
TopShelf
cooking.nytimes.com
Made for any workflow

Code. Study.
Think. Do.

Download TopShelf for everything, coding, studying, AI, whatever pile of tabs you're trying to tame.

Coding
Docs on deck
Pin MDN, Stack Overflow, GitHub. Keep the reference in sight while you code.
Studying
Notes on top
Research window up, notes underneath. Glance, write, glance, write.
AI
Your copilot
Keep ChatGPT, Claude, or Perplexity floating. Ask. Answer. Continue.
Everything
Whatever you do
A timer. A playlist. A dashboard. Anything with a URL belongs on your shelf.
Questions

Answers, up front.

What is TopShelf?

TopShelf is a macOS menu bar utility that floats any website or built-in mini app as an always-on-top window on your Mac. Built by ApoioLabs.

Floats always-on-top
Websites (any URL) and six built-in mini apps sit above every other window.
Quick launch
Installed Mac apps launch from the menu bar; TopShelf brings their existing window forward.
How does TopShelf work?

TopShelf lives in your Mac menu bar and turns any website or built-in mini app into a floating always-on-top window with one click.

  1. 1Click the TopShelf icon in your menu bar.
  2. 2Paste a URL, or pick one of the six built-in mini apps (calculator, notes, to-do, pomodoro, color picker, password generator).
  3. 3TopShelf opens a small resizable window that stays above every other window, even across spaces and full-screen apps.

Move it, resize it, snap it to a corner, or dismiss it from the menu bar at any time. Pinned installed Mac apps launch straight from the menu bar (existing window brought forward, not forced always-on-top).

How much does TopShelf cost?

TopShelf is a one-time purchase with free updates for life. Buy the current version on the Mac App Store. A free trial (an older, time-limited version) is available on Gumroad if you'd like to try TopShelf first.

One-time purchaseLifetime licenseFree updates foreverNo subscriptionNo account

See the Mac App Store listing for current pricing.

Is there a free trial?
Yes, on Gumroad. Time-limited.

A free trial of TopShelf is available on Gumroad. It's an older version of the app you can download and use for a limited time. No account or credit card needed to start.

When the trial expires, you'll be prompted for a license code to keep using it. To purchase the current version of TopShelf with free lifetime updates, get it on the Mac App Store.

Does TopShelf work with ChatGPT, Claude, Spotify, Slack, or any specific app?
Yes. Any web-based service floats as an always-on-top window.

TopShelf works with any website. Anything with a URL becomes a floating always-on-top window on macOS.

AI
ChatGPTClaudePerplexityGemini
Music
Spotify Web PlayerApple Music webYouTube
Chat
SlackDiscordTeams
Productivity
NotionLinearFigmaDocsDashboards

Native Mac apps like the Spotify desktop app or Slack desktop app can also be pinned to the menu bar for quick launching, though those windows are brought forward rather than floated always-on-top. For always-on-top behavior with those services, pin the web version of the app instead.

Does TopShelf collect data?
No. TopShelf collects zero personal data.

All TopShelf settings are stored locally on your Mac. This is by design. TopShelf is built on a Privacy by Design principle.

  • Analytics
  • Telemetry
  • Third-party tracking
  • User accounts
  • Credit card details
Where is my mini app data (notes, tasks) saved?
Locally on your Mac. No sync, no account.

All TopShelf mini app data is stored on-device using macOS's standard preferences system (UserDefaults) inside the app's sandboxed container. Nothing leaves your Mac, there's no cloud sync, and no account is required.

  • Notes: your notes and grouping preference.
  • To-Do List: your tasks, sort order, and grouping preference.
  • Password Generator: your generator settings and a capped local history of generated passwords.
  • Color Picker: your last-picked color and a capped local color history.
  • Calculator: your scientific-mode preference.
  • Pomodoro: no persistent data (session state only, resets when you close the window).

If you delete TopShelf from your Applications folder, macOS removes the sandboxed container and everything in it goes with the app. Your notes, tasks, and histories included.

What macOS versions does TopShelf support?

TopShelf is a native macOS menu bar utility, not a cross-platform Electron wrapper. For the exact minimum macOS version requirement, check the Mac App Store listing, which always reflects the current supported OS.

  • Modern versions of macOS
  • Apple Silicon (M1, M2, M3, M4)
  • Intel Macs
  • Windows
  • Linux
How is TopShelf different from Rectangle, Stay, or built-in macOS window management?

TopShelf solves a different problem than window managers like Rectangle, Magnet, Moom, or Stay. macOS itself does not natively offer an always-on-top mode for arbitrary websites or web apps. TopShelf is purpose-built for that single job on Mac.

Rectangle / Magnet / MoomStayTopShelf
Snap & resize windows
Restore window positions
Float websites always-on-top
Built-in floating mini apps
Menu bar utility
Where can I download TopShelf?

TopShelf for macOS is available on two channels. The Mac App Store is where you buy the current version with free lifetime updates. Gumroad hosts the free trial (an older, time-limited version).

Mac App Store (buy)
Purchase the current version of TopShelf with free lifetime updates and automatic App Store updates. Open listing.
Gumroad (free trial)
Download an older, time-limited version of TopShelf. A license code is required to keep using it after the trial expires. Open listing.
Who makes TopShelf?

TopShelf is built by ApoioLabs, an independent software studio. Beyond our own macOS utilities, ApoioLabs also builds custom systems, apps, and other software for businesses. If you need something built for your specific needs, reach out.

Independent studiomacOS utilitiesCustom systemsCustom appsBusiness softwareClient work

Contact: hello@apoiolabs.com.

TopShelf

Give it a shelf.

Free updates forever. No accounts, no tracking, no nonsense.

Get started
Get TopShelf
  • Float any website or built-in mini app
  • Quick-launch your Mac apps from the menu bar
  • Lightweight & native macOS
  • Privacy-first, zero data collection
  • Free updates, forever
Free trialDownload and try it first. Pay only when you're ready for the lifetime license.
Try TopShelf
by ApoioLabs · privacy-first · free updates for life