- TypeScript
- React
- Tailwind CSS
- No other UI libraries are used
textareaexpanding as the content grows (NewPostInput.tsx)- Character counter implementation (CharacterCounter.tsx, CircularProgress.tsx)
- Time display format (utils.ts >
getTimeDifference()) - Tag functionality (
#aaaand#bbbare 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 cinpm run devnpm run frontendnpm run server