Don't want to get left behind? Learn to build with A.I. now 🤖
Back to courses

Build a Fullstack Twitter Clone with Rust

In this project-based course you'll use Rust for both the frontend and backend and gain valuable hands-on experience in building a complete full-stack web app.

18 Days

Average time students take to complete this course.

instructor
Taught by: Jayson Lennon
Last updated: April 2024

Overview

With a focus on both frontend and backend implementation using Rust, this project offers a unique chance to explore the full potential of this powerful programming language. You'll acquire valuable hands-on experience in building a complete and functional full-stack web application and wow employers with this stand-out portfolio project!

What you'll learn

  • Build a Twitter clone from scratch using Rust for both frontend and backend
  • Learn various web app capabilities including server software development, URL routing, sessions, hosting static data, API access, and data management using a query builder
  • Create an interactive single-page frontend allowing users to perform actions such as creating posts, uploading images, participating in polls, editing profiles, and bookmarking posts
  • Gain experience in testing the application, modifying the build environment, generating documentation, and diagnosing bugs encountered during development
  • Explore the full potential of Rust programming language in both frontend and backend implementation
  • Acquire hands-on experience in integrating Postgres database through Diesel query builder for compile-time checked data access and IDE auto completion for queries

Why Is This Rust Project Awesome?

This project-based course focuses on building a Twitter clone using Rust for both the frontend and backend, entirely from scratch!

It's the perfect opportunity for you to advance your skills with the Rust programming language and learn about the intricacies of full-stack web development

The project covers various web app capabilities, including server software development with URL routing for public and private endpoints, sessions, hosting static data, API access, and data management using a query builder.

An interactive single page frontend allows users to create posts, upload images, participate in polls, edit and view profiles, and bookmark posts.

Additionally, the project explores testing the application, modifying the build environment for more streamlined development, generating documentation, and diagnosing bugs encountered along the way.

Wait... What's a Project?

One of the most common things we hear from students is: "I want to build more projects!"

We love hearing that, because building projects is really the best way to learn. And unique, challenging projects can really make your portfolio stand out for potential employers.

But also...it just feel so good when you actually build something real!

That's why we've created ZTM Projects. A collection of comprehensive portfolio and practice projects that you can use to advance your knowledge, learn new skills, build your portfolio, and sometimes even just have fun!

What Else Should I Know?

By becoming a ZTM member you'll not only get access to all our courses, bytes, and projects.

But you’ll also get to join our exclusive live online community classroom to learn alongside thousands of students, alumni, mentors, TAs and Instructors.

Most importantly, you'll be learning from an industry professional (Jayson) that has actual real-world experience as a Fullstack Developer using Rust. He teaches you the exact strategies and techniques he uses in his role.

Finally, as with all ZTM courses, this course is a living thing. It will be constantly updated as the landscape changes so you can use it as your go-to resource for building Rust projects now and throughout your career.

Join 1,000s of Zero To Mastery graduates that have gotten hired and are now working at companies like Google, Tesla, Amazon, Apple, IBM, JP Morgan, Facebook, Shopify + other top tech companies.

They come from all different backgrounds, ages, and experiences. Many even started as complete beginners.

So there's no reason it can't be you too.

And you have nothing to lose. Because you can start learning right now and if this course isn't everything you expected, we'll refund you 100% within 30 days. No hassles and no questions asked.

When's the best time to get started? Today!

There's never a bad time to learn in-demand skills. But the sooner, the better. So start building this Rust project today by joining the ZTM Academy. You'll have a clear roadmap to developing the skills to build your own projects, get hired, and advance your career.

Join Zero To Mastery Now

Course curriculum

Here's an overview of what you'll learn in this Rust project.

Orientation

5 lectures

Project Demo3:31

PREVIEW

Project FAQ

PREVIEW

Project Resources

BEGIN

Exercise: Meet Your Classmates and Instructor

BEGIN

Set Your Learning Streak Goal

BEGIN

Introduction

3 lectures

Tool Installation3:27

BEGIN

Design Documentation6:38

BEGIN

Viewing Code Changes1:30

BEGIN

User Registration

13 lectures

Registration Page5:50

BEGIN

Adding a Route4:12

BEGIN

Creating the Registration Form4:20

BEGIN

Managing State with Hooks4:56

BEGIN

Username Input Field5:54

BEGIN

Username Handler6:04

BEGIN

Password Input1:47

BEGIN

Domain Types7:00

BEGIN

Username and Password Types5:48

BEGIN

Keyed Notifications6:55

BEGIN

Keyed Notifications Template5:43

BEGIN

Displaying Registration Errors4:10

BEGIN

Disabling Form Submission6:39

BEGIN

Application Architecture

14 lectures

API Server State7:30

BEGIN

API Server CLI5:40

BEGIN

API Server Main Function - Part 15:23

BEGIN

