Introducing DEVBlogs - Linode + DEV Hackathon
Tags: linodehackathon
Published: 2023-02-18 04:25:10

## 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**
![homepage-screenshot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/keu910lcf4ffhc3062fr.jpeg)
**Page to Write an Article**
![post-create-page-screenshot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ik3yrh5mj6q6vbvn3lxx.jpeg)

**User Profile**

![user-profile-page-screenshot](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kh7vm8h9srzomgtk3ku7.jpeg)

### 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](https://github.com/ankitdevelops/devblogs)

### 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](https://www.linode.com/docs/products/compute/compute-instances/guides/set-up-and-secure/) 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.