Skip to content
Book a call

CRO-TO

Institutional, not bureaucratic: a site, CMS and design system for a dentistry council

Organization
CRO-TO
Role
Product designer and developer
Timeline
October 2026
Live build
cro-to.vercel.app
  • Design system
  • Website
  • Admin CMS
  • Migration
  • Accessibility

Results

news articles carried over from twelve years of archive
484
files from the old site re-hosted, 84 MB in all
469
admin pages for the staff, from news to the ombudsman inbox
26
design tokens in three themes, documented on a live page
99

The project

The Conselho Regional de Odontologia do Tocantins registers and inspects dentists in the state of Tocantins, Brazil. I designed and built a new public site, a custom admin CMS and a documented design system for the council, and moved its twelve-year archive into them. Design, front end, back end and migration, by one person directing AI agents.

  • The new home page

    Public site

    21 pages for dentists and citizens: services, news, legislation, transparency and the ombudsman.

  • The admin dashboard

    Admin CMS

    26 pages for the council’s staff: news, documents, people, offices and the request inbox.

    See the adminStaff sign-in only
  • The design system page

    Design system

    99 tokens in three themes, 20 type styles and 15 live component specimens, on one page.

How I solved it

One answer per pain. Public pages are the live site; the admin screens come from a local copy with the migrated public archive and invented users and requests.

01

Each audience finds its own services

The home asks what you need to solve today and answers in two tabs, one for professionals and one for citizens. One bordô panel marks the main way in, and every service that opens an outside system says so with a badge.
Home services for professionals, with the bordô panel

Certificates, the annual fee and online services. Each card that leaves the site names the system it opens, Implanta or CFO.

The home on a phone

The accessibility bar, the notice and search come first, then the lookup card. Its record is fictional, and the card says so.

Scroll inside the phone to see the whole page.

9:41
The home page on a phone

02

Every request gets a protocol and a deadline

Complaints have 30 days by law, and information requests 20, plus 10 when justified. The form issues a protocol the citizen can follow, and the staff inbox counts each deadline down and colors the ones that are late or close.

Day 33: Past the deadline: red, and first in line on the dashboard.

An explainer rebuilt from the inbox’s own chips and its fictional request. The real screens follow.

The same requests in the real screens

  1. cro-to.vercel.app/ouvidoria
    The ombudsman form, step 1 of 4, with the protocol lookup beside it

    One question at a time

    The public form starts with what kind of request it is, in four steps, and promises an answer within 30 days. A protocol lookup sits beside it.

  2. cro-to.vercel.app/admin/ouvidoria
    Ombudsman inbox with overdue and near-deadline requests

    Every request, by deadline

    The staff inbox shows each protocol with its status and a deadline chip: overdue in red, five days or less in amber, the rest neutral.

  3. cro-to.vercel.app/admin/ouvidoria
    A request with its requester, reply, due date and timeline

    The deadline stays in view

    A request opens with the requester, the official reply, a timeline and the due date, adjustable only for a justified extension.

  4. cro-to.vercel.app/admin/esic
    The e-SIC inbox for information requests

    Information requests, on their own clock

    e-SIC requests follow the access-to-information law, 20 days extendable by 10, with the same chips.

03

The staff publish on their own

A custom admin with 26 pages for the council’s staff, in light or graphite. The dashboard opens on what needs attention, nearest deadlines first; posts can be drafted, scheduled and featured, and every file goes through one media library.
Admin dashboard in the light theme

Dashboard, light. It opens on deadlines, nearest first, with quick actions for news, documents and home notices.

  1. cro-to.vercel.app/admin/noticias
    Writing a news post: title, summary, address and cover

    Write

    Title, a summary with a character counter, the address and a cover from the media library, with status, date and category beside them.

  2. cro-to.vercel.app/admin/noticias
    Scheduling a post for a date and time

    Schedule

    A post can stay a draft, go out now or wait for a date and time. This one is set for 25 October, the dentists’ day.

  3. cro-to.vercel.app/admin/midia
    The media library with search, filters and uploads

    One media library

    Every image and file goes through one library, with search, type filters and drag-and-drop uploads.

Documents manager
Site settings
Users and roles

Documents

Forms, manuals and reports with status, file size and a switch for showing each one on the site.

01 / 03

04

Twelve years of archive, carried over

I wrote an importer that reads the old site one page at a time and can run again without duplicating anything. It cleaned the old HTML, re-hosted every file, and a custom editor block keeps old tables and embeds as they were.

484news articles

From 15 October 2013 to 23 December 2025, by category.

  • Institucional184
  • Comunicados104
  • Saúde Bucal90
  • Eventos89
  • Fiscalização17

469files re-hosted

84.3 MB moved off the old server, by what they belong to.

  • News images382
  • Partner logos28
  • Legislation21
  • Page files19
  • Documents11
  • People photos8

Counts from the live site’s news filters and sitemap, and from the importer’s file manifest. The 23 norms are in the legislation screens below.

News table with the migrated archive
A migrated article open in the editor, full length
Legislation manager with the migrated norms
The legislation page on the public site

A migrated article in the editor

Cover, summary, text and search preview, all carried over into the same editor as a new post. Scroll inside the frame to read it all.

01 / 03

05

One calm brand, readable by everyone

I wrote one principle down: institutional, not bureaucratic. Bordô marks one action per view, the dark only frames the page, and every token, type style and component is documented on a live page.
Color tokens rendered in the light, graphite and high-contrast themes
The design system page: principles first
Type specimens
Section heading and the bordô call to action
Service cards with origin badges, and news cards
The graphite admin components with sample rows
Headquarters and regional offices on maps
The graphite footer

Principles first

The live design system page opens on the principles every screen follows.

01 / 07
  • A high-contrast theme, text size controls and the official Libras sign-language widget, in a bar on every page.
  • A skip link, one heading per page, visible focus and 44-pixel targets.
  • One entrance animation on the home; everything else moves only when someone acts.

Outcomes & learnings

  • A public site, an admin and a design system, live at cro-to.vercel.app with the system at /croto-design. The council’s own domain still runs the previous site.
  • Twelve years of the council’s archive moved into a CMS built for its staff: 484 news articles, 23 norms and 469 files.
  • Each complaint and information request gets a protocol for the citizen and a visible legal deadline for the staff.
  • One design system for the public site and the admin: 99 tokens in three themes, with its known gaps listed on the page.

What I learned

Writing the principles down, and the known gaps with them, made each improvement easy to carry to every page.

Next case

DS Club

A cashback club rebuilt for clients, stores and staff