[{"type_of":"article","id":2210527,"title":"Easily Sync Your Subtitles with React, RHF and shadcn/ui","description":"Introduction   As a big fan of movies and TV shows, I often run into subtitle syncing issues...","readable_publish_date":"Jan 22 '25","slug":"easily-sync-your-subtitles-with-react-rhf-and-shadcnui-3gfe","path":"/joanroucoux/easily-sync-your-subtitles-with-react-rhf-and-shadcnui-3gfe","url":"https://dev.to/joanroucoux/easily-sync-your-subtitles-with-react-rhf-and-shadcnui-3gfe","comments_count":0,"public_reactions_count":8,"collection_id":null,"published_timestamp":"2025-01-22T22:51:42Z","language":"en","subforem_id":1,"positive_reactions_count":8,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7s2dh8fycb8laxjj7o0f.png","canonical_url":"https://dev.to/joanroucoux/easily-sync-your-subtitles-with-react-rhf-and-shadcnui-3gfe","created_at":"2025-01-15T10:07:29Z","edited_at":"2025-01-23T22:27:46Z","crossposted_at":null,"published_at":"2025-01-22T22:51:42Z","last_comment_at":"2025-01-22T22:51:42Z","reading_time_minutes":9,"tag_list":["react","reacthookform","zod","shadcnui"],"tags":"react, reacthookform, zod, shadcnui","user":{"name":"Joan Roucoux","username":"joanroucoux","twitter_username":null,"github_username":"JoanRoucoux","user_id":970952,"website_url":"https://github.com/JoanRoucoux/","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F970952%2Fcb1809ea-8b65-4b1e-8bcf-4c66c9f448ef.jpg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F970952%2Fcb1809ea-8b65-4b1e-8bcf-4c66c9f448ef.jpg"}},{"type_of":"article","id":2012593,"title":"Building a Scalable URL Shortener with Node.js (Part 2/2)","description":"Introduction   In the first part of this tutorial, we built the backend services for our URL...","readable_publish_date":"Nov 8 '24","slug":"building-a-scalable-url-shortener-with-nodejs-part-22-77k","path":"/joanroucoux/building-a-scalable-url-shortener-with-nodejs-part-22-77k","url":"https://dev.to/joanroucoux/building-a-scalable-url-shortener-with-nodejs-part-22-77k","comments_count":0,"public_reactions_count":3,"collection_id":null,"published_timestamp":"2024-11-08T17:05:08Z","language":"en","subforem_id":null,"positive_reactions_count":3,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhac689gjg2h8nlrjsahq.png","canonical_url":"https://dev.to/joanroucoux/building-a-scalable-url-shortener-with-nodejs-part-22-77k","created_at":"2024-09-24T10:58:12Z","edited_at":"2024-11-08T17:05:52Z","crossposted_at":null,"published_at":"2024-11-08T17:05:08Z","last_comment_at":"2024-11-08T17:05:08Z","reading_time_minutes":9,"tag_list":["react","rtkquery","materialui"],"tags":"react, rtkquery, materialui","user":{"name":"Joan Roucoux","username":"joanroucoux","twitter_username":null,"github_username":"JoanRoucoux","user_id":970952,"website_url":"https://github.com/JoanRoucoux/","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F970952%2Fcb1809ea-8b65-4b1e-8bcf-4c66c9f448ef.jpg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F970952%2Fcb1809ea-8b65-4b1e-8bcf-4c66c9f448ef.jpg"}},{"type_of":"article","id":2012589,"title":"Building a Scalable URL Shortener with Node.js (Part 1/2)","description":"Introduction   I'm sure you're familiar with URL shortener tools like TinyURL and Bitly, as...","readable_publish_date":"Nov 8 '24","slug":"building-a-scalable-url-shortener-with-nodejs-part-12-232i","path":"/joanroucoux/building-a-scalable-url-shortener-with-nodejs-part-12-232i","url":"https://dev.to/joanroucoux/building-a-scalable-url-shortener-with-nodejs-part-12-232i","comments_count":0,"public_reactions_count":7,"collection_id":null,"published_timestamp":"2024-11-08T17:05:03Z","language":"en","subforem_id":null,"positive_reactions_count":7,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnpgi9lgmilyc4xmb3ysh.png","canonical_url":"https://dev.to/joanroucoux/building-a-scalable-url-shortener-with-nodejs-part-12-232i","created_at":"2024-09-24T10:56:40Z","edited_at":"2024-11-08T17:05:30Z","crossposted_at":null,"published_at":"2024-11-08T17:05:03Z","last_comment_at":"2024-11-08T17:05:03Z","reading_time_minutes":15,"tag_list":["node","redis","mongodb","zookeeper"],"tags":"node, redis, mongodb, zookeeper","user":{"name":"Joan Roucoux","username":"joanroucoux","twitter_username":null,"github_username":"JoanRoucoux","user_id":970952,"website_url":"https://github.com/JoanRoucoux/","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F970952%2Fcb1809ea-8b65-4b1e-8bcf-4c66c9f448ef.jpg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F970952%2Fcb1809ea-8b65-4b1e-8bcf-4c66c9f448ef.jpg"}},{"type_of":"article","id":2000624,"title":"Update README with Latest Articles Using GitHub Actions and Deno 2","description":"Introduction   I wanted to give my GitHub profile a fresh new look, and since I’ve started...","readable_publish_date":"Sep 15 '24","slug":"update-readme-with-latest-articles-using-github-actions-41m3","path":"/joanroucoux/update-readme-with-latest-articles-using-github-actions-41m3","url":"https://dev.to/joanroucoux/update-readme-with-latest-articles-using-github-actions-41m3","comments_count":1,"public_reactions_count":8,"collection_id":null,"published_timestamp":"2024-09-15T19:47:18Z","language":"en","subforem_id":null,"positive_reactions_count":8,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa2384pemacsfuworq451.png","canonical_url":"https://dev.to/joanroucoux/update-readme-with-latest-articles-using-github-actions-41m3","created_at":"2024-09-14T14:29:46Z","edited_at":"2024-10-20T12:51:08Z","crossposted_at":null,"published_at":"2024-09-15T19:47:18Z","last_comment_at":"2024-09-16T10:09:10Z","reading_time_minutes":5,"tag_list":["github","githubactions","deno","tutorial"],"tags":"github, githubactions, deno, tutorial","user":{"name":"Joan Roucoux","username":"joanroucoux","twitter_username":null,"github_username":"JoanRoucoux","user_id":970952,"website_url":"https://github.com/JoanRoucoux/","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F970952%2Fcb1809ea-8b65-4b1e-8bcf-4c66c9f448ef.jpg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F970952%2Fcb1809ea-8b65-4b1e-8bcf-4c66c9f448ef.jpg"}},{"type_of":"article","id":1929958,"title":"Building a Marvel Search Application with Qwik","description":"Introduction   In this tutorial, we will see how to create an application that lets users...","readable_publish_date":"Jul 22 '24","slug":"building-a-marvel-search-application-with-qwik-ll7","path":"/joanroucoux/building-a-marvel-search-application-with-qwik-ll7","url":"https://dev.to/joanroucoux/building-a-marvel-search-application-with-qwik-ll7","comments_count":0,"public_reactions_count":4,"collection_id":null,"published_timestamp":"2024-07-22T11:18:12Z","language":"en","subforem_id":null,"positive_reactions_count":4,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1000,height=500,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhs57l98dwilrgtuoecrx.png","canonical_url":"https://dev.to/joanroucoux/building-a-marvel-search-application-with-qwik-ll7","created_at":"2024-07-20T12:16:44Z","edited_at":"2024-09-24T11:06:58Z","crossposted_at":null,"published_at":"2024-07-22T11:18:12Z","last_comment_at":"2024-07-22T11:18:12Z","reading_time_minutes":11,"tag_list":["qwik","marvel","tailwindcss","tutorial"],"tags":"qwik, marvel, tailwindcss, tutorial","user":{"name":"Joan Roucoux","username":"joanroucoux","twitter_username":null,"github_username":"JoanRoucoux","user_id":970952,"website_url":"https://github.com/JoanRoucoux/","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F970952%2Fcb1809ea-8b65-4b1e-8bcf-4c66c9f448ef.jpg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F970952%2Fcb1809ea-8b65-4b1e-8bcf-4c66c9f448ef.jpg"}}]