API Server Main Function - Part 24:43

BEGIN

Creating a Router5:12

BEGIN

Configure Environment6:08

BEGIN

Database User ID6:58

BEGIN

Database Overview2:56

BEGIN

Create New User8:01

BEGIN

Routing Layers6:41

BEGIN

Endpoint Crate7:08

BEGIN

API Error Handling8:56

BEGIN

Database Connection Extractor6:27

BEGIN

Handling Public API Requests6:59

BEGIN

Finishing User Registration

4 lectures

New User Handler5:32

BEGIN

Making an API Request9:25

BEGIN

Confirming the API Request1:41

BEGIN

User-facing Error Messages5:42

BEGIN

User Login

10 lectures

Login Page6:36

BEGIN

Database IDs3:03

BEGIN

Making New Sessions9:54

BEGIN

Querying Sessions3:07

BEGIN

Performing User Login8:15

BEGIN

Creating a Session5:40

BEGIN

Frontend User Login6:17

BEGIN

Checking User Login2:52

BEGIN

Routing to the Home Page4:05

BEGIN

Autologin After Registration6:49

BEGIN

Navigation Bar

3 lectures

Creating a Navigation Bar5:52

BEGIN

Adding Navbar Buttons6:06

BEGIN

New Post Popup7:55

BEGIN

Making a New Post

7 lectures

Defining Chat Data Types4:35

BEGIN

Defining Post Data Types5:11

BEGIN

Authorized Requests8:57

BEGIN

Generic Authorized Handler1:53

BEGIN

Database Types7:04

BEGIN

Create a New Handler5:25

BEGIN

Endpoint URL Macro3:42

BEGIN

New Chat Page

5 lectures

UI Overview6:18

BEGIN

Chat Message9:07

BEGIN

Chat Headline2:13

BEGIN

Validating the Chat7:39

BEGIN

Posting a Chat4:27

BEGIN

Toast Messages

4 lectures

Setting Up Toast Messages8:22

BEGIN

Toast Message Templates8:37

BEGIN

Removing Old Toasts5:49

BEGIN

Adding Toasts to New Chat2:50

BEGIN

Displaying Posts

9 lectures

Public Post Data Type6:53

BEGIN

Trending Endpoint7:11

BEGIN

Public Post Data6:37

BEGIN

Post Query4:44

BEGIN

Trending Page5:15

BEGIN

Post Manager6:20

BEGIN

Populating the Post Manager5:01

BEGIN

Content Template8:07

BEGIN

Header Template3:30

BEGIN

Post Action Bar

17 lectures

Action Bar Template3:12

BEGIN

Bookmarking a Post5:21

BEGIN

Bookmark Queries9:00

BEGIN

Bookmark Status5:20

BEGIN

Reaction Query6:18

BEGIN

Reaction Endpoint4:28

BEGIN

Reaction Button Logic5:06

BEGIN

Reaction Button Template3:57

BEGIN

Aggregate Reaction Query6:29

BEGIN

Current Like Status2:06

BEGIN

Boost Queries2:35

BEGIN

Boost Endpoint2:35

BEGIN

Boost Button Logic5:03

BEGIN

Autoreloading the Backend3:22

BEGIN

Quick Response Template6:46

BEGIN

Quick Response Input Box7:14

BEGIN

Checking the Quick Respond Box2:59

BEGIN

Posting Images

9 lectures

Saving & Loading Images10:39

BEGIN

Generating Image URLs7:09

BEGIN

Updating the Content Endpoint5:11

BEGIN

Updating the New Post Handler6:29

BEGIN

Post Image Template6:35

BEGIN

Uploading an Image5:37

BEGIN

Previewing Uploaded Images7:25

BEGIN

Allowing Large Image Uploads2:34

BEGIN

Showing Image Posts5:28

BEGIN

Making Polls

12 lectures

Poll Query5:02

BEGIN

Poll Endpoint4:15

BEGIN

Aggregate Queries5:20

BEGIN

Updating The to_public Function3:09

BEGIN

New Poll Page6:13

BEGIN

Submitting a Poll4:26

BEGIN

Adding Choices to a Poll6:46

BEGIN

Routing3:49

BEGIN

Showing Poll Results - Part 16:49

BEGIN

Showing Poll Results - Part 24:06

BEGIN

Vote Endpoint3:03

BEGIN

Vote Handler4:18

BEGIN

Application Bar

4 lectures

App Bar Layout6:48

BEGIN

App Bar Buttons5:45

BEGIN

Add App Bar to New Chat Page7:45

BEGIN

Add App Bar to New Image & New Poll Pages3:58

BEGIN

Home Page

5 lectures

Home Page Query7:41

BEGIN

Like & Bookmark Queries4:11

BEGIN

Endpoints4:18

BEGIN

Home Page7:02

BEGIN

Like & Bookmark Pages5:17

BEGIN

