What I built
I built a clone of dev.to that incorporates the majority of its features. The site I built functions similarly to dev.to, allowing users to create profiles, publish articles, interact with other users through comments and reactions.
Category Submission:
Wacky Wildcard
App Link
https://django-devblogs.vercel.app/
Screenshots
Homepage
Page to Write an Article
User Profile
Description
This is a dev.to clone, that incorporates the majority of its features. The site I built functions similarly to dev.to, allowing users to create profiles, publish articles, interact with other users through comments and reactions and many more. The Backend is built with Django and DjangoRestFrameword and for the frontend I have used ReactJs.
Link to Source Code
Source Code:- Github
Permissive License
GPL-3.0 license
Background
Recently, I learned DjangoRestFramework and ReactJs, and I wanted to explore both technologies and come up with ideas for a new project. Ultimately, I decided to create a dev.to clone, as it would allow me to apply my newly acquired knowledge in a practical way while also replicating the functionality of a popular platform for software developers.
How I built it
I used Django and DjangoRestFramework to build the API, and Deployed it on Linode Server, Thanks to $100 credit. I learned how to setup a Linux server this article was very helpful. I am using Apache + mod_wsgi
for my application, so I also learned how to configure Apache, I also learned how to setup custom domain name for my server and many more. I also; learned how to use lets necrypt
and certbot
for ssl certification and how it can be auto generated after 90 days.
Some of the Challenges I faced
- I am very new to reactjs, so managing context was very challenging to me, there are still some components in the project where context is not managed properly.
- The deployment of the backend API proved to be the second most challenging aspect of the project, but the Linode documentation and YouTube Vides helped me alot.
- One of the other challenges I encountered during the project was configuring Apache and mod_wsgi. For example, when I deployed the project, I faced an issue where users were unable to authenticate with their token. It took me several hours of troubleshooting to resolve the issue.
Additional Resources/Info
Tech Stack
- Django
- DjangoRestFramework
- ReactJs
- Linode(for backend Deployment)
- Vercel(for frontend Deployment)
Conclusion
In conclusion, the development of a dev.to clone has been a rewarding and challenging project that has allowed me to showcase my skills as a developer. Through this project, I have gained valuable experience and knowledge that I can apply to future endeavors, and I look forward to continuing to innovate and explore new possibilities in the field of software development.
Top comments (1)
I appreciated how detailed and comprehensive the instructions are, from setting up the database to implementing the authentication system. I also found it helpful that you included some best practices for performance and security.