# Make your own Dev.to CMS livestream - Part 1

Original: https://swyx.io/writing/dev-to-cms-stream-1
Published: 2020-03-27

> Livecoding my own Dev.to CMS with Next.js + Preact + TypeScript + Tailwind UI

As someone who uses [Dev.to as a headless CMS](https://www.swyx.io/writing/devto-cms/), I feel a lot of personal pain points with the very simple default editor we get in Dev.to. I figured I would try a personal project with all new tech that I know some things about but haven't built anything serious with:

- Preact
- Next.js
- TailwindCSS

And done in TypeScript because that's how I roll.

Source: https://github.com/sw-yx/dev-to-cms
Demo: https://dev-to-cms.now.sh

[Here is my first livestream of that!](https://www.youtube.com/watch?v=dR2xZbViyks&feature=youtu.be) Had a slow start but got a lot done in 90 minutes.

Dev.To embed:

{% youtube dR2xZbViyks %}


## Catch up on the Dev.to CMS LiveStream!

- [Day 1 - Setup Next.js and Tailwind UI, list posts through API routes](https://dev.to/swyx/make-your-own-dev-to-cms-livestream-part-1-2ad1) - 90 mins
- [Day 2 - setting up a Markdown Editor with Next.js, Tailwind UI, Highlight.js, React Hook Form, and React Query](https://dev.to/swyx/make-your-own-dev-to-cms-livestream-part-2-6mf) - 3 hours
- Quick Fix - [How To Add Monaco Editor to a Next.js app](https://dev.to/swyx/how-to-add-monaco-editor-to-a-next-js-app-ha3) - 18 mins
- [Day 3 - Refactoring to Edit Existing Posts](https://dev.to/swyx/make-your-own-dev-to-cms-livestream-part-3-c65) - 3 hours
- [Day 4 - Polish Day! Implementing Notifications, Markdown preview, and programmatic Redirects, and Using Web Components in Next.js](https://dev.to/swyx/make-your-own-dev-to-cms-livestream-part-4-6em) - 3 hours
- [Instant GraphQL with OneGraph - Screenshares in Public with Sean Grove](https://dev.to/swyx/instant-graphql-with-onegraph-4hi8) - refactoring handrolled Dev.to API access with OneGraph and GraphQL
- [How and Why to Un-Reset Tailwind's CSS Reset](https://dev.to/swyx/how-and-why-to-un-reset-tailwind-s-css-reset-46c5)
