Dr. Filipe Carvalho/ Medical website

Medicine with adigital presenceworthy of yourcareer.
Internal Medicine and Rheumatology
A medical website with an article column and its own panel to publish.
- Next.js 15
- React 19
- TypeScript
- Prisma
Dr. Filipe Carvalho / Medical website
Medicine with adigital presenceworthy of yourcareer.
Internal Medicine and Rheumatology
- Next.js 15
- React 19
- TypeScript
A medical website with an article column and its own panel to publish.
- Next.js 15
- React 19
- TypeScript
- Prisma
Trust
Before the appointment, the proof.
Someone looking for a doctor online decides in seconds. The presentation page was built to answer that doubt with proof rather than adjectives: five blocks, each with a different kind of confirmation.
- Professional registry
The official registry numbers and the two specialties, right at the start.
- Education
Degree and residencies, with institution and year.
- Teaching
The work as professor and preceptor, showing the academic side.
- Publications
The scientific papers, each with its subject.
- Practice
Where appointments happen and in what form.
The real registry, contact and address details are on the site; this page shows only the kind of proof each block gathers.
The areas
Two areas, no fine print.
The specialties page doesn't promise “everything”: it names the two areas and, in each one, what is actually treated. Pick a tab to open the list.
Full assessment of adult health, with an evidence-based approach to diagnosing, treating and preventing systemic disease.
What is treated
- Complete preventive check-up
- Chronic and metabolic disease
- Cardiovascular prevention
- Whole adult health
The two areas and the eight items come from the site's code (specialties.tsx), word for word.

02/Content and autonomy
Knowledge that gains room to be shared.
Specialties and articles in a space of their own.
The article column is what keeps the site alive after the day it was finished. Each article has a category, a reading time and a colour picked in the panel, the same colour that marks the card below. Use the filter to see one category.
The first signs of rheumatoid arthritis: when to see a rheumatologist
Rheumatoid arthritis affects millions of people. Learn the early signs that shouldn't be ignored.
Read article
Systemic lupus erythematosus: myths and facts about the disease
Lupus is one of the most complex autoimmune diseases. Understand what science actually knows.
Read article
Osteoporosis: the silent disease you need to know about
Osteoporosis is called the silent epidemic. Learn how to prevent and treat it before the first fracture.
Read article
Fibromyalgia: understanding the pain that doesn't show up in tests
Fibromyalgia is real and affects quality of life. Learn the modern approach to diagnosis.
Read article
The four articles and the categories are the ones that ship with the project (prisma/seed.ts); the filter works as it does on the site.
Autonomy
Writing without asking for help.
The panel exists so a new article doesn't depend on whoever built the site. These are the real app's fields: type in the form and watch the card beside it change along.
Card preview
Sleep and chronic pain: what one has to do with the other
Sleeping badly makes pain worse, and pain ruins sleep. Understand the circle and where to start breaking it.
Read article
- 5Total
- 4Published
- 1Drafts
- 5Categories
The fields, the five categories and the six colours are the panel's (app/admin). The count above adds this one to the project's articles.
The state
All of it up, checked in the code.
A health project deserves honesty in the report too. This is the list checked in the code, without rounding: every part the site delivers, one by one.
- Public sitePresentation, authority, specialties and a call to get in touch.Done
- Article columnA list with a category filter and a page for each article.Done
- Its own panelA summary in numbers, the article list and an editor with preview.Done
- Password doorPassword hashed with bcrypt and a signed badge kept in a cookie.Done
- A real databasePostgreSQL behind Prisma, with articles, admin and settings.Done
- Initial loadFour articles and the admin created by a seed file.Done
Gathered by reading the code (src/app/api and src/lib/auth.ts).
The technologies
What it is made of, piece by piece
A real website, with its own database and admin: the public pages and the panel come from the same Next.js project, the articles live in a PostgreSQL database and the panel's door keeps the password hashed. Pick a piece to see what it does here and which file it is in.
10technologies, in 3 layers
Screen
Server
Door
The screens
The site as it is.
Real screens from the project, in the site's light theme and the slate panel. Hover to lift a plate off the box and click to see it large.
Screens with address, phone, e-mail and social handle were left out; any personal data left over was covered.




Websites and web experiencesGestão de Financiamentos