---
title: "Web Development Projects — Tristan Putra"
description: "Web development and software engineering projects by Tristan Putra — blockchain voting, e-commerce, SaaS landing pages, and company profiles. View all work."
canonical_url: "https://tristanputra.my.id/projects"
meta:
  author: "Tristan Putra"
  "og:description": "Web development and software engineering projects by Tristan Putra — blockchain voting, e-commerce, SaaS landing pages, and company profiles. View all work."
  "og:title": "Web Development Projects — Tristan Putra"
  "twitter:description": "Web development and software engineering projects by Tristan Putra — blockchain voting, e-commerce, SaaS landing pages, and company profiles. View all work."
  "twitter:title": "Web Development Projects — Tristan Putra"
---

§ P-02 — Bill of work, expanded

# **All projects**

A deeper dive into the products and experiences I have built — role, stack, and the thinking behind each one.

<dl>

<dt>Items</dt>
<dd>**07**</dd>

<dt>Span</dt>
<dd>**2023—26**</dd>

<dt>Categories</dt>
<dd>**07**</dd>

</dl>

[![ChainVote](https://tristanputra.my.id/_vercel/image?url=https:%2F%2Frywhcklvyhygprypfnng.supabase.co%2Fstorage%2Fv1%2Fobject%2Fsign%2Fimage%2Fprojects%2F2026-08%2Fd83ed07f-bd44-4df8-9314-0f62d472aad5.png?token=eyJraWQiOiJlNWRiMTljZi0zMzZmLTQyZGItYmQyNS1kYTI3NGUxNDczMTIiLCJhbGciOiJIUzUxMiJ9.eyJ1cmwiOiJpbWFnZS9wcm9qZWN0cy8yMDI2LTA4L2Q4M2VkMDdmLWJkNDQtNGRmOC05MzE0LTBmNjJkNDcyYWFkNS5wbmciLCJzY29wZSI6ImRvd25sb2FkIiwiaWF0IjoxNzkzNzkxODcxLCJleHAiOjE3OTM3OTU0NzF9.NMQyi9QxZxCWKtCB6Bdco8NsXivoWAqh8DDa2qs8BKFGg6xswlIVaYSCyQYhnZgYcNvnKEvKSzh3DjInmtOz4A&w=1280&q=75)](https://website-voting-blockchain.vercel.app/)

*Fig. 01 — ChainVotewebsite-voting-blockchain.vercel.app*

**ITEM 01**Blockchain2026

## **ChainVote**

A decentralized voting application in active development on the Ethereum Sepolia testnet, built with Solidity smart contracts. Votes are recorded immutably on-chain with MetaMask wallet integration and real-time results read directly from blockchain data. IPFS integration for decentralized storage is in progress.

<dl>

<dt>Role</dt>
<dd>**Blockchain Developer**</dd>

<dt>Stack</dt>
<dd>Solidity · Ethereum · MetaMask · Nuxt.js · IPFS</dd></dl>

### Problem

Traditional voting systems rely on a central authority — results can be manipulated and voters have no way to verify their vote was counted.

### Solution

Moved vote storage and tallying into an Ethereum smart contract on Sepolia: every vote is an on-chain transaction, results are computed from blockchain state, and wallets authenticate voters without accounts.

[Go to project](https://website-voting-blockchain.vercel.app/)

[![Recovdot Studio](https://tristanputra.my.id/_vercel/image?url=https:%2F%2Frywhcklvyhygprypfnng.supabase.co%2Fstorage%2Fv1%2Fobject%2Fsign%2Fimage%2Fprojects%2F2026-08%2F591909be-a3a5-47da-8ff7-41af76c59e8b.png?token=eyJraWQiOiJlNWRiMTljZi0zMzZmLTQyZGItYmQyNS1kYTI3NGUxNDczMTIiLCJhbGciOiJIUzUxMiJ9.eyJ1cmwiOiJpbWFnZS9wcm9qZWN0cy8yMDI2LTA4LzU5MTkwOWJlLWEzYTUtNDdkYS04ZmY3LTQxYWY3NmM1OWU4Yi5wbmciLCJzY29wZSI6ImRvd25sb2FkIiwiaWF0IjoxNzkzNzkxODcxLCJleHAiOjE3OTM3OTU0NzF9.QaPYNY3g08hdV-peXAO3e4VxAcjZK3clJMPPsQPK-9T89PbmfAowWEw_Vn7tSTiRqDJUDZffUp_klNhOcbGc-g&w=1280&q=75)](https://recovdot.com/)

*Fig. 02 — Recovdot Studiorecovdot.com*

**ITEM 02**Company Profile2025

## **Recovdot Studio**

Live company profile for Recovdot, a game development studio in Bali. Built with Vue.js on the frontend and an Express backend for the landing page.

<dl>

<dt>Role</dt>
<dd>**Full-stack Developer**</dd>

<dt>Stack</dt>
<dd>Vue.js · Express · Node.js</dd></dl>

### Problem

Recovdot is a newly founded game studio in Bali with zero online presence — potential clients could not find or verify the company.

### Solution

Built the company's first website: services, portfolio, and contact flow, with Vue.js on the frontend and an Express backend serving the landing page.

[Go to project](https://recovdot.com/)

[![Recovdot Web Creator](https://tristanputra.my.id/_vercel/image?url=https:%2F%2Frywhcklvyhygprypfnng.supabase.co%2Fstorage%2Fv1%2Fobject%2Fsign%2Fimage%2Fprojects%2F2026-09%2Fc250bd5c-e47a-4d54-843c-2d4aff26101f.jpg?token=eyJraWQiOiJlNWRiMTljZi0zMzZmLTQyZGItYmQyNS1kYTI3NGUxNDczMTIiLCJhbGciOiJIUzUxMiJ9.eyJ1cmwiOiJpbWFnZS9wcm9qZWN0cy8yMDI2LTA5L2MyNTBiZDVjLWU0N2EtNGQ1NC04NDNjLTJkNGFmZjI2MTAxZi5qcGciLCJzY29wZSI6ImRvd25sb2FkIiwiaWF0IjoxNzkzNzkxODcxLCJleHAiOjE3OTM3OTU0NzF9.liboT0s-1AA3KR_ds-E0LTMGbdS-mDKYT2_DBVBVaX8mf7pRt3_P_3_AIJgP1UCfAcUCsev24S2qwy2tN6TM1Q&w=1280&q=75)](https://webcreator.recovdot.com/)

*Fig. 03 — Recovdot Web Creatorwebcreator.recovdot.com*

**ITEM 03**Landing Page Company2025

## **Recovdot Web Creator**

Landing page for Recovdot's web services arm, focused on selling website creation services to new businesses.

<dl>

<dt>Role</dt>
<dd>**Full-stack Developer**</dd>

<dt>Stack</dt>
<dd>Vue.js · Express · Node.js</dd></dl>

### Problem

Same situation as the studio site — the web services business was just getting started and needed a page to attract its first customers.

### Solution

Built a focused service landing page to generate leads for the new web services business.

[Go to project](https://webcreator.recovdot.com/)

[![Automease](https://tristanputra.my.id/_vercel/image?url=https:%2F%2Frywhcklvyhygprypfnng.supabase.co%2Fstorage%2Fv1%2Fobject%2Fsign%2Fimage%2Fprojects%2F2026-08%2F67b7889d-7a3a-43d1-9edf-121464ef9289.png?token=eyJraWQiOiJlNWRiMTljZi0zMzZmLTQyZGItYmQyNS1kYTI3NGUxNDczMTIiLCJhbGciOiJIUzUxMiJ9.eyJ1cmwiOiJpbWFnZS9wcm9qZWN0cy8yMDI2LTA4LzY3Yjc4ODlkLTdhM2EtNDNkMS05ZWRmLTEyMTQ2NGVmOTI4OS5wbmciLCJzY29wZSI6ImRvd25sb2FkIiwiaWF0IjoxNzkzNzkxODcxLCJleHAiOjE3OTM3OTU0NzF9.03ta38m8QLFM92JHWSy7QOMvat1oau4cCNrESUofFG4SlJttv7DnU_6TYOjG6zY-zR-d07Sxhv5VZDCklhId8Q&w=1280&q=75)](https://automease.vercel.app/)

*Fig. 04 — Automeaseautomease.vercel.app*

**ITEM 04**Frontend Practice2025

## **Automease**

A static frontend project built to practice UI/UX design systems — modern SaaS dashboard UI with automation workflow concepts.

<dl>

<dt>Role</dt>
<dd>**Frontend Developer (Practice Project)**</dd>

<dt>Stack</dt>
<dd>Nuxt.js · TailwindCSS · Vue 3</dd></dl>

### Problem

A personal learning project to understand UI/UX design systems, component architecture, and responsive dashboard patterns.

### Solution

Built a static landing page exploring reusable section architecture, layered storytelling, and responsive layouts that adapt from mobile to desktop.

[Go to project](https://automease.vercel.app/)

[![Devtunes](https://tristanputra.my.id/_vercel/image?url=https:%2F%2Frywhcklvyhygprypfnng.supabase.co%2Fstorage%2Fv1%2Fobject%2Fsign%2Fimage%2Fprojects%2F2026-08%2F0ca8a43f-69f7-4b84-b310-160ab8a5a79b.png?token=eyJraWQiOiJlNWRiMTljZi0zMzZmLTQyZGItYmQyNS1kYTI3NGUxNDczMTIiLCJhbGciOiJIUzUxMiJ9.eyJ1cmwiOiJpbWFnZS9wcm9qZWN0cy8yMDI2LTA4LzBjYThhNDNmLTY5ZjctNGI4NC1iMzEwLTE2MGFiOGE1YTc5Yi5wbmciLCJzY29wZSI6ImRvd25sb2FkIiwiaWF0IjoxNzkzNzkxODcxLCJleHAiOjE3OTM3OTU0NzF9.QP9quwMlg77H4uEy36v5_8BsN50GAjybe4-e8ALh53kjZA9kqWnsUVGDYd2al8iv7oZ-WuQeg7WqB8PCA4o5MA&w=1280&q=75)](https://github.com/Tristanputra2119/Devtunes)

*Fig. 05 — Devtunesgithub.com/Tristanputra2119/Devtunes*

**ITEM 05**Music App2023

## **Devtunes**

A Spotify-inspired music streaming site built with Laravel and MySQL. Supports public playlist browsing and full song playback without requiring user login — making music immediately accessible.

<dl>

<dt>Role</dt>
<dd>**Full-stack Developer**</dd>

<dt>Stack</dt>
<dd>Laravel · MySQL · JavaScript</dd></dl>

### Problem

Most music platforms force account creation before playback, creating friction for casual listeners.

### Solution

Designed a login-free browsing experience with public playlists and instant playback, backed by a Laravel API and MySQL catalog.

[View repository](https://github.com/Tristanputra2119/Devtunes)

[![Primastore](https://tristanputra.my.id/_vercel/image?url=https:%2F%2Frywhcklvyhygprypfnng.supabase.co%2Fstorage%2Fv1%2Fobject%2Fsign%2Fimage%2Fprojects%2F2026-08%2F87042eab-12a0-484e-b2c0-880f580e92a9.jpg?token=eyJraWQiOiJlNWRiMTljZi0zMzZmLTQyZGItYmQyNS1kYTI3NGUxNDczMTIiLCJhbGciOiJIUzUxMiJ9.eyJ1cmwiOiJpbWFnZS9wcm9qZWN0cy8yMDI2LTA4Lzg3MDQyZWFiLTEyYTAtNDg0ZS1iMmMwLTg4MGY1ODBlOTJhOS5qcGciLCJzY29wZSI6ImRvd25sb2FkIiwiaWF0IjoxNzkzNzkxODcxLCJleHAiOjE3OTM3OTU0NzF9.j6Qw7V2DIN2HCal_lI_P05oaf6VnOz0vLHkHEduSSHXd9a_ifoQFyhO4cNjD8-fApGFJ9rUdgT9ww_CyUi7QlQ&w=1280&q=75)](https://homelab.tail806089.ts.net:8443/)

*Fig. 06 — Primastorehomelab.tail806089.ts.net:8443*

**ITEM 06**Campus Marketplace2025

## **Primastore**

An online marketplace for Primakara students — a full-stack e-commerce platform with authentication, product catalog, shopping cart, and checkout built for campus buying and selling.

<dl>

<dt>Role</dt>
<dd>**Full-stack Developer**</dd>

<dt>Stack</dt>
<dd>Laravel · MySQL</dd></dl>

### Problem

Primakara students needed a place to buy and sell items within the campus community — no dedicated marketplace existed.

### Solution

Built a full-stack marketplace covering auth, product catalog, cart, and checkout, modeled around real campus buying and selling workflows.

[Go to project](https://homelab.tail806089.ts.net:8443/)

[![Arsip Madchester](https://tristanputra.my.id/_vercel/image?url=https:%2F%2Frywhcklvyhygprypfnng.supabase.co%2Fstorage%2Fv1%2Fobject%2Fsign%2Fimage%2Fprojects%2F2026-09%2F3378665e-009d-4f7a-8f05-0b88d5546b5a.jpg?token=eyJraWQiOiJlNWRiMTljZi0zMzZmLTQyZGItYmQyNS1kYTI3NGUxNDczMTIiLCJhbGciOiJIUzUxMiJ9.eyJ1cmwiOiJpbWFnZS9wcm9qZWN0cy8yMDI2LTA5LzMzNzg2NjVlLTAwOWQtNGY3YS04ZjA1LTBiODhkNTU0NmI1YS5qcGciLCJzY29wZSI6ImRvd25sb2FkIiwiaWF0IjoxNzkzNzkxODcxLCJleHAiOjE3OTM3OTU0NzF9.MW6DQo9jlnCf_RjNbmb95IuJa6dLPswTceCeo7gYcINoZxqeGuNCzN97HOXuMtvGepMHUC9t4pNo9SFKfHwx3w&w=1280&q=75)](https://arsip-madchester.tristanputra.my.id/)

*Fig. 07 — Arsip Madchesterarsip-madchester.tristanputra.my.id*

**ITEM 07**History2026

## **Arsip Madchester**

Arsip Madchester Sebuah kota kehilangan industrinya.Sebuah kebudayaan menemukan ruangnya.

<dl>

<dt>Role</dt>
<dd>**Developer**</dd>

<dt>Stack</dt>
<dd>Astro.JS · Gsap</dd></dl>

### Problem

Most accounts of Madchester reduce the scene to a playlist or nostalgia, losing the social and economic conditions that shaped it: post-industrial decline, empty spaces, independent labels, clubs, and dance music.

### Solution

Built an Indonesian-language editorial archive that traces ten connected chapters from post-industrial Manchester to the scene’s 1992 collapse. Astro provides a fast, typography-led reading experience, while restrained GSAP motion supports the archival narrative.

[Go to project](https://arsip-madchester.tristanputra.my.id/)

## Sitemap

See the full [sitemap](/sitemap.md) for all pages.
