- TypeScript
- React
- Tailwind CSS
- No other UI libraries are used
textarea
expanding as the content grows (NewPostInput.tsx)- Character counter implementation (CharacterCounter.tsx, CircularProgress.tsx)
- Time display format (utils.ts >
getTimeDifference()
) - Tag functionality (
#aaa
and#bbb
are only considered as tags in#aaa #bbb c#cc # ddd eee#
) - Color Theme switching (useColorThemeContext.tsx)
- Popover functionality (ColorThemeToggler.tsx, useOutsideClick.tsx)
- Rename functionality
- Mobile-only design
- Server-side code is a demo implementation
- How to organize the code for Context APIs
- How to implement color theme switching functionality
- How to create UI parts without using UI libraries
- Character counter
- Popover
charactor-counter-and-expanding-textare.mov
color-theme-switching.mov
This project is a monorepo, so you need to install the dependencies for both the frontend and backend. Run the following commands in the root directory.
npm ci
npm run dev
npm run frontend
npm run server