Announcements — Makerspace Admin Guide
This guide walks through publishing and managing announcements for the members of your makerspace. For a conceptual overview, see Announcements Overview.
Who can do this
Section titled “Who can do this”You need the Manage Announcements permission. It ships enabled on the default Admin and Manager roles. If you can’t see the Announcements page in your Admin sidebar, ask another admin to check your role.
Makerspace admins can only create Makerspace-members audience announcements, and they always render on the member Dashboard (the system forces both choices server-side). Platform-wide and public announcements are a separate flow handled by the MakerVera team.
Finding the page
Section titled “Finding the page”- Sign in to your makerspace.
- Go to Admin → Communications → Announcements.
You’ll land on the Active tab. The page has two tabs:
- Active — currently visible, scheduled, and recently-deactivated announcements you can still reactivate.
- History — the full audit trail of every announcement your makerspace has ever published.
Creating an announcement
Section titled “Creating an announcement”- On the Active tab, click New Announcement.
- Fill in the form:
| Field | Description |
|---|---|
| Title | Short headline. Plain text only. Required. |
| Body | The notice itself. Plain text up to ~1000 characters. No rich text or images in v1. Required. |
| Starts at (date + time) | When the announcement becomes visible. Interpreted in your makerspace’s timezone. |
| Expires at (date + time) | Optional. When the announcement automatically drops off. Leave blank for an open-ended notice. |
- Click Save. If
starts_atis in the future, the announcement lands with status Scheduled and starts rendering automatically when the time arrives. Ifstarts_atis now (or in the past), it lands as Active immediately.
Time-window tips
Section titled “Time-window tips”- Both times are stored in UTC on the backend and converted to your makerspace timezone for display. You don’t need to think about timezone math — just pick the local date and time you want.
expires_atmust be strictly later thanstarts_at(the database enforces this).- An announcement with no
expires_atruns forever until someone deactivates it.
Filtering the Active tab
Section titled “Filtering the Active tab”The status chips above the table filter the list. They are a single-select control:
- Active & Scheduled (default) — what your members are seeing now plus what’s coming up.
- Active — only the announcements currently visible to members.
- Scheduled — only future-dated announcements.
- Deactivated — deactivated announcements whose end time hasn’t passed yet (i.e. still reactivatable).
Once expires_at is in the past, an announcement moves to History and stops appearing here regardless of which chip is selected.
Editing an announcement
Section titled “Editing an announcement”- Click the announcement title (or its Edit action) in the Active list.
- Update the fields and save.
Edits are allowed at any time, including while the announcement is live — your change appears to members on their next page load. Editing does not reset the snapshotted creator name; that stays as it was when the announcement was first published.
Deactivating an announcement
Section titled “Deactivating an announcement”If you need to pull an announcement before its natural expiry:
- Find the announcement in the Active tab.
- Click Deactivate.
- Confirm in the modal.
Deactivating:
- Hides the announcement from members immediately on their next page load.
- Records you and the timestamp as the deactivator (snapshotted onto the row).
- Moves the row to status: Deactivated. If
expires_atis still in the future, you can reactivate. Once that time passes, the row is permanently in History.
There is no hard delete in v1. Deactivation preserves the audit trail.
Reactivating an announcement
Section titled “Reactivating an announcement”If you deactivated by mistake or the situation changed:
- Switch the status chip to Deactivated.
- Find the row and click Reactivate.
The announcement goes back to Active (or Scheduled, if starts_at is in the future) and members see it again on their next page load. The deactivation snapshot (who, when) is cleared on the live row but the history of the deactivation event is preserved separately in the audit log.
The History tab
Section titled “The History tab”The History tab is your audit trail. It shows every announcement, including expired ones and ones from departed admins.
| Column | Notes |
|---|---|
| Title | The title at the time of last edit. |
| Status | Computed (Active / Scheduled / Expired / Deactivated). |
| Created by | The snapshotted creator name and email — stays correct even if the user later renamed or left. |
| Created | The original creation timestamp. |
| Window | starts_at → expires_at for the announcement. |
| Deactivated by | The snapshotted deactivator name, if any. |
Searching and filtering
Section titled “Searching and filtering”The History tab supports:
- Search — case-insensitive substring match against the title (body content is not searched). The input is debounced, so the URL only updates after you stop typing for ~300 ms.
- Status filter — same vocabulary as the Active tab plus an All option.
- Date range — filter by the announcement’s visibility window (start time / end time overlap with the chosen range, where “end time” is
deactivated_atfor Deactivated rows andexpires_atotherwise). Inclusive on both ends. Invalid ranges (end before start) short-circuit the query and surface an inline validation message until corrected. - Pagination — 25 rows per page. All filter state is mirrored to the URL, so the page is shareable and bookmarkable.
Click Clear filters to reset every filter at once. The empty state distinguishes between “no history yet for this makerspace” and “no rows match your current filters” so you can tell why a search returned nothing.
Things to watch for
Section titled “Things to watch for”- Members don’t get pinged. An announcement is silent until a member happens to open the platform. If you need certainty of delivery, use a Broadcast.
- Editing live content is allowed but unaudited at field level. The audit log records the fact of an edit but not the per-field diff in v1. If a notice contains a critical correction, prefer deactivating the old one and publishing a new one.
- Reactivation is only possible while
expires_atis still in the future. Once the window closes naturally, the row is locked to History — you’d need to publish a fresh announcement.