Dashboard
The first screen is yours
My Day is schakl.'s home screen — not a fixed dashboard we designed, but a board each colleague composes from the widgets the enabled modules contribute. Anyone who sets nothing inherits the layout a manager saved as the team default.
Use it first, edit it deliberately
The board sits in two columns side by side, and as one stack on a phone; the saved order reads the left column top to bottom and then the right, which is exactly the order the phone shows you. In use mode nothing happens by accident: tiles are not draggable and a stray mouse gesture cannot disturb your layout. Press Aanpassen and you get dragging between both columns, a ✕ on each tile to take it off, and the gallery of widgets not yet on your board. Klaar turns all of that off again. Every move saves itself, so there is no separate save step to forget.
Widgets come from your modules, not from a fixed list
The page itself knows no widget at all. Every module contributes its own tiles, so what lies in the gallery follows exactly the modules your agency runs — turn one off and its tiles go with it. And only what you may actually see is offered: a widget behind a permission you do not hold is not an empty tile but a refused request, so it never reaches the gallery. The gallery groups by category (Uren, Taken, Verlof, Te beoordelen, Financieel, Projecten, Marketing and Overig) and draws static previews; it never fetches real data just to fill a thumbnail.
- Uren: Uren vandaag with the running timer, and Team deze maand with hours, billable share, awaiting approval and revenue
- Taken: Mijn openstaande taken in four sections (overdue, today, this week, later) and Openstaande taken per project / klant, ranked by what is late rather than by how many
- Verlof: your own Verlofsaldo, Verlof te beoordelen for approvers, and Vandaag afwezig
- Financieel: Openstaande facturen with overdue flagged loudly, Openstaande offertes and Terugkerende omzet
- Projecten and Marketing: Budgetstatus (every hour budget as over, almost spent or within, with the hours over), Projectbudgetten (the budgets burning hottest) and the top clients by sessions or clicks
- Te beoordelen: E-mails te beoordelen, your matched messages across every client
Every figure opens the list it counts
A tile that counts something counts over the whole set rather than the page it happens to show, and every figure is a link to exactly the list it is about. Mijn openstaande taken splits your work into overdue, today, this week and later; each heading carries its count and opens the task list with the same filter, so 2 in the heading is 2 in the list. Today is drawn even when nothing is due today, so you can tell "nothing today" from "this tile does not do today". Every row names the date and the distance, "24 aug · over 3 dagen" or "6 dagen te laat", and Later starts folded. Budgetstatus divides every hour budget into three bands, over budget, almost spent and within budget, with the hours over summed under the first; each band opens the project list with that filter. The colours are the state's, never your brand colour, and every state carries a glyph as well, so the tile still reads in grey. When a tile is capped, it says so.
Everyone's own layout, with a team default underneath
What schakl. stores is no more than an ordered list of widget keys per person, and that is exactly enough. A manager with the right permission fixes the org-wide layout under Instellingen → Dashboard: everyone without a board of their own inherits it, and whoever later starts rearranging leaves the default untouched for the rest. Terug naar teamstandaard throws your personal layout away and drops you back onto the template. With no layout anywhere, you simply get every widget you may see. And a key that no longer resolves — a module since turned off, say — quietly falls out instead of breaking the board.
A board that opens rather than loads
Which tiles are on your board is resolved first; only then is any data fetched. That genuinely matters: several widgets fan out internally into multiple aggregate queries, and without that ordering a deliberately small board was as slow as the largest possible one. From there each tile travels on its own and appears the moment it is ready, so a slow marketing digest never holds the rest back. If two tiles ask for exactly the same digest it is fetched once, without either widget needing to know the other exists.
And the client gets a board of their own
A client signing in to the portal lands on the same mechanism in its own dress: one column, top to bottom, and if they run several companies with you a switcher sits above the board with each company's own logo, and every tile switches along. Their gallery differs from your team's, because a tile linking to an internal screen has no business there, and your team's house layout does not apply to them. They pick from Jullie taken (what is asked of them) and Werkzaamheden (what you are doing for them), Jullie rapportage as a cover with open and download, the marketing overview your agency composed for them, Mijn abonnementen, Mijn facturen and Mijn domeinnamen. The layout is the client's; what sits inside the marketing tile stays yours. Mijn dag itself is core functionality and needs no licence key: which widgets exist simply follows the modules you run.
Want to know more?
The documentation describes every module in detail, from installation to permissions.