Cogito
Hey there! I've always used Markdown for my personal notes, and I thought why not use Markdown for everything? I wanted a simple way to write my CV, papers, notes, slides, and posters all in one place. So I built this site as a home for all of that. Hope you find it useful too!
Why didn’t I use other tools? Mostly because they didn't really support Slides and Posters the way I wanted. I also needed to write a resume for a job.
If you want to follow new updates, you can subscribe through the RSS feed.
What is Cogito?
- CV/resume page: the content lives in
_cv/cv.yaml. You can move it from something closer to a resume to something closer to a full CV by choosing how much detail you want to show. - News: the content is in
_pages/news.md. The/newspage is generated from that file too. - Papers: this is the home for papers. Each paper lives in a Markdown file with frontmatter, like
_papers/2025-10-21-bayes.md, and the related assets go in_papers/_assets/2025-10-21-bayes. - Blog posts: same as papers.
- Slides: also similar to papers and posts. For example,
_slides/2025-11-21-test-time-scaling-under-budget.md. This part is built on top of Reveal.js. - Posters: this is for conference posters. For example,
_posters/2026-04-6-bayes-eval.yaml. Posters have three levels of detail: conference content, more details for extra information, and Show me the Code! for the code and data.
How it is built
The site is built from plain source files and a small static-site pipeline. Everything stays in the repository, pages are generated ahead of time, and the final output is just regular static HTML, CSS, and JavaScript.
- Markdown for pages, posts, papers, and slides, and YAML for CV data and poster metadata.
- TypeScript and Node.js for the generator and build scripts.
- Unified, Remark, and Rehype for parsing and rendering content.
- KaTeX for math.
- rehype-citation for citations and bibliography-aware rendering.
- rehype-pretty-code for syntax highlighting.
- Tailwind CSS for styling.
- Reveal.js for slide decks.
- Sharp for image optimization.
- VectorQR for QR code generation.
- docfind for client-side search.
- giscus for comments.
How to use it
The easiest way to start is with the new command:
make newIt asks whether you want a post, paper, slide deck, or poster, then creates the right file, asset folder, and references.bib for you. New drafts are hidden by default with visibility: false and comments: false, so you can work on them without publishing them right away.
If you have the package linked or installed, you can use the same flow with:
cogito newCredits
- Khan Academy's KaTeX is fantastic for math rendering.
- Dynamic CV/resume idea inspired by Lea Verou.
- Thanks to Hakim El Hattab and contributors for Reveal.js.
- A big thanks to the Qwen team. I used Qwen models while developing this project.
Performance
The Lighthouse scores: