Learn Indonesian with ReadIndo!

Search for a command to run...

Candy Tsai Great App Idea! All the best for the hackathon!
Candy Tsai, I don't know the language but can say, it is an awesome app idea. Great work
Hi Tapas Adhikary, happy that you liked the idea! Maybe you would pick up the language someday, we never know how life happens :) I didn't imagine I would learn Indonesian before last year.
Thank Code Igniter! There's still much to be done :)
Omg this is just beautiful! I need to brush up on my Indo so this is definitely helpful! What an amazing project, Candy! Absolutely wonderful!
Hebat banget ๐๐
P.S. What API you used for language translation? Is it Google Translate?
Thanks for the kind words Victoria Lo! Terima Kasih ๐
I'm using the Microsoft Translator Text API from Rapid API. Just updated the README in the GitHub repo so that it specifies that!
Looking back, this might be a dumb question, but thatโs what blog notes are for ๐คฃ tl;dr &: Used as an operator to get the address of a variable * in Type: Used to define the type as a pointer (e.g., *int) * in Expression: Used as an operator to d...

What is a Lightning Talk? Stealing this from Wikipedia: Lightning talks are designed to be short presentations between five and ten minutes long, but are usually capped at five minutes. Lightning talks usually accept sign-ups after the conference h...

Lately, I've been setting up my new Mac and thought that it would be a good chance to log down what I needed to install for future reference. This post will be updated from time to time as I install back all the apps that I use daily. Must-to-have ap...

Here comes Piglet!

Hello Hashnoders! After having so much fun building MoodPraiser for the #harperdbhackathon, and here I am again for the #auth0hackathon!
Big thanks to Hashnode for hosting these events and this time 'round I even persuaded friends to join in the fun. ๐ Hopefully we'll get to see their articles soon!
ReadIndo is a tool to help you learn Indonesian through reading text and videos of your choice!
Fill in the gaps for Indonesian learners by bringing our own content to the table.
I started to learn Indonesian in 2020 because I wanted to chat with Jade Suntoro ๅฎ็็พ in Indonesian. Compared to the popular languages, such as English, German, Japanese, etc., there are comparably fewer resources to learn Indonesian.
Why not build a tool that benefits all Indonesian learners? So here we are!
Paste free text to get started:

Or paste a YouTube URL:

Don't know what to read about? ReadIndo got you covered with 5 daily articles!

From articles:

From videos:


Anki is a program that makes remembering things easy! Best of all, it's free and has been one of the best solutions for studying vocabulary with spaced repetition.
Just go ahead and click on "Import File", select the CSV and follow the screenshot below and you're good to go!



Auth0 has the best documents when it comes to integration! I was using Next.js and it directly leads you to their quickstart guide. All you need to do is follow the steps and within 5 minutes, you're all set up. Auth0 provides everything you need and the developer experience was super smooth.
React.memo to the rescueOne of the main features of ReadIndo is interactive transcripts when watching videos. How do we know which line to highlight? The case here was that the code checks the video duration every 200ms and checks for the correct line to display. The UI had a small lag so I decided to tick the "Highlight updates when components render." box in React Developer Tools and was amazed at what I saw.

The whole transcript is re-rendering every 200ms! Even when the same line was highlighted, the component kept re-rendering!

So here I encountered the perfect case where React.memo could make all the difference.
export default React.memo(
// One line of transcript
TranscriptElement,
(prevProps, nextProps) => prevProps.isPlaying === nextProps.isPlaying
);
If the current line is playing in the video, then isPlaying will be true. Pretty straightforward and obvious. ๐คฃ
So we only need to re-render when isPlaying changes, and voila, instant improvement as we can see below.

Maintaining high standards of code quality has always been hard in hackathons due to the time limit. I kept it minimal by choosing the right languages and tools.
TypeScript definitely has been the game-changer:
Vercel has been the gatekeeper as it will actually run the lint command during the build and make sure everything passes before deploying. So if the build fails, then no new deploys. Therefore, we definitely have to get it fixed in order to ship a new version.
If you're interested in learning Indonesian, then yes!
The short answer is no.
A case that might be possible is I'm using it to learn other languages but don't worry, all of the code is open-sourced, and feel free to go ahead and extend the project to your needs!
The only thing we currently save is your word list. Passwords go through Google if you choose Google login and Auth0 if you register an account with them. ReadIndo doesn't store any user data.
Feel free to ask about anything in the comments below!
ReadIndo is an open-source project and licensed under the terms of the MIT license. You're more than welcome to contribute ideas, report issues or send in pull requests.
Feel free to take it to the next level if needed! Extend ReadIndo to other languages you're learning by forking the project and share with me all the cool things you've added!
If you read this far, you must have some interest to learn Indonesian, right? ๐ฅบ
Let's learn a language other than JavaScript or Python today at ReadIndo!
Leave your thoughts or feedback about the project and don't forget to check out all the other amazing projects for the #auth0hackathon! You'll be amazed at what the Hashnode community can build in a month.
That's it for now and I'll see you in another Hashnode blog post. Thanks for reading and supporting me through my blogging journey!