Repository navigation
v3.12.0 — Landing page redesign, visitor counts and feedback
A rebuilt landing page, a way to hear from the people using SlipNote, and counts of where visitors come from. Also an installable board, better download names, and a clearer theme switcher. One migration and two new env keys — see "Before you deploy".
Landing page
Rebuilt to Nielsen Norman Group guidance: say what it is first, one action, students' own words, nothing decorative that says nothing.
- Hero. "Share your class's notes, slides and past papers with one link." beside a class group chat: someone asks for the slides, someone says "scroll up", you post the board link, and a classmate replies "Finally". The link preview shows what it opens: 6 courses · 48 files.
- How it works. Three steps on a vertical line. Step 1 shows the link the board's name becomes and introduces the owner link; step 2 shows a small board of courses.
- Compare. WhatsApp group, SlipNote and Google Drive as rows of things a student wants to do, answered with yes / no / partly marks that look the same in every column. Drive gets fair "partly" marks where it earns them.
- Questions. Shown openly instead of in an accordion, each answer leading with the direct answer. File limits come from config, so the page never states a number the app doesn't enforce.
- Layout. A floating rounded nav bar, sections separated by space instead of rules, every button fully rounded, and one label throughout: "Create a board".
Feedback and visitor counts
- "Using SlipNote a lot? Tell us how." Boards with files show this under the course list, with WhatsApp and email links that already name the board. Dismissed once per browser. Hidden until a contact is configured.
- Arrival counts. A page opened from outside the site adds one to a daily tally of board × country × source. No IP, user agent or cookie is stored; navigation inside the site, crawlers and WhatsApp link-preview fetches don't count. Country comes from Cloudflare's
CF-IPCountry, trusted only from a trusted proxy. - Operator → Visitors tab. The last 30 days by country, by source (google, whatsapp, ambassador, direct, or the referring site), and the boards people arrive at with each one's leading countries.
- Privacy page now describes the counts, which it previously ruled out, and its date is updated.
Also in this release
- Installable as the board. Each board serves its own web app manifest, so Add to Home Screen opens on the board, not on SlipNote. A service worker answers offline navigation with a notice; it caches nothing.
- Downloads keep the uploader's title and carry the course code, in single downloads and ZIPs.
- Theme switcher shows all three modes (system, light, dark) side by side instead of a button that cycled through them.
Before you deploy
Run migrations. A new visit_tallies table.
Set two env keys (both in .env.example) to show the feedback prompt:
FEEDBACK_WHATSAPP— your number in international form, digits only, e.g.233241234567.FEEDBACK_EMAIL— optional; falls back toCONTACT_EMAIL.
Leave both empty and the prompt stays hidden.
For countries in the Visitors tab, the site must sit behind Cloudflare with its ranges in TRUSTED_PROXIES. Without that, every country reads Unknown; everything else still works.
VisitTallyTest covers the counts, the Visitors tab and the feedback links. 199 tests.