Editing Profiles

14 lectures

Profile Endpoint7:13

BEGIN

Profile Update Query3:29

BEGIN

View My Profile Handler6:14

BEGIN

Update My Profile Handler5:29

BEGIN

Update Profile Page4:16

BEGIN

Image Upload5:52

BEGIN

Email Domain Type5:57

BEGIN

Email Field4:59

BEGIN

Display Name Field2:43

BEGIN

Password & Confirmation Fields10:41

BEGIN

Disable Submit Button3:46

BEGIN

Submitting Profile Info5:59

BEGIN

Checking Profile Submission6:10

BEGIN

Add App Bar1:10

BEGIN

Viewing Profiles

11 lectures

Endpoint5:31

BEGIN

View Profile Page & Routing5:18

BEGIN

Fetching a User Profile3:39

BEGIN

View Profile Template5:56

BEGIN

Post View Profile Click Handler4:17

BEGIN

Checking the View Profile Page2:29

BEGIN

Displaying the Profile Image1:42

BEGIN

Follow/Unfollow Endpoint + Backend5:31

BEGIN

Follow/Unfollow Fetch5:21

BEGIN

Local Profile7:47

BEGIN

Populating the Local Profile4:32

BEGIN

Finishing Touches and Bugfixes

14 lectures

Sidebar Setup4:13

BEGIN

Sidebar Template6:04

BEGIN

Sidebar Buttons5:30

BEGIN

Sidebar Profile Image4:40

BEGIN

Home Page Help Message4:51

BEGIN

Fixing Up the Trending Posts Page4:29

BEGIN

Return Absolute URLs4:47

BEGIN

No Self-Follow & Sync Follow Status9:31

BEGIN

Login & Registration Page Links3:08

BEGIN

Hide Navigation Bar3:16

BEGIN

Show Profile Image at Login2:27

BEGIN

Show Messages on Liked & Bookmarked Pages4:09

BEGIN

Show Login Errors3:04

BEGIN

Better Server Error Messages6:16

BEGIN

Testing

7 lectures

Database Testing8:09

BEGIN

Running Tests3:47

BEGIN

API Testing Utility Functions6:41

BEGIN

Writing an API Test9:19

BEGIN

Using a Different Test Runner1:44

BEGIN

Deployment2:08

BEGIN

Fixing Warnings6:45

BEGIN

Where To Go From Here?

2 lectures

Thank You!0:26

BEGIN

Review This Project

BEGIN

Meet your instructor

Your instructor (Jayson) isn't just an expert with years of real-world professional experience. He has been in your shoes. He makes learning fun. He makes complex topics feel simple. He will motivate you. He will push you. And he will go above and beyond to help you succeed.

Jayson Lennon

Hi, I'm Jayson Lennon!

Jayson is a self-taught developer with numerous industry certifications. He has a unique ability to help students learn in the most effective way possible and provide lessons that are clear, detailed and easy to follow along.

SEE MY BIO & COURSES

Jayson Lennon

Software Engineer

Frequently asked questions

Are there any prerequisites for this course?

Required:

  • Intermediate knowledge of programming in Rust. Don't have that yet? Take our Rust Bootcamp course now!
  • Familiarity with installing development tools or databases onto your system.

Recommended:

  • Basic terminal or command-line knowledge.
  • Basic knowledge of web development, including HTTP request-response lifecycle, cookies, DOM, and CSS.

Do you provide a certificate of completion?

We definitely do and they are quite nice. You will also be able to add Zero To Mastery Academy to the education section of your LinkedIn profile as well.

Are there subtitles?

Yes! We have high quality subtitles in 11 different languages: English, Spanish, French, German, Dutch, Romanian, Arabic, Hindi, Portuguese, Indonesian, and Japanese.

You can even adjust the text size, color, background and more so that the subtitles are perfect just for you!

Still have more questions about the Academy?

Still have more questions specific to the Academy membership? No problem, we answer some more here.

Invest in a better you. For less than a coffee a day.

Choose your currency:
$ USD US Dollar
Lifetime
100% OFF$999
$999
Only pay once, ever
You're serious about advancing your career and never getting left behind
Start Learning Now

MOST POPULAR

Save 40% vs. monthly (that's $189 a year)
Annual
100% OFF$279 / year
$23 / month
$279 / year
You're committed to getting hired and starting a career in tech
Start Learning Now
Monthly
100% OFF$39 / month
$39 / month
You're ready to upskill and advance your career
Start Learning Now

Every ZTM membership includes:

Unlimited access to all courses, projects + workshops, and career paths
Access to our private Discord with 400,000+ members
Access to our private LinkedIn networking group
Custom ZTM course completion certificates
Live career advice sessions with mentors, every month
Full access to all future courses, content, and features
100% RISK FREE

We know you'll love ZTM. That's why we provide a no hassle, 30-day money back guarantee.