Background image

Projects

Picuss - photo gallery

Picuss - photo gallery

I got bored of not being able to find and sort images the way I wanted, that’s how Picuss was born. Picuss let’s you sort images by adding different tags to them.

Additional features that makes Picuss special are AI object recognition, fast and memory efficient, client-side image compression, image encryption, and it is made to be self hosted.

Putty to OpenSSH converter

Putty to OpenSSH converter

PuTTY to OpenSSH Converter

A web application that converts PuTTY Private Key (PPK) files to OpenSSH format (PEM) without requiring local installation of PuTTY tools.

Why I Made This

As someone who exclusively uses OpenSSH keys, I found it annoying to install PuTTY just to convert keys when collaborating with others who use PuTTY. This web app solves that problem by:

  • Providing a simple web interface for converting keys
  • Handling the conversion process on the server side
  • Returning both private and public keys in a zip file
  • Automatically deleting all files after conversion for security

Features

  • Instant conversion from PPK to OpenSSH format
  • Returns both private and public keys
  • Secure by design - all files are deleted after conversion
  • Responsive UI that works on desktop and mobile
  • Containerized with Docker for easy deployment

Technology Stack

  • Backend: Bun with Hono framework
  • Frontend: React with TypeScript, Vite, and shadcn/ui
  • Conversion: Uses puttygen CLI tool
  • Container: Docker and Docker Compose
  • Web Server: Caddy (for production)

Security

  • All files (both uploaded and converted) are deleted from the server immediately after conversion
  • No files are stored long-term
  • Conversion happens server-side using the puttygen CLI tool
  • File size limits to prevent abuse
Ruckas muiža

Ruckas muiža

Myself and five other contributors have created a website for Rucka Manor Park, the geographical heart of Cesis. It is safe to say that since 1577, the most beautiful monument of our antiquity has been proudly located at the very center of Cesis.

Cuentos con valores

Cuentos con valores

This project is a server-rendered React application developed for a client who is a publisher of children’s books. The primary goal was to create an engaging online platform to showcase their work, provide information about their publications, and facilitate direct contact with potential readers and collaborators.

Key Features

  • Book and Catalog Showcase: The website provides a visually appealing and organized way to display the client’s collection of children’s books and catalogs. Each item can have detailed descriptions.
  • Information: The platform serves as a central point for information about the client and their work. This could include an author’s bio, news about upcoming releases, events, and other relevant details.
  • Contact Functionality: A clear and accessible contact section allows visitors to easily reach out to the client for inquiries, collaborations, or other purposes.
  • Focus on Children’s Literature: The design and content are tailored to appeal to an audience interested in children’s books, with appropriate aesthetics and language.
  • Server-Rendered React: Utilizing server-side rendering with React provides benefits such as improved performance, better SEO, and a more seamless user experience, especially on slower connections or devices.

Technical Stack

  • Frontend: React (Server-Rendered)
  • Styling: (CSS Modules)
  • Deployment: (AWS)
LETA-Log

LETA-Log

The goal was to build more than just a static blog. I aimed for a dynamic platform where users can:

  • Create, read, update, and delete blog posts.

  • Categorize posts using a flexible many-to-many system.

  • Engage with content through comments.

  • Experience a smooth, app-like interface without full page reloads.

Our Tech Stack Powerhouse

Choosing the right tools is crucial, and for this project, we landed on a combination that offers robustness, developer productivity, and a great end-user experience:

  • Backend: Laravel (PHP) - For its elegant syntax, powerful ORM (Eloquent), built-in features like authentication, and overall developer-friendliness.

  • Frontend: React (TypeScript) - For building interactive and reusable UI components with the benefits of static typing.

  • The Bridge: Inertia.js - The magic that connects our Laravel backend to our React frontend, allowing us to build a modern SPA (Single Page Application) without building a separate API in the traditional sense.

  • Styling: Tailwind CSS (v4) - For utility-first CSS that enables rapid UI development and customization.

  • Icons: Lucide React - For a clean and comprehensive set of SVG icons.

Conclusion

Building this blogging platform has been a rewarding experience, showcasing how Laravel, React, and Inertia.js can come together to create modern, efficient, and enjoyable web applications. The focus on clean backend logic, reusable frontend components, and efficient data handling has resulted in a project that’s both powerful and maintainable.

Coffee time

Coffee time

This project was created to enhance my proficiency in CSS and website development. Through this project, I gained inspiration to design my first portfolio website.

Memory game

Memory game

Made with Laravel, Breeze authentication system, React, tailwindcss, SCSS and combined everything with Inertia.

This basic memory game has nice animations, dashboard, profile managment, leaderboard, theme selector and of course, the game itself. It’s a nice way of spending half an hour to practice your memory.

Ping pong game

Ping pong game

I made simple two player ping pong game made in HTML Canvas and JavaScript. With highly customizable class components.

Web tickets store

Web tickets store

Using Laravel, Breeze for authentication and Stripe for payments, it is a simple ticket store with basic functions.

Users can sign up, buy tickets, reserve tickets. While for admin it was made easy to create beautiful concert tickets with just one image.

Portfolio v1

Portfolio v1

This was first version of my portfolio I made with React, Laravel and InertiaJS

It contains about me, my skills, my projects, feedback about my work, contact me form, and most importantly “Hello world” message.