Access denied

Continue learning with a premium membership

Get access

Already a member? Sign in and enjoy

All episodes (68)

01. Introduction and demo

6m 22s

02. Setting up Laravel

3m 19s

03. Setting up Vue and Tailwind

7m 55s

04. Scaffolding and navigation

7m 51s

05. Navigation component

2m 15s

06. Setting up Sanctum

8m 9s

07. Logging in

20m 23s

08. Updating the nav bar

2m 3s

09. Logging out

4m 38s

10. Actually building the login page

8m 39s

11. User's files endpoint

8m 4s

12. Getting a list of user's files

12m 14s

13. Installing FilePond

6m 2s

14. Setting up an S3 bucket

5m 26s

15. Creating a signed upload request

8m 40s

16. Hooking up FilePond to signed uploads

12m 34s

17. Cancelling uploads

3m 14s

18. Clearing out finished uploads

1m 52s

19. Create a file record after upload

8m 28s

20. Updating Vuex state with new uploads

2m 55s

21. Deleting files

9m 7s

22. Removing from S3 on deletion

2m 50s

23. Setting up Cashier

6m 15s

24. Creating plans and a default free plan

9m 49s

25. Switching to a UserResource

6m 18s

26. Storage usage component

10m 53s

27. Formatting usages

5m 14s

28. Incrementing usage when uploading

1m 47s

29. Decrementing usage when deleting

2m 27s

30. Custom usage validation rule

4m 13s

31. Handling upload validation

6m 26s

32. Switching to use a FormRequest

1m 31s

33. Client environment variables

2m 55s

34. Listing plans

11m 59s

35. Setting up the checkout and getting a card token

14m 52s

36. Creating a subscription

6m 39s

37. Refreshing user data

2m 38s

38. Toggling the navigation upgrade link

2m 40s

39. Showing the user’s current subscription

7m 3s

40. Listing plans to swap to

4m 34s

41. Selecting a plan

3m 51s

42. Filtering available plans to swap to

12m 14s

43. Swapping a plan

3m 49s

44. Downgrading to a free plan

2m 4s

45. Checking if user can swap

3m 30s

46. Creating a submit button component

13m 23s

47. Subscription endpoint validation

4m 25s

48. Setting up file sharing

5m 24s

49. Creating a sharable link

8m 11s

50. Authorizing sharable link creation

2m 5s

51. Generating a sharable link in the client

2m 27s

52. Automatically copying a sharable link to the clipboard

4m 4s

53. Creating the download page

4m 12s

54. Requesting the file to download

7m 42s

55. Hooking up the client

4m 10s

56. Clicking to download the file

1m 17s

57. Creating a snackbar

8m 52s

58. Applying the snackbar to various actions

3m 47s

59. Hide swap plan from account area

1m 12s

60. Login form validation

3m 43s

61. Fixing middleware for sharable links

1m 3s

62. API middleware

2m 48s

63. Creating an account

4m 21s

64. Hooking up account creation on the client

6m 33s

65. Optional password confirmation

2m 26s

66. Fixing unique email address validation

1m 28s

67. Middleware pipelines

17m 44s

68. Handling webhooks

9m 36s
Build a File Sharing SaaS App

59. Hide swap plan from account area

Download full source code

Let’s build a file sharing SaaS app with Laravel and Vue! Featuring direct, signed uploads to S3 with FilePond, secure sharing, tiered pricing plans, usage statistics and more.